Re: [ofa-general] RE: [UPDATE] [V3] [PATCH 3/3] ib/ipoib: IPoIB-UD RX S/G supportfor 4K MTU

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Shirley Ma
Date: Sunday, February 3, 2008 - 10:36 am

--0__=08BBF977DFF3D9668f9e8a93df938690918c08BBF977DFF3D966
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: quoted-printable






Does your recommendation is the same as Roland's before? I hope it's no=
t,
otherwise, it doesn't work. Since  the first buffer is GRH + IPoIB HEAD=
 =3D
44 bytes not 40 bytes. If we put all skb data in the first frag, then t=
he
IP header is not aligned to 16 bytes. I am copying Roland's comments
regarding this approach:
---------
However, I now realize that my earlier idea of allocating a scratch
buffer for the GRH and just allocating a 4096 byte skb doesn't work,
because the skb_shinfo ends up being allocated along with the buffer,
so trying to allocate a 4096-byte skb will bloat the data past a
single page, which is what we're trying to avoid.

So how about the following?  When using a UD MTU of 4096 with a page
size of 4096, allocate an skb of size 44 for the GRH and ethertype,
and then allocate a single page for the fragment list.  This means
that the IP packet will start nicely 16-byte aligned for free, and all
the bookkeeping is very simple.
-------

thanks
Shirley=

--0__=08BBF977DFF3D9668f9e8a93df938690918c08BBF977DFF3D966
Content-type: text/html; charset=US-ASCII
Content-Disposition: inline
Content-transfer-encoding: quoted-printable

<html><body>
<p>Does your recommendation is the same as Roland's before? I hope it's=
 not, otherwise, it doesn't work. Since  the first buffer is GRH + IPoI=
B HEAD =3D 44 bytes not 40 bytes. If we put all skb data in the first f=
rag, then the IP header is not aligned to 16 bytes. I am copying Roland=
's comments regarding this approach:<br>
---------<br>
<tt><font size=3D"4">However, I now realize that my earlier idea of all=
ocating a scratch<br>
buffer for the GRH and just allocating a 4096 byte skb doesn't work,<br=
because the skb_shinfo ends up being allocated along with the buffer,<b=
r>
so trying to allocate a 4096-byte skb will bloat the data past a<br>
single page, which is what we're trying to avoid.</font></tt><font size=
=3D"4"><br>
</font><tt><font size=3D"4"><br>
So how about the following? &nbsp;When using a UD MTU of 4096 with a pa=
ge<br>
size of 4096, allocate an skb of size 44 for the GRH and ethertype,<br>=

and then allocate a single page for the fragment list. &nbsp;This means=
<br>
that the IP packet will start nicely 16-byte aligned for free, and all<=
br>
the bookkeeping is very simple.</font></tt><font size=3D"4"> </font><br=
-------<br>
<br>
thanks<br>
Shirley</body></html>=

--0__=08BBF977DFF3D9668f9e8a93df938690918c08BBF977DFF3D966--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [ofa-general] RE: [UPDATE] [V3] [PATCH 3/3] ib/ipoib: ..., Shirley Ma, (Sun Feb 3, 10:36 am)