From: Thomas Graf <tgraf@suug.ch>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: davem@davemloft.net, kuznet@ms2.inr.ac.ru, netdev@oss.sgi.com
Subject: Re: [PATCH] NETLINK: Use SKB_MAXORDER to calculate NLMSG_GOODSIZE
Date: Sat, 29 Jan 2005 00:40:22 +0100 [thread overview]
Message-ID: <20050128234022.GW31837@postel.suug.ch> (raw)
In-Reply-To: <E1CufRB-0000zf-00@gondolin.me.apana.org.au>
* Herbert Xu <E1CufRB-0000zf-00@gondolin.me.apana.org.au> 2005-01-29 10:22
> Thomas Graf <tgraf@suug.ch> wrote:
> >
> > The current value doesn't make much sense anymore because
> > skb_shared_info isn't taken into account which means that
> > depending on the architecture NLMSG_GOOSIZE can exceed PAGE_SIZE
> > resulting in a waste of almost a complete page.
>
> You're quite right.
>
> > Using SKB_MAXORDER solves this potential leak at the cost of
> > slightly smaller but safer sizes for some architectures.
>
> At first glance it's not clear which of sk_buff or skb_shared_info
> is bigger. So it might even end up being bigger :)
skb_shared_info is 160 bytes and sk_buff is 196 bytes on my box (x86)
but that's not the point. We need to take SMP_CACHE_BYTES alignment into
account which tends to be quite big. The original NLMSG_GOODSIZE
results in 3908 on my box and gets pumped up to 4128 by skb_alloc
(ALIGN(...,SMP_CACHE_BYTES) + sizeof(struct skb_shared_info)) having
SMP_CACHE_BYTES at 128.
> > -#define NLMSG_GOODSIZE (PAGE_SIZE - ((sizeof(struct sk_buff)+0xF)&~0xF))
> > +#define NLMSG_GOODORDER 0
> > +#define NLMSG_GOODSIZE (SKB_MAX_ORDER(0, NLMSG_GOODORDER))
>
> Are we ever going use NLMSG_GOODORDER for anything? If not why don't
> we go straight to NLMSG_GOODSIZE?
My thought behind it is that it clearly documents that we use order-0
allocation and we can easly bump it up if we need more space but it's
basically just cosmetic.
next prev parent reply other threads:[~2005-01-28 23:40 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-28 23:03 [PATCH] NETLINK: Use SKB_MAXORDER to calculate NLMSG_GOODSIZE Thomas Graf
2005-01-28 23:22 ` Herbert Xu
2005-01-28 23:40 ` Thomas Graf [this message]
2005-02-07 6:27 ` David S. Miller
2005-01-28 23:48 ` Alexey Kuznetsov
2005-01-29 0:21 ` Thomas Graf
2005-01-29 0:27 ` Thomas Graf
2005-02-07 6:32 ` David S. Miller
2005-02-07 13:28 ` Thomas Graf
2005-02-07 14:27 ` [PATCH] NET: Fix calculation for collapsed skb size Thomas Graf
2005-02-09 4:54 ` David S. Miller
2005-01-29 18:40 ` [PATCH] NETLINK: Use SKB_MAXORDER to calculate NLMSG_GOODSIZE Alexey Kuznetsov
2005-01-29 12:47 ` Thomas Graf
2005-02-06 18:54 ` Thomas Graf
2005-02-06 21:08 ` David S. Miller
2005-02-07 6:25 ` David S. Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050128234022.GW31837@postel.suug.ch \
--to=tgraf@suug.ch \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=kuznet@ms2.inr.ac.ru \
--cc=netdev@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.