]> Pileus Git - ~andy/linux/commit
parisc: fixes and cleanups in page cache flushing (2/4)
authorJohn David Anglin <dave.anglin@bell.net>
Sun, 3 Feb 2013 23:00:54 +0000 (23:00 +0000)
committerHelge Deller <deller@gmx.de>
Wed, 20 Feb 2013 21:49:29 +0000 (22:49 +0100)
commit6d2ddc2f9414d5ad0d3f014416020579ccce1baf
tree9417c7592d5cb1fe4d5bb4c93985ac16085d9de1
parent7633453978c54874849c5f40487ac9e14d43fc12
parisc: fixes and cleanups in page cache flushing (2/4)

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: John David Anglin <dave.anglin@bell.net>
Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/kernel/pacache.S