[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <alpine.LRH.2.02.1806041653260.18196@file01.intranet.prod.int.rdu2.redhat.com>
Date: Mon, 4 Jun 2018 16:54:44 -0400 (EDT)
From: Mikulas Patocka <mpatocka@...hat.com>
To: Steven Rostedt <rostedt@...dmis.org>
cc: Ingo Molnar <mingo@...hat.com>, Alasdair Kergon <agk@...hat.com>,
Mike Snitzer <snitzer@...hat.com>, dm-devel@...hat.com,
linux-kernel@...r.kernel.org, Arnd Bergmann <arnd@...db.de>
Subject: Re: [PATCH] branch-check: fix long->int truncation when profiling
branches
On Mon, 4 Jun 2018, Steven Rostedt wrote:
> On Wed, 30 May 2018 08:19:22 -0400 (EDT)
> Mikulas Patocka <mpatocka@...hat.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.
printk("%ld", writecache_has_error(wc))
... and writecache_has_error was defined as
#define writecache_has_error(wc) (unlikely(READ_ONCE((wc)->error)))
Mikulas
Powered by blists - more mailing lists