From: gaurav jindal <gauravjindal1104@gmail.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: mingo@redhat.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH]sched: completion: use bool in try_wait_for_completion
Date: Wed, 21 Feb 2018 19:19:52 +0530 [thread overview]
Message-ID: <20180221134952.GA15980@gmail.com> (raw)
In-Reply-To: <20180221132854.GK25201@hirez.programming.kicks-ass.net>
On Wed, Feb 21, 2018 at 02:28:54PM +0100, Peter Zijlstra wrote:
> On Wed, Feb 21, 2018 at 06:24:07PM +0530, gaurav jindal wrote:
> > Variable ret in try_wait_for_completion can have only true/false values. Since
> > the return type of the function is also bool, variable ret should have data
> > type as bool in place of int.
>
> Fair enough.
>
> > Moreover, the size of bool in many platforms is 1 byte whereas size of int is
> > 4 bytes(though architecture dependent). Modifying the data type reduces the
> > size consumed for the stack.
>
> Absolutely 0 difference in generated assembly here on x86_64-defconfig
> gcc Debian 7.2.0-20.
>
> $ objdump -dr defconfig-build/kernel/sched/completion.o | awk '/^$/ {p=0} /<try_wait_for_completion>:$/ {p=1} {if (p) print $0}'
>
> 0000000000000090 <try_wait_for_completion>:
> 90: 41 54 push %r12
> 92: 55 push %rbp
> 93: 31 ed xor %ebp,%ebp
> 95: 53 push %rbx
> 96: 8b 07 mov (%rdi),%eax
> 98: 85 c0 test %eax,%eax
> 9a: 75 07 jne a3 <try_wait_for_completion+0x13>
> 9c: 89 e8 mov %ebp,%eax
> 9e: 5b pop %rbx
> 9f: 5d pop %rbp
> a0: 41 5c pop %r12
> a2: c3 retq
> a3: 4c 8d 67 08 lea 0x8(%rdi),%r12
> a7: 48 89 fb mov %rdi,%rbx
> aa: 4c 89 e7 mov %r12,%rdi
> ad: e8 00 00 00 00 callq b2 <try_wait_for_completion+0x22>
> ae: R_X86_64_PC32 _raw_spin_lock_irqsave-0x4
> b2: 8b 13 mov (%rbx),%edx
> b4: 85 d2 test %edx,%edx
> b6: 74 0f je c7 <try_wait_for_completion+0x37>
> b8: 83 fa ff cmp $0xffffffff,%edx
> bb: bd 01 00 00 00 mov $0x1,%ebp
> c0: 74 05 je c7 <try_wait_for_completion+0x37>
> c2: 83 ea 01 sub $0x1,%edx
> c5: 89 13 mov %edx,(%rbx)
> c7: 48 89 c6 mov %rax,%rsi
> ca: 4c 89 e7 mov %r12,%rdi
> cd: e8 00 00 00 00 callq d2 <try_wait_for_completion+0x42>
> ce: R_X86_64_PC32 _raw_spin_unlock_irqrestore-0x4
> d2: 89 e8 mov %ebp,%eax
> d4: 5b pop %rbx
> d5: 5d pop %rbp
> d6: 41 5c pop %r12
> d8: c3 retq
> d9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
>
> Note how it keeps the return value in eax and doesn't spill to the
> stack. And I would expect this to be true for most architectures that
> have register based calling conventions, its an otherwise fairly trivial
> function.
>
I completely agree. I got carried away with sizeof(). Missed the case of using
the local registers.
Thanks a lot for guiding me again.
> I'll take the patch though, but I'll remove that last bit from the
> Changelog.
next prev parent reply other threads:[~2018-02-21 13:50 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-21 12:54 [PATCH]sched: completion: use bool in try_wait_for_completion gaurav jindal
2018-02-21 13:28 ` Peter Zijlstra
2018-02-21 13:49 ` gaurav jindal [this message]
2018-03-09 9:06 ` [tip:sched/core] sched/completions: Use bool in try_wait_for_completion() tip-bot for gaurav jindal
-- strict thread matches above, loose matches on Subject: below --
2018-02-14 10:30 [PATCH]sched: completion: use bool in try_wait_for_completion gaurav jindal
2018-02-19 10:44 ` Peter Zijlstra
2018-01-24 9:57 gaurav jindal
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=20180221134952.GA15980@gmail.com \
--to=gauravjindal1104@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).