RE: [PATCH net-next v3 0/3] enic: Add support for rx_copybreak
From: David Laight <hidden>
Date: 2014-08-14 09:36:47
From: Govindarajulu Varadarajan
dma_map_single()/dma_unmap_single() is more expensive than alloc_skb & memcpy for smaller packets. By doing this we can reuse the dma buff which is already mapped. This is very useful when iommu is on. The default skb copybreak value is 256. When iommu is on, we can go much higher than 256. All the drivers that supports rx_copybreak provides module parameter to change this value. Since module parameter is the least preferred way for changing driver values, this series adds ethtool support for setting rx_copybreak.
Is there any mileage in having a system-wide default for rx_copybreak? I'd have thought that the value is really driver independent since it (mostly) depends on the comparative cost of dma_map and copy operations. The same also applies to any equivalent copy done during transmit. (Not sure if I've seen any drivers that keep a permanently mapped buffer for transmitting small fragments.) David