This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v3 00/17] Consolidate Linux sysvipc implementation


Ping x2.

On 25/11/2016 12:02, Adhemerval Zanella wrote:
> Ping (with Andreas comments fixed).
> 
> On 08/11/2016 18:29, Adhemerval Zanella wrote:
>> Changes from previous version:
>>
>>   - Refactor ipc_priv.h header to have working definition for all
>>     architectures.  The header basically contains Linux specific
>>     ABI definitions for the architecture to correctly use default
>>     implementation, including old ipc_perm definition, calling
>>     convention, and __IPC_64 value.
>>
>>   - Set all architectures to use the default implementation.  It
>>     leaded to some code changes to accomodate all the architectures
>>     calling convention (with ipc_priv.h change) and some fixes
>>     on new default implementation.
>>
>>   - Change mips64 implementation way to use the default one.
>>
>>   - Some tests changes (name typos).
>>
>> --
>>
>> This patchset is a continuation of my Linux syscall consolidation
>> implementation and aimed for SySV IPC (message queue, semaphore,
>> and shared memory).
>>
>> Current Linux default implementation only defines the old ipc
>> syscall method.  Architectures need to either to imply the generic
>> syscalls.list or reimplement the syscall definition.  To simplify
>> and allow to remove some old arch-specific implementation, I added
>> the direct syscall method for all supported IPC mechanisms.
>>
>> Other changes are simple code reorganization to simplify and all
>> compatibility required for various ports.
>>
>> The patchset also adds 3 simple tests that aims to check for correct
>> argument passing on syscall.  The idea is not to be an extensive
>> testing of all supported IPC.
>>
>> Checked on x86_64, i686, armhf, aarch64, and powerpc64le.
>>
>> Adhemerval Zanella (17):
>>   Add __ASSUME_SYSVIPC_SYSCALL for Linux
>>   Refactor Linux ipc_priv header
>>   Consolidate Linux msgctl implementation
>>   Consolidate Linux msgrcv implementation
>>   Use msgsnd syscall for Linux implementation
>>   Use msgget syscall for Linux implementation
>>   Add SYSV message queue test
>>   Consolidate Linux semctl implementation
>>   Use semget syscall for Linux implementation
>>   Use semop syscall for Linux implementation
>>   Consolidate Linux semtimedop implementation
>>   Add SYSV semaphore test
>>   Use shmat syscall for Linux implementation
>>   Consolidate Linux shmctl implementation
>>   Use shmdt syscall for linux implementation
>>   Use shmget syscall for linux implementation
>>   Add SYSV shared memory test
>>
>>  ChangeLog                                          | 229 +++++++++++++++++++++
>>  sysdeps/unix/sysv/linux/aarch64/ipc_priv.h         |  32 +++
>>  sysdeps/unix/sysv/linux/alpha/Makefile             |   3 -
>>  sysdeps/unix/sysv/linux/alpha/ipc_priv.h           |  33 ++-
>>  sysdeps/unix/sysv/linux/alpha/kernel-features.h    |   3 +
>>  sysdeps/unix/sysv/linux/alpha/msgctl.c             |   1 -
>>  sysdeps/unix/sysv/linux/alpha/semctl.c             |   1 -
>>  sysdeps/unix/sysv/linux/alpha/shmctl.c             |   1 -
>>  sysdeps/unix/sysv/linux/alpha/syscalls.list        |  13 --
>>  sysdeps/unix/sysv/linux/arm/msgctl.c               |  33 ---
>>  sysdeps/unix/sysv/linux/arm/semctl.c               |  54 -----
>>  sysdeps/unix/sysv/linux/arm/shmctl.c               |  34 ---
>>  sysdeps/unix/sysv/linux/arm/syscalls.list          |  12 --
>>  sysdeps/unix/sysv/linux/generic/syscalls.list      |  14 --
>>  sysdeps/unix/sysv/linux/hppa/syscalls.list         |  14 --
>>  sysdeps/unix/sysv/linux/i386/kernel-features.h     |   3 +
>>  sysdeps/unix/sysv/linux/ia64/syscalls.list         |  14 --
>>  sysdeps/unix/sysv/linux/ipc_ops.h                  |  30 +++
>>  sysdeps/unix/sysv/linux/ipc_priv.h                 |  23 +--
>>  sysdeps/unix/sysv/linux/kernel-features.h          |   4 +
>>  sysdeps/unix/sysv/linux/m68k/kernel-features.h     |   3 +
>>  sysdeps/unix/sysv/linux/m68k/semtimedop.S          |  69 -------
>>  sysdeps/unix/sysv/linux/microblaze/msgctl.c        |   1 -
>>  sysdeps/unix/sysv/linux/microblaze/semctl.c        |   1 -
>>  sysdeps/unix/sysv/linux/microblaze/shmctl.c        |   1 -
>>  sysdeps/unix/sysv/linux/microblaze/syscalls.list   |  12 --
>>  sysdeps/unix/sysv/linux/mips/ipc_priv.h            |   1 -
>>  sysdeps/unix/sysv/linux/mips/kernel-features.h     |   2 +
>>  sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h     |  32 +++
>>  sysdeps/unix/sysv/linux/mips/mips64/msgctl.c       |  17 +-
>>  sysdeps/unix/sysv/linux/mips/mips64/semctl.c       |  38 +---
>>  sysdeps/unix/sysv/linux/mips/mips64/shmctl.c       |  17 +-
>>  sysdeps/unix/sysv/linux/mips/mips64/syscalls.list  |  12 --
>>  sysdeps/unix/sysv/linux/msgctl.c                   |  45 ++--
>>  sysdeps/unix/sysv/linux/msgget.c                   |  11 +-
>>  sysdeps/unix/sysv/linux/msgrcv.c                   |  26 +--
>>  sysdeps/unix/sysv/linux/msgsnd.c                   |  11 +-
>>  sysdeps/unix/sysv/linux/powerpc/ipc_priv.h         |  23 +--
>>  sysdeps/unix/sysv/linux/powerpc/kernel-features.h  |   3 +
>>  sysdeps/unix/sysv/linux/s390/kernel-features.h     |   3 +
>>  sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list |  14 --
>>  sysdeps/unix/sysv/linux/s390/semtimedop.c          |  12 +-
>>  sysdeps/unix/sysv/linux/semctl.c                   |  58 +++---
>>  sysdeps/unix/sysv/linux/semget.c                   |  11 +-
>>  sysdeps/unix/sysv/linux/semop.c                    |  10 +-
>>  sysdeps/unix/sysv/linux/semtimedop.c               |  13 +-
>>  sysdeps/unix/sysv/linux/sh/kernel-features.h       |   3 +
>>  sysdeps/unix/sysv/linux/shmat.c                    |  17 +-
>>  sysdeps/unix/sysv/linux/shmctl.c                   |  59 +++---
>>  sysdeps/unix/sysv/linux/shmdt.c                    |  12 +-
>>  sysdeps/unix/sysv/linux/shmget.c                   |  13 +-
>>  sysdeps/unix/sysv/linux/sparc/kernel-features.h    |   3 +
>>  sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h   |  41 ++++
>>  sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c     |  32 ---
>>  sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c     |  54 -----
>>  sysdeps/unix/sysv/linux/x86_64/ipc_priv.h          |  32 +++
>>  sysdeps/unix/sysv/linux/x86_64/syscalls.list       |  12 --
>>  sysvipc/Makefile                                   |   2 +
>>  sysvipc/test-sysvmsg.c                             | 128 ++++++++++++
>>  sysvipc/test-sysvsem.c                             | 116 +++++++++++
>>  sysvipc/test-sysvshm.c                             | 130 ++++++++++++
>>  test-skeleton.c                                    |   2 +
>>  62 files changed, 1010 insertions(+), 643 deletions(-)
>>  create mode 100644 sysdeps/unix/sysv/linux/aarch64/ipc_priv.h
>>  delete mode 100644 sysdeps/unix/sysv/linux/alpha/msgctl.c
>>  delete mode 100644 sysdeps/unix/sysv/linux/alpha/semctl.c
>>  delete mode 100644 sysdeps/unix/sysv/linux/alpha/shmctl.c
>>  delete mode 100644 sysdeps/unix/sysv/linux/arm/msgctl.c
>>  delete mode 100644 sysdeps/unix/sysv/linux/arm/semctl.c
>>  delete mode 100644 sysdeps/unix/sysv/linux/arm/shmctl.c
>>  create mode 100644 sysdeps/unix/sysv/linux/ipc_ops.h
>>  delete mode 100644 sysdeps/unix/sysv/linux/m68k/semtimedop.S
>>  delete mode 100644 sysdeps/unix/sysv/linux/microblaze/msgctl.c
>>  delete mode 100644 sysdeps/unix/sysv/linux/microblaze/semctl.c
>>  delete mode 100644 sysdeps/unix/sysv/linux/microblaze/shmctl.c
>>  delete mode 100644 sysdeps/unix/sysv/linux/mips/ipc_priv.h
>>  create mode 100644 sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h
>>  delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
>>  create mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h
>>  delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c
>>  delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c
>>  create mode 100644 sysdeps/unix/sysv/linux/x86_64/ipc_priv.h
>>  create mode 100644 sysvipc/test-sysvmsg.c
>>  create mode 100644 sysvipc/test-sysvsem.c
>>  create mode 100644 sysvipc/test-sysvshm.c
>>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]