[Linux-Xtensa] [PULL 0/25] xtensa improvements and fixes for 3.17

czankel chris at zankel.net
Thu Aug 14 05:23:58 UTC 2014


Hi Max,

Great to finally get support for highmen and cache aliasing :-)

Just a couple of questions:

----

commit af177dd2992f2860e85465538574e5d8cc0b5f87
     xtensa: simplify addition of new core variants

Instead of:
  $(strip $(subst $(QUOTE),,$(CONFIG_XTENSA_VARIANT_NAME)))
you could also use
  $(patsubst "%",%,$(CONFIG_XTENSA_VARIANT_NAME))
which eliminates the use of the extra commented line to close the quote.

----

commit 850781f435e7db821461e754608995b140ecc42a
     xtensa: replace IOCTL code definitions with constants

Is there a reason we have to keep the direction and size bits there?
Looking at other architectures and the generic implementation, I would 
assume it's not used or gets stripped somehow.
(Does strace, etc. depend on them)?

In that case, maybe we could just use the generic header file (unless we 
have some different mapping).


----


commit 10812568df81566c15732779f62408cef79bb559
     xtensa: implement clear_user_highpage and copy_user_highpage

Would we need some different mapping depending on the CPU index for SMP?
(You added something there in the other patch)


----

commit 62cad517f7c0e981e5d21f6e05b10403888a677e
     xtensa: support aliasing cache in kmap

