public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
To: libc-alpha@sourceware.org
Subject: Re: [PATCH v3 00/17] Consolidate Linux sysvipc implementation
Date: Fri, 25 Nov 2016 14:02:00 -0000	[thread overview]
Message-ID: <4da8d053-4370-b639-2afc-b831ad756e6b@linaro.org> (raw)
In-Reply-To: <1478637007-31212-1-git-send-email-adhemerval.zanella@linaro.org>

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
> 

  parent reply	other threads:[~2016-11-25 14:02 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-08 20:30 Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 01/17] Add __ASSUME_SYSVIPC_SYSCALL for Linux Adhemerval Zanella
2016-11-08 21:19   ` Andreas Schwab
2016-11-09 13:23     ` Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 04/17] Consolidate Linux msgrcv implementation Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 03/17] Consolidate Linux msgctl implementation Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 10/17] Use semop syscall for Linux implementation Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 02/17] Refactor Linux ipc_priv header Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 15/17] Use shmdt syscall for linux implementation Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 13/17] Use shmat syscall for Linux implementation Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 12/17] Add SYSV semaphore test Adhemerval Zanella
2016-11-08 20:30 ` [PATCH v3 11/17] Consolidate Linux semtimedop implementation Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 09/17] Use semget syscall for Linux implementation Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 14/17] Consolidate Linux shmctl implementation Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 05/17] Use msgsnd syscall for Linux implementation Adhemerval Zanella
2016-11-08 21:13   ` Andreas Schwab
2016-11-09 13:23     ` Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 08/17] Consolidate Linux semctl implementation Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 16/17] Use shmget syscall for linux implementation Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 07/17] Add SYSV message queue test Adhemerval Zanella
2016-11-08 21:23   ` Andreas Schwab
2016-11-09 13:28     ` Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 06/17] Use msgget syscall for Linux implementation Adhemerval Zanella
2016-11-08 20:31 ` [PATCH v3 17/17] Add SYSV shared memory test Adhemerval Zanella
2016-11-09 13:57 ` [PATCH v3 00/17] Consolidate Linux sysvipc implementation Yury Norov
2016-11-25 14:02 ` Adhemerval Zanella [this message]
2016-12-07 19:14   ` Adhemerval Zanella
2016-12-09 18:31     ` Steve Ellcey
2016-12-09 20:04       ` Arnd Bergmann
2017-01-05 20:57         ` Yury Norov
2016-12-09 20:18       ` Adhemerval Zanella

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4da8d053-4370-b639-2afc-b831ad756e6b@linaro.org \
    --to=adhemerval.zanella@linaro.org \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).