Please unsubscribe On Wed, 2012-05-02 at 04:34 +0800, Bean wrote:
> On Wed, May 2, 2012 at 4:16 AM, Vladimir 'φ-coder/phcoder' Serbinenko > <phco...@gmail.com> wrote: > > On 01.05.2012 22:09, Bean wrote: > >> On Wed, May 2, 2012 at 4:06 AM, Vladimir 'φ-coder/phcoder' Serbinenko > >> <phco...@gmail.com> wrote: > >>> On 01.05.2012 22:02, Bean wrote: > >>>> Hi, > >>>> > >>>> Yeah, I have a patch that save the buffer for later use when there is > >>>> no data, it can solve the unnecessary alloc/free loop. > >>> No, what I mean: allocate a buffer once for every card and then do > >>> send/recv with only this buffer and copy to/from it when necessary. This > >>> way if the card DMAs the packet to the same buffer it won't corrupt > >>> anything. > >> Hi, > >> > >> It's not ok with fragmentation, since there could be multiple ethernet > >> packet for an ip packet, we need to store the buffer for assembling. > > We use the buffer I said only for actual calls. It's copied to > > newly-allocated packet as soon as the call returns. > > Hi, > > Yeah, after more thought, it's doable. We can use a ring buffer for > current active ip frames, and copy ethernet frame to it. This way we > can get rid of the rsm dynamic queue. It can also get rid of tons of > grub_netbuff_free scattered around in various layers. >
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel