The current ibmveth driver has a fixed number of buffers per buffer pool and under certain workloads, it's running out of buffers. So I would like to be able to change the number of buffers in each pool at runtime.

The way most drivers do it is with ethtool -G and/or module parameters. However, this is not appropriate for the ibmveth driver because the driver can use buffers of any arbitrary size, not only regular, mini and jumbo. For instance, at the moment we have buffers of 512, 2kB, 8kB, 16kB (which get allocated based on the MTU).

I was thinking that I can achieve the flexibility of having X number of buffer pools, each with Y(X) number of buffers of Z(X) size with sysfs like this:

/sys/devices/vio/3000000X/num_pools
                         /pool0
                         /pool0/size
                         /pool0/num
                         /pool1
                         /pool1/size
                         /pool1/num
                            .
                            .
                         /pool(num_pools-1)
                         /pool(num_pools-1)/size
                         /pool(num_pools-1)/num

Would that be an acceptable way of providing the functionality?

Another less flexible way that comes to mind is fixing the number of pools, fixing the size of buffers for each pool, and providing module parameters that would determine the number of buffers in each pool.

Any ideas/thoughts would be greatly appreciated.

--
Santiago A. Leon
Power Linux Development
IBM Linux Technology Center

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to