lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY


From: Jonathan Larmour
Subject: [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY
Date: Fri, 10 Aug 2007 19:23:02 +0000
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070530 Fedora/1.5.0.12-1.fc5 Firefox/1.5.0.12

Follow-up Comment #25, task #6735 (project lwip):

> If an application submits a PBUF_REF, then it would get copied
> immediately in TCP/UDP. 

I think that's wasteful, and this is part of the reason for the existence of
PBUF_REF - only copy it if you need to. Otherwise you may as well simplify the
API and say users must always copy such data into a PBUF_RAM.

>> This also avoids penalty for polled drivers that may not need
>> separate copying in the driver at all.
>
> I personally think the driver should never copy. The stack
> should take care of all of that when it is necessary.

Only because you're essentially making it "always copy" but in a different
place. I think in some cases (especially for UDP) you can expect some packets
to be sent directly and they never need to be copied. Take the popular CS8900a
chipset - that has a packet buffer in the device - no DMA. If the packet
buffer is empty you can copy it straight in. If the packet buffer is full you
need to buffer it up (or perhaps drop the packet if you prefer). There are
times when you don't have to copy. For ethernet devices that use DMA you will
usually need to, but that's not all there is out there.




    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/task/?6735>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]