All of lore.kernel.org
 help / color / mirror / Atom feed
From: Craig Gallek <kraigatgoog@gmail.com>
To: Alexey Dobriyan <adobriyan@gmail.com>
Cc: David Miller <davem@davemloft.net>, netdev <netdev@vger.kernel.org>
Subject: Re: [PATCH] soreuseport: use "unsigned int" in __reuseport_alloc()
Date: Mon, 3 Apr 2017 09:56:56 -0400	[thread overview]
Message-ID: <CAEfhGix3zu7L0R1siHkF07_aVCxC4ANaV-Lm74SYw1J_BHtJWQ@mail.gmail.com> (raw)

On Sun, Apr 2, 2017 at 6:18 PM, Alexey Dobriyan <adobriyan@gmail.com> wrote:
> Number of sockets is limited by 16-bit, so 64-bit allocation will never
> happen.
>
> 16-bit ops are the worst code density-wise on x86_64 because of
> additional prefix (66).
So this boils down to a compiled code density vs a
readability/maintainability argument?  I'm not familiar with the 16
bit problem you're referring to, but I'd argue that using the
self-documenting u16 as an input parameter to define the range
expectations is more useful that the micro optimization that this
change may buy you in the assembly of one platform.  Especially given
that this is a rare-use function.

>
> Space savings:
>
>         add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-3 (-3)
>         function                                     old     new   delta
>         reuseport_add_sock                           539     536      -3
>
> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> ---
>
>  net/core/sock_reuseport.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> --- a/net/core/sock_reuseport.c
> +++ b/net/core/sock_reuseport.c
> @@ -13,9 +13,9 @@
>
>  static DEFINE_SPINLOCK(reuseport_lock);
>
> -static struct sock_reuseport *__reuseport_alloc(u16 max_socks)
> +static struct sock_reuseport *__reuseport_alloc(unsigned int max_socks)
>  {
> -       size_t size = sizeof(struct sock_reuseport) +
> +       unsigned int size = sizeof(struct sock_reuseport) +
>                       sizeof(struct sock *) * max_socks;
>         struct sock_reuseport *reuse = kzalloc(size, GFP_ATOMIC);
>

             reply	other threads:[~2017-04-03 13:56 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-03 13:56 Craig Gallek [this message]
2017-04-04 11:36 ` [PATCH] soreuseport: use "unsigned int" in __reuseport_alloc() Alexey Dobriyan
2017-04-05 15:28   ` David Laight
  -- strict thread matches above, loose matches on Subject: below --
2017-04-02 22:18 Alexey Dobriyan
2017-04-04  2:06 ` David 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=CAEfhGix3zu7L0R1siHkF07_aVCxC4ANaV-Lm74SYw1J_BHtJWQ@mail.gmail.com \
    --to=kraigatgoog@gmail.com \
    --cc=adobriyan@gmail.com \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    /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.