lkml.org 
[lkml]   [2009]   [Apr]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: iptables very slow after commit 784544739a25c30637397ace5489eeb6e15d7d49

    * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:

    > On Sat, Apr 11, 2009 at 09:08:54AM +0200, Ingo Molnar wrote:
    > >
    > > * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
    > >
    > > > I will nevertheless suggest the following egregious hack to
    > > > get a consistent sample of one counter for some other CPU:
    > > >
    > > > a. Disable interrupts
    > > > b. Atomically exchange the bottom 32 bits of the
    > > > counter with the value zero.
    > > > c. Atomically exchange the top 32 bits of the counter
    > > > with the value zero.
    > > > d. Concatenate the values obtained in (b) and (c), which
    > > > is the snapshot value.
    > >
    > > Note, i have recently implemented full atomic64_t support on 32-bit
    > > x86, for the perfcounters code, based on the CMPXCHG8B instruction.
    > >
    > > Which, while not the lightest of instructions, is still much better
    > > than the sequence above.
    > >
    > > So i think a better approach would be to also add a dumb generic
    > > implementation for atomic64_t (using a global lock or so), and then
    > > generic code could just assume that atomic64_t always exists.
    > >
    > > It is far nicer - and faster as well - as the hack above, even on
    > > 32-bit x86.
    >
    > If the generic implementation is needed only on !SMP systems, that
    > could work. The architectures I would be worried about include
    > powerpc and ia64, which I believe support 32-bit SMP builds.

    ia64 would naturally support the CMPXCHG8B instructions.

    Not sure about powerpc32. Having a lock for the library
    implementation is not _that_ much of a problem. We obviously dont
    want the design of Linux to be dictated by the weakest link of all
    platforms, right?

    Ingo


    \
     
     \ /
      Last update: 2009-04-12 12:57    [W:0.024 / U:0.084 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site