From: David Laight <[email protected]>
To: 'Alviro Iskandar Setiawan' <[email protected]>,
Ammar Faizi <[email protected]>
Cc: Borislav Petkov <[email protected]>,
Dave Hansen <[email protected]>,
"H. Peter Anvin" <[email protected]>, Ingo Molnar <[email protected]>,
"Thomas Gleixner" <[email protected]>,
Tony Luck <[email protected]>,
"[email protected]" <[email protected]>,
"Linux Kernel Mailing List" <[email protected]>,
GNU/Weeb Mailing List <[email protected]>,
"[email protected]" <[email protected]>,
"[email protected]" <[email protected]>,
Jiri Hladky <[email protected]>,
Greg Kroah-Hartman <[email protected]>
Subject: RE: [PATCH v4 1/2] x86/delay: Fix the wrong asm constraint in `delay_loop()`
Date: Thu, 3 Mar 2022 00:35:27 +0000 [thread overview]
Message-ID: <[email protected]> (raw)
In-Reply-To: <CAOG64qPgTv5tQNknuG9d-=oL2EPQQ1ys7xu2FoBpNLyzv1qYzA@mail.gmail.com>
From: Alviro Iskandar Setiawan
> Sent: 01 March 2022 11:34
>
> On Tue, Mar 1, 2022 at 4:46 PM Ammar Faizi wrote:
> > Fortunately, the constraint violation that's fixed by patch 1 doesn't
> > yield any bug due to the nature of System V ABI. Should we backport
> > this?
>
> hi sir, it might also be interesting to know that even if it never be
> inlined, it's still potential to break.
>
> for example this code (https://godbolt.org/z/xWMTxhTET)
>
> __attribute__((__noinline__)) static void x(int a)
> {
> asm("xorl\t%%r8d, %%r8d"::"a"(a));
> }
But this code isn't doing that.
In your example the compiler has looked at the static function
and realised that is doesn't use r8 so it need not be saved
even though it is a volatile register.
In this code the compiler knows %ax is being used, it just
doesn't know it is changed - so could assume the value
is unchanged.
The only code that is likely to break is:
int f(int d)
{
d += 10;
__delay(d);
return d;
}
Which might manage to return the value of %eax modified by the asm.
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
next prev parent reply other threads:[~2022-03-03 0:35 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-01 9:46 [PATCH v4 0/2] Two x86 fixes Ammar Faizi
2022-03-01 9:46 ` [PATCH v4 1/2] x86/delay: Fix the wrong asm constraint in `delay_loop()` Ammar Faizi
2022-03-01 9:54 ` David Laight
2022-03-03 0:14 ` Ammar Faizi
2022-03-01 11:33 ` Alviro Iskandar Setiawan
2022-03-03 0:06 ` Ammar Faizi
2022-03-03 0:35 ` David Laight [this message]
2022-03-01 9:46 ` [PATCH v4 2/2] x86/mce/amd: Fix memory leak when `threshold_create_bank()` fails Ammar Faizi
2022-03-02 17:26 ` Yazen Ghannam
2022-03-02 23:20 ` Ammar Faizi
2022-03-02 23:27 ` Ammar Faizi
2022-03-03 1:58 ` Alviro Iskandar Setiawan
2022-03-03 2:07 ` Ammar Faizi
2022-03-03 2:32 ` Ammar Faizi
2022-03-03 2:51 ` Alviro Iskandar Setiawan
2022-03-07 0:27 ` Ammar Faizi
2022-03-09 20:55 ` Yazen Ghannam
2022-03-10 1:56 ` Ammar Faizi
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 \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
/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