strange behavior of sk_rmem_alloc
Hello all, I have written a network driver, address family and a protocol family, when i create a socket in a user space program to my PF and AF, it receives only first 300 packets and i see that all the packets are being received till the function sk_recieve_skb() is called. When i tried searching for the root of the cause, i found that *sk_rcvqueues_full(sk,skb) *returns true after receiving 300 packets, further observing the cause i found that the variable *sk_rmem_alloc* which is being checked in the function in never getting decremented. http://www.pubbs.net/200912/kernel/700-seeing-strange-values-for-tcp-skrmema... <http://www.pubbs.net/200912/kernel/700-seeing-strange-values-for-tcp-skrmemalloc.html>In the above link i found that some one had similar problem, and as it says calling *skb_copy_datagram_iovec()* should decrement the *sk_rmem_alloc*, am even doing that. So can some suggest what can be the problem. One more strange thing is *sk_queue_empty(&sk->receive_queue)* start returning true after 300 packet. --------------------------------------------------- Thanking You, Sugnan Prabhu S http://sugnanprabhu.blogspot.com/
Hello, The issue got resolved the skb references were not handled properly, now its working fine after correcting few handling. Thank you On Wed, Dec 29, 2010 at 9:34 AM, sugnan prabhu <sugnan.prabhu@gmail.com>wrote:
Hello all,
I have written a network driver, address family and a protocol family, when i create a socket in a user space program to my PF and AF, it receives only first 300 packets and i see that all the packets are being received till the function sk_recieve_skb() is called. When i tried searching for the root of the cause, i found that *sk_rcvqueues_full(sk,skb) *returns true after receiving 300 packets, further observing the cause i found that the variable *sk_rmem_alloc* which is being checked in the function in never getting decremented.
http://www.pubbs.net/200912/kernel/700-seeing-strange-values-for-tcp-skrmema...
<http://www.pubbs.net/200912/kernel/700-seeing-strange-values-for-tcp-skrmemalloc.html>In the above link i found that some one had similar problem, and as it says calling *skb_copy_datagram_iovec()* should decrement the *sk_rmem_alloc*, am even doing that. So can some suggest what can be the problem. One more strange thing is *sk_queue_empty(&sk->receive_queue)* start returning true after 300 packet.
--------------------------------------------------- Thanking You, Sugnan Prabhu S http://sugnanprabhu.blogspot.com/
participants (1)
-
sugnan prabhu