On Wed, 20 Oct 2004 16:18:02 +0200 Thomas Spatzier <thomas.spatzier@de.ibm.com> wrote: > > TSO without NETIF_F_SG is not worth it. > > Ok, but when exactly would that if statement take effect? > When I send very large tcp packets I never get large skbs > given into my driver from the stack. > The internal if statement if (tmp >= pgbreak ... > never becomes true since the mss_cache_std value is always > set to MTU size - header length, in my case 1492 - 52 = 1440. > > So, how can I get the stack to exploit TSO? select_size() is selecting the size of the linear non-paged portion of the SKB. When we're doing NETIF_F_SG we can use page based data storage for all of the non-TCP/IP/hw header data. That is what select_size() is calculating, the size of the "header area". The data is tacked onto the packet using the page vector area. Look at the callers of select_size(), they use a local variable "mss_now" which is calculated to be the TSO mss when appropriate by tcp_current_mss(). __Stop__ looking at select_size(). It has nothing to do with using TSO mss or not for frame size calculation. - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html