From: Steven Rostedt <rostedt@goodmis.org> To: Mikulas Patocka <mpatocka@redhat.com> Cc: Ingo Molnar <mingo@redhat.com>, Alasdair Kergon <agk@redhat.com>, Mike Snitzer <snitzer@redhat.com>, dm-devel@redhat.com, linux-kernel@vger.kernel.org, Arnd Bergmann <arnd@arndb.de> Subject: Re: [PATCH] branch-check: fix long->int truncation when profiling branches Date: Mon, 4 Jun 2018 16:50:24 -0400 [thread overview] Message-ID: <20180604165024.3be78887@gandalf.local.home> (raw) In-Reply-To: <alpine.LRH.2.02.1805300818140.24812@file01.intranet.prod.int.rdu2.redhat.com> On Wed, 30 May 2018 08:19:22 -0400 (EDT) Mikulas Patocka <mpatocka@redhat.com> wrote: > The function __builtin_expect returns long type (see the gcc > documentation), and so do macros likely and unlikely. Unfortunatelly, when > CONFIG_PROFILE_ANNOTATED_BRANCHES is selected, the macros likely and > unlikely expand to __branch_check__ and __branch_check__ truncates the Nice catch. > long type to int. This unintended truncation may cause bugs in various > kernel code (we found a bug in dm-writecache because of it), so it's I'm curious to what that bug was. > better to fix __branch_check__ to return long. > > Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> > Cc: stable@vger.kernel.org Anyway, I can pull this in my tree and test it. -- Steve > > --- > include/linux/compiler.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > Index: linux-2.6/include/linux/compiler.h > =================================================================== > --- linux-2.6.orig/include/linux/compiler.h 2018-02-26 20:34:17.000000000 +0100 > +++ linux-2.6/include/linux/compiler.h 2018-05-30 14:11:53.000000000 +0200 > @@ -21,7 +21,7 @@ void ftrace_likely_update(struct ftrace_ > #define unlikely_notrace(x) __builtin_expect(!!(x), 0) > > #define __branch_check__(x, expect, is_constant) ({ \ > - int ______r; \ > + long ______r; \ > static struct ftrace_likely_data \ > __attribute__((__aligned__(4))) \ > __attribute__((section("_ftrace_annotated_branch"))) \
WARNING: multiple messages have this Message-ID (diff)
From: Steven Rostedt <rostedt@goodmis.org> To: Mikulas Patocka <mpatocka@redhat.com> Cc: Mike, Arnd Bergmann <arnd@arndb.de>, Snitzer <snitzer@redhat.com>, linux-kernel@vger.kernel.org, dm-devel@redhat.com, Ingo Molnar <mingo@redhat.com>, Alasdair Kergon <agk@redhat.com> Subject: Re: [PATCH] branch-check: fix long->int truncation when profiling branches Date: Mon, 4 Jun 2018 16:50:24 -0400 [thread overview] Message-ID: <20180604165024.3be78887@gandalf.local.home> (raw) In-Reply-To: <alpine.LRH.2.02.1805300818140.24812@file01.intranet.prod.int.rdu2.redhat.com> On Wed, 30 May 2018 08:19:22 -0400 (EDT) Mikulas Patocka <mpatocka@redhat.com> wrote: > The function __builtin_expect returns long type (see the gcc > documentation), and so do macros likely and unlikely. Unfortunatelly, when > CONFIG_PROFILE_ANNOTATED_BRANCHES is selected, the macros likely and > unlikely expand to __branch_check__ and __branch_check__ truncates the Nice catch. > long type to int. This unintended truncation may cause bugs in various > kernel code (we found a bug in dm-writecache because of it), so it's I'm curious to what that bug was. > better to fix __branch_check__ to return long. > > Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> > Cc: stable@vger.kernel.org Anyway, I can pull this in my tree and test it. -- Steve > > --- > include/linux/compiler.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > Index: linux-2.6/include/linux/compiler.h > =================================================================== > --- linux-2.6.orig/include/linux/compiler.h 2018-02-26 20:34:17.000000000 +0100 > +++ linux-2.6/include/linux/compiler.h 2018-05-30 14:11:53.000000000 +0200 > @@ -21,7 +21,7 @@ void ftrace_likely_update(struct ftrace_ > #define unlikely_notrace(x) __builtin_expect(!!(x), 0) > > #define __branch_check__(x, expect, is_constant) ({ \ > - int ______r; \ > + long ______r; \ > static struct ftrace_likely_data \ > __attribute__((__aligned__(4))) \ > __attribute__((section("_ftrace_annotated_branch"))) \
next prev parent reply other threads:[~2018-06-04 20:51 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-05-28 15:54 [PATCH] dm: writecache: fix format string warning Arnd Bergmann 2018-05-28 15:54 ` Arnd Bergmann 2018-05-29 18:09 ` Mike Snitzer 2018-05-30 12:13 ` [PATCH] " Mikulas Patocka 2018-05-30 12:19 ` [PATCH] branch-check: fix long->int truncation when profiling branches Mikulas Patocka 2018-06-04 20:50 ` Steven Rostedt [this message] 2018-06-04 20:50 ` Steven Rostedt 2018-06-04 20:54 ` Mikulas Patocka
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=20180604165024.3be78887@gandalf.local.home \ --to=rostedt@goodmis.org \ --cc=agk@redhat.com \ --cc=arnd@arndb.de \ --cc=dm-devel@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=mingo@redhat.com \ --cc=mpatocka@redhat.com \ --cc=snitzer@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: linkBe 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.