Skip to content
  • John David Anglin's avatar
    parisc: fixes and cleanups in page cache flushing (2/4) · 6d2ddc2f
    John David Anglin authored
    
    
    Implement clear_page_asm and copy_page_asm. These are optimized routines to
    clear and copy a page.  I tested prefetch optimizations in clear_page_asm and
    copy_page_asm but didn't see any significant performance improvement on rp3440.
    I'm not sure if these are routines are significantly faster than memset and/or
    memcpy, but they are there for further performance evaluation.
    
    TLB purge operations on PA 1.X SMP machines are now serialized with the help of
    the new tlb_lock() and tlb_unlock() macros, since on some PA-RISC machines, TLB
    purges need to be serialized in software.  Obviously, lock isn't needed in UP
    kernels.  On PA 2.0 machines, there is a local TLB instruction which is much
    less disruptive to the memory subsystem.  No lock is needed for local purge.
    
    Loops are also unrolled in flush_instruction_cache_local and
    flush_data_cache_local.
    
    The implementation of what used to be copy_user_page (now copy_user_page_asm)
    is now fixed. Additionally 64-bit support is now added. Read the preceding
    comment which I didn't change.  I left the comment but it is now inaccurate.
    
    Signed-off-by: default avatarJohn David Anglin <dave.anglin@bell.net>
    Signed-off-by: default avatarHelge Deller <deller@gmx.de>
    6d2ddc2f