[Top][All Lists]
[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/
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Kieran Mansley, 2007/08/01
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Jonathan Larmour, 2007/08/01
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Simon Goldschmidt, 2007/08/09
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Jonathan Larmour, 2007/08/09
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Jared Grubb, 2007/08/09
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Simon Goldschmidt, 2007/08/10
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Jonathan Larmour, 2007/08/10
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Jared Grubb, 2007/08/10
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Jonathan Larmour, 2007/08/10
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Jared Grubb, 2007/08/10
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY,
Jonathan Larmour <=
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Jared Grubb, 2007/08/10
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Simon Goldschmidt, 2007/08/11
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Jonathan Larmour, 2007/08/12
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Simon Goldschmidt, 2007/08/12
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Jonathan Larmour, 2007/08/12
- [lwip-devel] [task #6735] Provide new pbuf type: PBUF_RAM_NOCOPY, Kieran Mansley, 2007/08/29