From: Peter Zijlstra <peterz@infradead.org>
To: gaurav jindal <gauravjindal1104@gmail.com>
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 14:28:54 +0100 [thread overview]
Message-ID: <20180221132854.GK25201@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <20180221125407.GA14292@gmail.com>
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'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:29 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-21 12:54 gaurav jindal
2018-02-21 13:28 ` Peter Zijlstra [this message]
2018-02-21 13:49 ` gaurav jindal
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=20180221132854.GK25201@hirez.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=gauravjindal1104@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome