--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? 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. 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--