Inter-revision diff: cover letter

Comparing v7 (message) to v6 (message)

--- v7
+++ v6
@@ -1,164 +1,95 @@
-This series enables aarch64 with ilp32 mode, and as supporting work,
-introduces ARCH_32BIT_OFF_T configuration option that is enabled for
-existing 32-bit architectures but disabled for new arches (so 64-bit
-off_t is is used by new userspace).
-
-This version is based on kernel v4.7-rc3.
-It works with glibc-2.23, and tested with LTP.
-
-This is RFC because there is no solid understanding what type of registers
-top-halves delousing we prefer. In this patchset, w0-w7 are cleared for each
-syscall in assembler entry. The alternative approach is in introducing compat
-wrappers which is little faster for natively routed syscalls (~2.6% for syscall
-with no payload) but much more complicated.
+V6 addresses comments collected for v5 series.
+This is RFC because LTP tests fail (63 of 779).
+But I don't expect that major changes are required
+to fix regressions.
 
 v3: https://lkml.org/lkml/2014/9/3/704
 v4: https://lkml.org/lkml/2015/4/13/691
 v5: https://lkml.org/lkml/2015/9/29/911
-v6: https://lkml.org/lkml/2016/5/23/661
-v7: RFC nowrap:
-     - wrappers removed, unconditional register delousing is introduced.
-     - ino_t, off_t etc are turned to 64-bit.
-     - added is_compat_thread(),
-     - fixed ilp32 ELF_PLATFORM MACRO,
-     - fixed ilp32 ELF_DYN_BASE,
-     - ptrace redirected to compat version.
-     - stat, statfs - related syscalls are redirected to native handlers.
-     - elf_greg_t and elf_gregset_t types are taken from lp64.
-     - Documentation updated.
 
-Links:
-This series:		https://github.com/norov/linux/commits/ilp32-nowrap
-v7 with wrappers:	https://github.com/norov/linux/commits/ilp32
-glibc (dirty):		https://github.com/norov/glibc/commits/ilp32-nowrap
-glibc with wrappers:	https://github.com/norov/glibc/commits/ilp32-dev
+v6:
+ - time_t, __kenel_off_t and other types turned to be 32-bit
+   for compatibility reasons (after v5 discussion);
+ - related changes applied to ILP32 syscall table and handlers;
+ - ILP32 VDSO code excluded. It's not mandatory, and caused questions
+   during review process. We definitely make sure we will follow up
+   with a VDSO later on because it is needed for performance reasons;
+ - fixed build issues with different combinations of AARCH32 / ILP32
+   enabling in config;
+ - ILP32 TLS bug fixed;
+ - entry32-common.S introduced to hold wrappers needed for both ILP32
+   and AARCH32_EL0;
+ - documentation updated according to latest changes;
+ - rebased to the current head;
+ - coding style re-checked.
 
-Andrew Pinski (6):
+Andrew Pinski (13):
   arm64: ensure the kernel is compiled for LP64
   arm64: rename COMPAT to AARCH32_EL0 in Kconfig
-  arm64:uapi: set __BITS_PER_LONG correctly for ILP32 and LP64
-  arm64: ilp32: add sys_ilp32.c and a separate table (in entry.S) to use it
-  arm64: ilp32: introduce ilp32-specific handlers for sigframe and ucontext
+  arm64: change some CONFIG_COMPAT over to use CONFIG_AARCH32_EL0
+    instead
+  arm64:ilp32: share signal structures between ILP32 and LP64 ABIs
+  arm64: introduce is_a32_task and is_a32_thread (for AArch32 compat)
+  arm64:ilp32: add is_ilp32_compat_{task,thread} and TIF_32BIT_AARCH64
+  arm64:ilp32: share HWCAP between LP64 and ILP32
+  arm64:ilp32 use the native LP64 'start_thread' for ILP32 threads
+  arm64:ilp32: support core dump generation for ILP32
+  ptrace: Allow compat to use the native siginfo
+  arm64:ilp32: add sys_ilp32.c and a separate table (in entry.S) to use
+    it
+  arm64:ilp32: use the native siginfo instead of the compat siginfo
   arm64:ilp32: add ARM64_ILP32 to Kconfig
 
-Philipp Tomsich (1):
-  arm64:ilp32: add vdso-ilp32 and use for signal return
+Jan Dakinevich (1):
+  ilp32: common 32-bit wrappers
 
-Yury Norov (12):
-  compat ABI: use non-compat openat and open_by_handle_at variants
-  32-bit ABI: introduce ARCH_32BIT_OFF_T config option
-  arm64: ilp32: add documentation on the ILP32 ABI for ARM64
-  thread: move thread bits accessors to separated file
-  arm64: introduce is_a32_task and is_a32_thread (for AArch32 compat)
-  arm64: ilp32: add is_ilp32_compat_{task,thread} and TIF_32BIT_AARCH64
-  arm64: introduce binfmt_elf32.c
-  arm64: ilp32: introduce binfmt_ilp32.c
-  arm64: ptrace: handle ptrace_request differently for aarch32 and ilp32
-  arm64: ilp32: share aarch32 syscall handlers
-  arm64: signal: share lp64 signal routines to ilp32
-  arm64: signal32: move ilp32 and aarch32 common code to separated file
+Philipp Tomsich (2):
+  arm64:ilp32: add documentation on the ILP32 ABI for ARM64
+  arm64:ilp32: change COMPAT_ELF_PLATFORM to report a a subplatform for
+    ILP32
 
