From: Alexey Dobriyan <adobriyan@gmail.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: steffen.klassert@secunet.com, herbert@gondor.apana.org.au,
davem@davemloft.net, netdev@vger.kernel.org
Subject: Re: [PATCH 2/4] flowcache: make flow_cache_hash_size() return "unsigned int"
Date: Mon, 20 Mar 2017 09:08:30 +0300 [thread overview]
Message-ID: <20170320060830.GA1789@avx2> (raw)
In-Reply-To: <1489965221.16816.14.camel@edumazet-glaptop3.roam.corp.google.com>
On Sun, Mar 19, 2017 at 04:13:41PM -0700, Eric Dumazet wrote:
> On Mon, 2017-03-20 at 01:24 +0300, Alexey Dobriyan wrote:
> > Hash size can't negative so "unsigned int" is logically correct.
>
>
> > struct flow_cache_percpu *fcp = per_cpu_ptr(fc->percpu, cpu);
> > - size_t sz = sizeof(struct hlist_head) * flow_cache_hash_size(fc);
> > + unsigned int sz = sizeof(struct hlist_head) * flow_cache_hash_size(fc);
> >
> > if (!fcp->hash_table) {
> > fcp->hash_table = kzalloc_node(sz, GFP_KERNEL, cpu_to_node(cpu));
> > if (!fcp->hash_table) {
> > - pr_err("NET: failed to allocate flow cache sz %zu\n", sz);
> > + pr_err("NET: failed to allocate flow cache sz %u\n", sz);
>
>
> I do not see any improvement here.
>
> What is wrong with size_t exactly ?
REX prefixes and sign extensions, lots of them.
Before:
ffffffff8505b1b5: 41 bd 01 00 00 00 mov r13d,0x1
ffffffff8505b1bb: 41 d3 e5 shl r13d,cl
ffffffff8505b1be: 4d 63 ed movsxd r13,r13d
ffffffff8505b1c1: 49 c1 e5 03 shl r13,0x3
ffffffff8505b1c5: e8 86 28 0a fc call __cpu_to_node
...
ffffffff8505b20b: 4c 89 ee mov rsi,r13
After:
ffffffff8505b1b5: 41 bd 08 00 00 00 mov r13d,0x8
ffffffff8505b1bb: 41 d3 e5 shl r13d,cl
ffffffff8505b1be: e8 8d 28 0a fc call __cpu_to_node
...
ffffffff8505b1c3: 44 89 ef mov edi,r13d
Basically, one can do s/size_t/unsigned int/g across whole networking
stack and nothing will change but the code becomes smaller (including
things like sendmsg() because VFS truncates lengths at INT_MAX).
prev parent reply other threads:[~2017-03-20 6:17 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-19 22:24 [PATCH 2/4] flowcache: make flow_cache_hash_size() return "unsigned int" Alexey Dobriyan
2017-03-19 23:13 ` Eric Dumazet
2017-03-20 6:08 ` Alexey Dobriyan [this message]
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=20170320060830.GA1789@avx2 \
--to=adobriyan@gmail.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=herbert@gondor.apana.org.au \
--cc=netdev@vger.kernel.org \
--cc=steffen.klassert@secunet.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.