• Linus Torvalds's avatar
    page waitqueue: always add new entries at the end · 9c3a815f
    Linus Torvalds authored
    Commit 3510ca20 ("Minor page waitqueue cleanups") made the page
    queue code always add new waiters to the back of the queue, which helps
    upcoming patches to batch the wakeups for some horrid loads where the
    wait queues grow to thousands of entries.
    
    However, I forgot about the nasrt add_page_wait_queue() special case
    code that is only used by the cachefiles code.  That one still continued
    to add the new wait queue entries at the beginning of the list.
    
    Fix it, because any sane batched wakeup will require that we don't
    suddenly start getting new entries at the beginning of the list that we
    already handled in a previous batch.
    
    [ The current code always does the whole list while holding the lock, so
      wait queue ordering doesn't matter for correctness, but even then it's
      better to add later entries at the end from a fairness standpoint ]
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    9c3a815f
filemap.c 84.7 KB