lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 22 Jun 2009 19:26:32 +0530
From:	Peter Chacko <peterchacko35@...il.com>
To:	Philby John <pjohn@...mvista.com>
Cc:	Nicholas Van Orton <turanammo@...il.com>, jon_zhou@...lent.com,
	radhamohan_ch@...oo.com, netdev@...r.kernel.org
Subject: Re: can we reuse an skb

Philby,

I thank you much for your time helping me out, answering me.

My intention here is to customize packet buffer allocation for
special case, when the linux box in question is just packet processor.
 That i don't want to allocate memory from a common pool for common
purpose, like slab cached , re-usable objects like skb. I want to have
finer control of the memory access time(by allocating objects from L1
cache, and  keeping it around as fixed no of  packet buffers, like in
a typical routers.

I just want to know whether i can re-use any body's work /a patch
available in this goal, before  i embark on making custom code.

As you said, i will down-load the most updated code and correct my
self, if there are enough optimizations available already.

Thanks
Peter chacko,


On Mon, Jun 22, 2009 at 7:04 PM, Philby John<pjohn@...mvista.com> wrote:
> On Fri, 2009-06-19 at 15:41 +0530, Nicholas Van Orton wrote:
>> Does this mean that when skb buffer has been allocated using
>> dev_alloc_skb(), filled with received data and passed to the upper
>> layers
>> the kernel would automatically do the task of releasing this buffer
>> without the user calling dev_kfree_skb()?
>
> Yes, I think that is the case. Except when the user calls an ioctl that
> closes your ethernet device, by say using $ifconfig eth0 down, in which
> case you must free the ring skb buffer's allocated using
> dev_kfree_skb().
>
>>  I once got
>> KERNEL: assertion (!atomic_read(&skb->users)) failed at net/core/dev.c
>> errors when trying
>> to free them using dev_kfree_skb()
>>
>> Could this be cause I did not wait until netif_rx_completed() was called?
>
> You are using an old version of the kernel, can't see such code in
> 2.6.30. From what I know, this usually happens if skb->users is not
> equal to one, which means the buffer is in use by some user. Like I
> said, you needn't call dev_kfree_skb() explicitly, it will be freed
> after use by the upper network layers.
>
> netif_receive_skb() ->deliver_skb()-> pt_prev->func() ->
> ip_rcv() -> ip_rcv_finish()
>
> ip_rcv_finish() would finally free it as per the specified protocol.
> This I think is the flow, but I guess there would be experts here who
> would correct me if I am wrong.
>
> -Philby
>
>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