There was an old comment to use __always_inline in header files.
(https://www.kernel.org/doc/local/inline.html)


----

commit 59a6c8fcf234581b860f76a5b1b84bdf469ae0f8
     xtensa: support highmem in aliasing cache flushing code

Does the previous patch above handle cache colors for high-mem pages by 
the temporary mapping, or do we need this patch to keep them in 
different arrays?


----

commit 61e1e9e953501ce271d359ff976f0b5eacb8aada
     xtensa: move invalid unaligned instruction handler closer to its users

I vaguely remember that there were some problems when the density option 
was disabled. Did you have a chance if the distances are still within 
the limits for such processor configurations?



Thanks,
-Chris






On 8/8/14, 3:21 PM, Max Filippov wrote:
> Hi Chris,
>
> please pull this series of improvement and fixes for xtensa for v3.17.
> It is based on v3.16-rc7 and its correctness depends on
>
>    15de36a4c3c mm/highmem: make kmap cache coloring aware
>
> which is now in the mainline (got there through -mm tree).
>
> The following changes since commit 64aa90f26c06e1cb2aacfb98a7d0eccfbd6c1a91:
>
>    Linux 3.16-rc7 (2014-07-27 12:41:55 -0700)
>
> are available in the git repository at:
>
>    git://github.com/jcmvbkbc/linux-xtensa.git tags/xtensa-for-next-20140809
>
> for you to fetch changes up to 05b343bc28505e516143ba4b6f4a33610fbea2e0:
>
>    xtensa: deprecate fast_xtensa and fast_spill_registers syscalls (2014-08-07 03:32:30 +0400)
>
> ----------------------------------------------------------------
> Xtensa improvements for 3.17:
> - support highmem on cores with aliasing data cache. Enable highmem on kc705
>    by default;
> - simplify addition of new core variants (no need to modify Kconfig /
>    Makefiles);
> - improve robustness of unaligned access handler and its interaction with
>    window overflow/underflow exception handlers;
> - deprecate atomic and spill registers syscalls;
> - clean up Kconfig: remove orphan MATH_EMULATION, sort 'select' statements;
> - wire up renameat2 syscall.
>
> Various fixes:
> - fix address checks in dma_{alloc,free}_coherent (runtime BUG);
> - fix access to THREAD_RA/THREAD_SP/THREAD_DS (debug build breakage);
> - fix TLBTEMP_BASE_2 region handling in fast_second_level_miss (runtime
>    unrecoverable exception);
> - fix a6 and a7 handling in fast_syscall_xtensa (runtime userspace register
>    clobbering);
> - fix kernel/user jump out of fast_unaligned (potential runtime unrecoverable
>    exception);
> - replace termios IOCTL code definitions with constants (userspace build
>    breakage).
>
> ----------------------------------------------------------------
> Alan Douglas (1):
>        xtensa: fix address checks in dma_{alloc,free}_coherent
>
> Max Filippov (23):
>        xtensa: simplify addition of new core variants
>        xtensa: make MMU-related configuration options depend on MMU
>        xtensa: sort 'select' statements in Kconfig
>        xtensa: select HAVE_IDE only on platforms that may have it
>        xtensa: remove orphan MATH_EMULATION symbol
>        xtensa: replace IOCTL code definitions with constants
>        xtensa: fix access to THREAD_RA/THREAD_SP/THREAD_DS
>        xtensa: make fixmap region addressing grow with index
>        xtensa: allow fixmap and kmap span more than one page table
>        xtensa: fix TLBTEMP_BASE_2 region handling in fast_second_level_miss
>        xtensa: implement clear_user_highpage and copy_user_highpage
>        xtensa: support aliasing cache in k[un]map_atomic
>        xtensa: support aliasing cache in kmap
>        xtensa: support highmem in aliasing cache flushing code
>        xtensa: configure kc705 for highmem
>        xtensa: fix kernel/user jump out of fast_unaligned
>        xtensa: add double exception fixup handler for fast_unaligned
>        xtensa: make fast_unaligned store restartable
>        xtensa: move invalid unaligned instruction handler closer to its users
>        xtensa: allow single-stepping through unaligned load/store
>        xtensa: fix a6 and a7 handling in fast_syscall_xtensa
>        xtensa: don't allow overflow/underflow on unaligned stack
>        xtensa: deprecate fast_xtensa and fast_spill_registers syscalls
>
> Miklos Szeredi (1):
>        xtensa: add renameat2 syscall
>
>   arch/xtensa/Kconfig                   |  92 +++++++++++++++++++-----
>   arch/xtensa/Makefile                  |   8 +--
>   arch/xtensa/boot/dts/kc705.dts        |   5 +-
>   arch/xtensa/configs/common_defconfig  |   1 -
>   arch/xtensa/configs/iss_defconfig     |   3 +-
>   arch/xtensa/configs/s6105_defconfig   |   1 -
>   arch/xtensa/include/asm/cacheflush.h  |   2 +
>   arch/xtensa/include/asm/fixmap.h      |  30 ++++++--
>   arch/xtensa/include/asm/highmem.h     |  40 ++++++++++-
>   arch/xtensa/include/asm/page.h        |  14 +++-
>   arch/xtensa/include/asm/pgtable.h     |   7 +-
>   arch/xtensa/include/asm/uaccess.h     |   5 ++
>   arch/xtensa/include/uapi/asm/ioctls.h |  19 ++---
>   arch/xtensa/include/uapi/asm/unistd.h |   5 +-
>   arch/xtensa/kernel/align.S            | 128 +++++++++++++++++++++-------------
>   arch/xtensa/kernel/entry.S            |  54 ++++++++++----
>   arch/xtensa/kernel/pci-dma.c          |  12 ++--
>   arch/xtensa/kernel/traps.c            |   5 +-
>   arch/xtensa/kernel/vectors.S          |   8 ++-
>   arch/xtensa/kernel/vmlinux.lds.S      |   4 +-
>   arch/xtensa/mm/cache.c                |  77 +++++++++++++++++---
>   arch/xtensa/mm/highmem.c              |  41 ++++++++---
>   arch/xtensa/mm/misc.S                 | 116 ++++++++++++++----------------
>   arch/xtensa/mm/mmu.c                  |  38 +++++-----
>   24 files changed, 498 insertions(+), 217 deletions(-)
>



More information about the linux-xtensa mailing list