From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1SPJqE-0002Uu-Id for mharc-grub-devel@gnu.org; Tue, 01 May 2012 16:38:34 -0400 Received: from eggs.gnu.org ([208.118.235.92]:52130) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SPJqB-0002KH-7A for grub-devel@gnu.org; Tue, 01 May 2012 16:38:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SPJq7-00055A-Nl for grub-devel@gnu.org; Tue, 01 May 2012 16:38:30 -0400 Received: from bebita.swaddleez.com ([198.144.208.177]:56437 helo=bicho.SynchroDesign.COM) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SPJq7-00054F-9o for grub-devel@gnu.org; Tue, 01 May 2012 16:38:27 -0400 Received: from bicho.SynchroDesign.COM (localhost [127.0.0.1]) by bicho.SynchroDesign.COM (8.14.4/8.14.4/Debian-2ubuntu2) with ESMTP id q41KZ17l017981; Tue, 1 May 2012 13:35:02 -0700 Received: (from daniel@localhost) by bicho.SynchroDesign.COM (8.14.4/8.14.4/Submit) id q41KZ1lN017978; Tue, 1 May 2012 13:35:01 -0700 X-Authentication-Warning: bicho.SynchroDesign.COM: daniel set sender to daniel@SynchroDesign.COM using -f Message-ID: <1335904501.31051.74.camel@localhost> Subject: unsubscribe From: Daniel Senderowicz To: grub-devel@gnu.org Date: Tue, 01 May 2012 13:35:01 -0700 In-Reply-To: References: <4FA034B2.2030400@gmail.com> <4FA03FF2.30607@gmail.com> <4FA04234.2060002@gmail.com> <4FA0448F.2040901@gmail.com> Organization: SynchroDesign Incorporated Content-Type: multipart/alternative; boundary="=-GPVT7sLNa3ymaCJMvWHm" X-Mailer: Evolution 3.2.2- Mime-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 198.144.208.177 Cc: daniel@SynchroDesign.COM X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 May 2012 20:38:33 -0000 --=-GPVT7sLNa3ymaCJMvWHm Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Please unsubscribe On Wed, 2012-05-02 at 04:34 +0800, Bean wrote: > On Wed, May 2, 2012 at 4:16 AM, Vladimir '=CF=86-coder/phcoder' Serbinenk= o > wrote: > > On 01.05.2012 22:09, Bean wrote: > >> On Wed, May 2, 2012 at 4:06 AM, Vladimir '=CF=86-coder/phcoder' Serbin= enko > >> wrote: > >>> On 01.05.2012 22:02, Bean wrote: > >>>> Hi, > >>>> > >>>> Yeah, I have a patch that save the buffer for later use when there i= s > >>>> 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. T= his > >>> 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. >=20 > Hi, >=20 > 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. >=20 --=-GPVT7sLNa3ymaCJMvWHm Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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
<phcoder@gmail.com> wrote:
> On 01.05.2012 22:09, Bean wrote:
>> On Wed, May 2, 2012 at 4:06 AM, Vladimir 'φ-coder/phcoder' Se=
rbinenko
>> <phcoder@gmail.com>=
 wrote:
>>> On 01.05.2012 22:02, Bean wrote:
>>>> Hi,
>>>>
>>>> Yeah, I have a patch that save the buffer for later use wh=
en there is
>>>> no data, it can solve the unnecessary alloc/free loop.
>>> No, what I mean: allocate a buffer once for every card and the=
n do
>>> send/recv with only this buffer and copy to/from it when neces=
sary. This
>>> way if the card DMAs the packet to the same buffer it won't co=
rrupt
>>> anything.
>> Hi,
>>
>> It's not ok with fragmentation, since there could be multiple ethe=
rnet
>> packet for an ip packet, we need to store the buffer for assemblin=
g.
> 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.


--=-GPVT7sLNa3ymaCJMvWHm--