• L
    mm/cow: don't bother write protecting already write-protected pages · 1b2de5d0
    Linus Torvalds 提交于
    This is not normally noticeable, but repeated forks are unnecessarily
    expensive because they repeatedly dirty the parent page tables during
    the page table copy operation.
    
    It's trivial to just avoid write protecting the page table entry if it
    was already not writable.
    
    This patch was inspired by
    
        https://bugzilla.kernel.org/show_bug.cgi?id=200447
    
    which points to an ancient "waste time re-doing fork" issue in the
    presence of lots of signals.
    
    That bug was fixed by Eric Biederman's signal handling series
    culminating in commit c3ad2c3b ("signal: Don't restart fork when
    signals come in"), but the unnecessary work for repeated forks is still
    work just fixing, particularly since the fix is trivial.
    
    Cc: Eric Biederman <ebiederm@xmission.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    1b2de5d0
memory.c 128.0 KB