- Documentation/arm64/ilp32.txt                 |  54 +++++++
- arch/Kconfig                                  |   4 +
- arch/arc/Kconfig                              |   1 +
- arch/arm/Kconfig                              |   1 +
- arch/arm64/Kconfig                            |  19 ++-
- arch/arm64/Makefile                           |   5 +
- arch/arm64/include/asm/compat.h               |  19 +--
- arch/arm64/include/asm/elf.h                  |  29 +++-
- arch/arm64/include/asm/fpsimd.h               |   2 +-
- arch/arm64/include/asm/ftrace.h               |   2 +-
- arch/arm64/include/asm/hwcap.h                |   6 +-
- arch/arm64/include/asm/is_compat.h            |  90 ++++++++++++
- arch/arm64/include/asm/memory.h               |   5 +-
- arch/arm64/include/asm/processor.h            |  11 +-
- arch/arm64/include/asm/ptrace.h               |   2 +-
- arch/arm64/include/asm/signal32.h             |   6 +-
- arch/arm64/include/asm/signal32_common.h      |  25 ++++
- arch/arm64/include/asm/signal_common.h        |  33 +++++
- arch/arm64/include/asm/signal_ilp32.h         |  34 +++++
- arch/arm64/include/asm/syscall.h              |   2 +-
- arch/arm64/include/asm/thread_info.h          |   4 +-
- arch/arm64/include/asm/unistd.h               |   6 +-
- arch/arm64/include/asm/unistd32.h             |   2 +-
- arch/arm64/include/asm/vdso.h                 |   6 +
- arch/arm64/include/uapi/asm/bitsperlong.h     |   9 +-
- arch/arm64/kernel/Makefile                    |  14 +-
- arch/arm64/kernel/asm-offsets.c               |   9 +-
- arch/arm64/kernel/binfmt_elf32.c              |  31 ++++
- arch/arm64/kernel/binfmt_ilp32.c              |  96 +++++++++++++
- arch/arm64/kernel/cpufeature.c                |   8 +-
- arch/arm64/kernel/cpuinfo.c                   |  20 +--
- arch/arm64/kernel/entry.S                     |  35 ++++-
- arch/arm64/kernel/entry32.S                   |  65 ---------
- arch/arm64/kernel/entry32_common.S            |  93 ++++++++++++
- arch/arm64/kernel/entry_ilp32.S               |  23 +++
- arch/arm64/kernel/head.S                      |   2 +-
- arch/arm64/kernel/hw_breakpoint.c             |  10 +-
- arch/arm64/kernel/perf_regs.c                 |   2 +-
- arch/arm64/kernel/process.c                   |   7 +-
- arch/arm64/kernel/ptrace.c                    |  67 +++++++--
- arch/arm64/kernel/signal.c                    | 102 +++++++++-----
- arch/arm64/kernel/signal32.c                  |  85 -----------
- arch/arm64/kernel/signal32_common.c           | 115 +++++++++++++++
- arch/arm64/kernel/signal_ilp32.c              | 194 ++++++++++++++++++++++++++
- arch/arm64/kernel/sys32.c                     |   1 +
- arch/arm64/kernel/sys_ilp32.c                 |  84 +++++++++++
- arch/arm64/kernel/traps.c                     |   5 +-
- arch/arm64/kernel/vdso-ilp32/.gitignore       |   2 +
- arch/arm64/kernel/vdso-ilp32/Makefile         |  74 ++++++++++
- arch/arm64/kernel/vdso-ilp32/vdso-ilp32.S     |  33 +++++
- arch/arm64/kernel/vdso-ilp32/vdso-ilp32.lds.S |  95 +++++++++++++
- arch/arm64/kernel/vdso.c                      |  65 +++++++--
- arch/arm64/kernel/vdso/gettimeofday.S         |  20 ++-
- arch/blackfin/Kconfig                         |   1 +
- arch/cris/Kconfig                             |   1 +
- arch/frv/Kconfig                              |   1 +
- arch/h8300/Kconfig                            |   1 +
- arch/hexagon/Kconfig                          |   1 +
- arch/m32r/Kconfig                             |   1 +
- arch/m68k/Kconfig                             |   1 +
- arch/metag/Kconfig                            |   1 +
- arch/microblaze/Kconfig                       |   1 +
- arch/mips/Kconfig                             |   1 +
- arch/mn10300/Kconfig                          |   1 +
- arch/nios2/Kconfig                            |   1 +
- arch/openrisc/Kconfig                         |   1 +
- arch/parisc/Kconfig                           |   1 +
- arch/powerpc/Kconfig                          |   1 +
- arch/score/Kconfig                            |   1 +
- arch/sh/Kconfig                               |   1 +
- arch/sparc/Kconfig                            |   1 +
- arch/tile/Kconfig                             |   1 +
- arch/tile/kernel/compat.c                     |   3 +
- arch/unicore32/Kconfig                        |   1 +
- arch/x86/Kconfig                              |   1 +
- arch/x86/um/Kconfig                           |   1 +
- arch/xtensa/Kconfig                           |   1 +
- drivers/clocksource/arm_arch_timer.c          |   2 +-
- include/linux/fcntl.h                         |   2 +-
- include/linux/ptrace.h                        |   6 +
- include/linux/thread_bits.h                   |  55 ++++++++
- include/linux/thread_info.h                   |  44 +-----
- kernel/ptrace.c                               |  10 +-
- 83 files changed, 1536 insertions(+), 343 deletions(-)
+Yury Norov (1):
+  aarch64: ilp32: use generic stat64 structure
+
+ Documentation/arm64/ilp32.txt         |  55 +++++++
+ arch/arm64/Kconfig                    |  14 +-
+ arch/arm64/Makefile                   |   5 +
+ arch/arm64/include/asm/compat.h       |  70 ++++++++-
+ arch/arm64/include/asm/elf.h          | 105 +++++++++++--
+ arch/arm64/include/asm/fpsimd.h       |   2 +-
+ arch/arm64/include/asm/hwcap.h        |  12 +-
+ arch/arm64/include/asm/memory.h       |   2 +-
+ arch/arm64/include/asm/processor.h    |  18 ++-
+ arch/arm64/include/asm/ptrace.h       |   2 +-
+ arch/arm64/include/asm/signal32.h     |  19 +++
+ arch/arm64/include/asm/stat.h         |   2 +
+ arch/arm64/include/asm/thread_info.h  |   3 +-
+ arch/arm64/include/asm/unistd.h       |  11 +-
+ arch/arm64/include/uapi/asm/siginfo.h |  21 +++
+ arch/arm64/include/uapi/asm/signal.h  |  31 ++++
+ arch/arm64/kernel/Makefile            |   4 +-
+ arch/arm64/kernel/asm-offsets.c       |   2 +-
+ arch/arm64/kernel/entry.S             |  18 ++-
+ arch/arm64/kernel/entry32-common.S    |  37 +++++
+ arch/arm64/kernel/entry32.S           |  29 ----
+ arch/arm64/kernel/head.S              |   2 +-
+ arch/arm64/kernel/hw_breakpoint.c     |   7 +-
+ arch/arm64/kernel/perf_regs.c         |   2 +-
+ arch/arm64/kernel/process.c           |   4 +-
+ arch/arm64/kernel/ptrace.c            |  47 +++---
+ arch/arm64/kernel/signal.c            |  21 ++-
+ arch/arm64/kernel/sys_ilp32.c         | 278 ++++++++++++++++++++++++++++++++++
+ arch/arm64/kernel/traps.c             |   4 +-
+ arch/arm64/kernel/vdso.c              |  12 +-
+ include/linux/compat.h                |   4 +
+ include/uapi/asm-generic/siginfo.h    |  17 ++-
+ include/uapi/asm-generic/signal.h     |  27 +++-
+ include/uapi/asm-generic/stat.h       |   8 +-
+ kernel/ptrace.c                       |  24 ++-
+ 35 files changed, 806 insertions(+), 113 deletions(-)
  create mode 100644 Documentation/arm64/ilp32.txt
