lkml.org 
[lkml]   [2006]   [Oct]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] Fix WARN_ON / WARN_ON_ONCE regression
    On Tue, 03 Oct 2006 16:04:04 -0700
    Tim Chen <tim.c.chen@linux.intel.com> wrote:

    > Hi Herbet,
    >
    > The patch "Let WARN_ON/WARN_ON_ONCE return the condition"
    > http://kernel.org/git/?
    > p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=684f978347deb42d180373ac4c427f82ef963171
    >
    > introduced 40% more 2nd level cache miss to tbench workload
    > being run in a loop back mode on a Core 2 machine. I think the
    > introduction of the local variables to WARN_ON and WARN_ON_ONCE
    >
    > typeof(x) __ret_warn_on = (x);
    > typeof(condition) __ret_warn_once = (condition);
    >
    > results in the extra cache misses.

    I don't see why it should.

    Perhaps the `static int __warn_once' is getting put in the same cacheline
    as some frequently-modified thing. Perhaps try marking that as __read_mostly?

    > In our test workload profile, we see
    > heavily used functions like do_softirq and local_bh_enable
    > takes a lot longer to execute.
    >
    > The modification below helps fix the problem. I made a slight
    > modification to sched.c to get around a gcc bug.
    >
    > Signed-off-by: Tim Chen <tim.c.chen@intel.com>
    > diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
    > index a525089..05ed388 100644
    > --- a/include/asm-generic/bug.h
    > +++ b/include/asm-generic/bug.h
    > @@ -17,13 +17,12 @@ #endif
    >
    > #ifndef HAVE_ARCH_WARN_ON
    > #define WARN_ON(condition)
    > ({ \
    > - typeof(condition) __ret_warn_on =
    > (condition); \
    > - if (unlikely(__ret_warn_on))
    > { \
    > + if (unlikely(condition))
    > { \
    > printk("BUG: warning at %s:%d/%s()\n",
    > __FILE__, \

    Your patch is extremely wordwrapped.
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-10-04 02:13    [W:0.032 / U:208.036 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site