Subject: Re: netif_rx will not free skb when I use ftp in kernel 2.6.22/2.6.21

From: Chris Snook <[email-masked]>
Date: Thu, 20 Sep 2007 00:16:39 -0400

张飞 wrote:
> Dear netdev,
>  
> I have one problem with my NIC driver: whenever I use  
> netif_receive_skb(skb) or netif_rx(skb) to indicate received packet,  
> iperf does work, but ftp does not work, because the kernel seemes not 
> kfree_skb(skb) when I use ftp.  What’s wrong with my NIC  driver? Any 
> suggestions will be appreciated. Thanks in advance.
>  
> When I use iperf to test my NIC driver, it seems okay. When I use ftp, 
> ftp client in kernel 2.6.22 and ftp server is ServUftp at windows2000, 
> it does work too. But, When I use windows2003 server and its contained 
> ftp server, my NIC driver can get file from that ftp server until the 
> memory is used out.  When I get 3G file, then 3G memory will be used and 
> not freed.
>  
> The source code is at : 
> http://sourceforge.krugle.com/kse/files?project=%22Attansic%20L1%20Gigabit%20Ethernet%20driver%22 
> <http://sourceforge.krugle.com/kse/files?project=%22Attansic%20L1%20Gigabit%20Ethernet%20driver%22>
> Please check the function at_clean_rx_irq() and at_alloc_rx_buffers() in 
> file at_main.c.
> I dev_alloc_skb() and pci_map_single() skb in function 
> at_alloc_rx_buffers(), pci_unmap_page() and netif_rx() in function 
> at_clean_rx_irq(), CONFIG_AT_NAPI is not defined.
>  
> Thank csnook.
>  
> Best Regards,
> Fei Zhang

Okay, I didn't know you were talking about the atl1 driver.  Are you 
using the
in-tree driver in 2.6.22, or the pre-merge driver on sourceforge, or the 
vendor
driver from Attansic/Atheros?

Also, can you test this again using the latest 2.6.23-rc7 kernel, with 
the atl1 driver
included in that kernel?

	-- Chris

> 在2007-09-20，"Chris Snook" <[email-masked]> 写道：
> 
>     张飞 wrote:
>     > Dear csnook,
>     > I have one problem in my NIC driver: whenever I use  
>     > netif_receive_skb(skb) or netif_rx(skb) to indicate received packet, 
>     > iperf does work, but ftp does not work,
>     > because the kernel seemes not kfree_skb(skb).  What’s wrong with my NIC 
>     > driver? Any suggestions will be appreciated. Thanks in advance.
>     > Best wishes,
>     > Fei Zhang
>     >  
>     > Kernel v2.6.22
>     > Cpu : amd64
>     > Memory: 4G
> 
>     I'm going to need way more information than that.  I'm also not certain I'm the 
>     best person to answer the question.  I suggest asking the question again, with a 
>     lot more info, to [email-masked].  You're welcome to CC me as well. 
>     Please also post a link to the driver source so we can see what exactly you're 
>     doing.
> 
>     	-- Chris