• David S. Miller's avatar
    [PATCH] sparc64: Reduce ptrace cache flushing · dadeafdf
    David S. Miller authored
    We were flushing the D-cache excessively for ptrace() processing
    and this makes debugging threads so slow as to be totally unusable.
    
    All process page accesses via ptrace() go via access_process_vm().
    This routine, for each process page, uses get_user_pages().  That
    in turn does a flush_dcache_page() on the child pages before we
    copy in/out the ptrace request data.
    
    Therefore, all we need to do after the data movement is:
    
    1) Flush the D-cache pages if the kernel maps the page to a different
       color than userspace does.
    2) If we wrote to the page, we need to flush the I-cache on older cpus.
    
    Previously we just flushed the entire cache at the end of a ptrace()
    request, and that was beyond stupid.
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    dadeafdf
ptrace.c 16.5 KB