[lkml]   [2007]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [rfc] optimise unlock_page
    On Tue, 2007-05-08 at 13:40 +0200, Nick Piggin wrote:
    > This patch trades a page flag for a significant improvement in the unlock_page
    > fastpath. Various problems in the previous version were spotted by Hugh and
    > Ben (and fixed in this one).
    > Comments?
    > --
    > Speed up unlock_page by introducing a new page flag to signal that there are
    > page waitqueue waiters for PG_locked. This means a memory barrier and a random
    > waitqueue hash cacheline load can be avoided in the fastpath when there is no
    > contention.

    I'm not 100% familiar with the exclusive vs. non exclusive wait thingy
    but wake_up_page() does __wake_up_bit() which calls __wake_up() with
    nr_exclusive set to 1. Doesn't that mean that only one waiter will be
    woken up ?

    If that's the case, then we lose because we'll have clear PG_waiters but
    only wake up one of them.

    Waking them all would fix it but at the risk of causing other
    problems... Maybe PG_waiters need to actually be a counter but if that
    is the case, then it complicates things even more.

    Any smart idea ?


    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-05-08 23:33    [W:0.020 / U:80.888 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site