lkml.org 
[lkml]   [2007]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC 4/9] Atomic reclaim: Save irq flags in vmscan.c
    On Tue, Aug 14, 2007 at 02:48:31PM -0700, Christoph Lameter wrote:
    > On Tue, 14 Aug 2007, Andi Kleen wrote:
    >
    > > > But that still creates lots of overhead each time we take the lru lock!
    > >
    > > A lot of overhead in what way? Setting a flag in a cache hot
    > > per CPU data variable shouldn't be more than a few cycles.
    >
    > Could you be a bit more specific? Where do you want to place the data?

    DEFINE_PER_CPU(int, zone_flag);

    get_cpu(); // likely already true and then not needed
    __get_cpu(zone_flag) = 1;
    /* wmb is implied in spin_lock I think */
    spin_lock(&zone->lru_lock);
    ...
    spin_unlock(&zone->lru_lock);
    __get_cpu(zone_flag) = 0;
    put_cpu();

    Interrupt handler

    if (!__get_cpu(zone_flag)) {
    do things with zone locks
    }

    The interrupt handler shouldn't touch zone_flag. If it wants
    to it would need to be converted to a local_t and incremented/decremented
    (should be about the same cost at least on architectures with sane
    local_t implementation)

    -Andi

    -
    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: 2007-08-15 00:19    [W:3.181 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site