- create mode 100644 arch/arm64/include/asm/is_compat.h
- create mode 100644 arch/arm64/include/asm/signal32_common.h
- create mode 100644 arch/arm64/include/asm/signal_common.h
- create mode 100644 arch/arm64/include/asm/signal_ilp32.h
- create mode 100644 arch/arm64/kernel/binfmt_elf32.c
- create mode 100644 arch/arm64/kernel/binfmt_ilp32.c
- create mode 100644 arch/arm64/kernel/entry32_common.S
- create mode 100644 arch/arm64/kernel/entry_ilp32.S
- create mode 100644 arch/arm64/kernel/signal32_common.c
- create mode 100644 arch/arm64/kernel/signal_ilp32.c
+ create mode 100644 arch/arm64/kernel/entry32-common.S
  create mode 100644 arch/arm64/kernel/sys_ilp32.c
- create mode 100644 arch/arm64/kernel/vdso-ilp32/.gitignore
- create mode 100644 arch/arm64/kernel/vdso-ilp32/Makefile
- create mode 100644 arch/arm64/kernel/vdso-ilp32/vdso-ilp32.S
- create mode 100644 arch/arm64/kernel/vdso-ilp32/vdso-ilp32.lds.S
- create mode 100644 include/linux/thread_bits.h
 
 -- 
-2.7.4
+2.1.4
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help