Re: [PATCH v3 0/5] Add new system call for non-destructive peek and inspection to posix ipc mqueue

Andrei Vagin <[email protected]> Mon, 13 Apr 2026 09:36:44 -0700
Newsgroups dev.linux.lists.criu
Message-ID <CANaxB-yLxYS43+uJ8Ag7+O9mieqoq6UHd+sXaSOTSDbJ3efCTA@mail.gmail.com>
On Wed, Apr 8, 2026 at 2:53=E2=80=AFAM Mathura_Kumar <academic1mathura@gmai=
l.com> wrote:
>
>
> Patch series overview:
>
>   1. Add New system call do_mq_timedreceive2() and handler implementation
>   2. Add system call number in all most common arch.
>   3. Prepared Documentation and test
>   4. Add entry in performance tools all most common file
>   5. Add bitmask flag and user struct size as input for extensibility

Could you please explain why MSG_COPY can't be used to implement C/R?
It was introduced by 4a674f34ba04a ("ipc: introduce message queue copy feat=
ure")

>
> change since v2:
>  - bitmask flag is added and check for valid operation
>  - userspace struct argument size is added for extensibility
>  - new test is added
>  - documentation is updated approximately
>  - increased the total system call count in performance tool as well
>  - v2 Link: https://lore.kernel.org/linux-arch/20260320052340.6696-1-acad=
[email protected]/T/#t
>
>
>   Thanks for reviewing.
>
>
>  Documentation/userspace-api/index.rst         |   1 +
>  Documentation/userspace-api/ipc.rst           | 228 +++++
>  arch/alpha/kernel/syscalls/syscall.tbl        |   1 +
>  arch/arm/tools/syscall.tbl                    |   1 +
>  arch/arm64/tools/syscall_32.tbl               |   1 +
>  arch/m68k/kernel/syscalls/syscall.tbl         |   1 +
>  arch/microblaze/kernel/syscalls/syscall.tbl   |   1 +
>  arch/mips/kernel/syscalls/syscall_n32.tbl     |   1 +
>  arch/mips/kernel/syscalls/syscall_n64.tbl     |   1 +
>  arch/mips/kernel/syscalls/syscall_o32.tbl     |   1 +
>  arch/parisc/kernel/syscalls/syscall.tbl       |   1 +
>  arch/powerpc/kernel/syscalls/syscall.tbl      |   1 +
>  arch/s390/kernel/syscalls/syscall.tbl         |   1 +
>  arch/sh/kernel/syscalls/syscall.tbl           |   1 +
>  arch/sparc/kernel/syscalls/syscall.tbl        |   1 +
>  arch/x86/entry/syscalls/syscall_32.tbl        |   1 +
>  arch/x86/entry/syscalls/syscall_64.tbl        |   1 +
>  arch/xtensa/kernel/syscalls/syscall.tbl       |   1 +
>  include/linux/compat.h                        |   6 +-
>  include/linux/syscalls.h                      |   6 +
>  include/uapi/asm-generic/unistd.h             |   7 +-
>  include/uapi/linux/mqueue.h                   |  14 +-
>  ipc/mqueue.c                                  | 211 ++++-
>  ipc/msg.c                                     |   2 +-
>  ipc/msgutil.c                                 |  48 +-
>  ipc/util.h                                    |   3 +-
>  kernel/sys_ni.c                               |   3 +
>  scripts/syscall.tbl                           |   1 +
>  tools/include/uapi/asm-generic/unistd.h       |   6 +-
>  .../arch/alpha/entry/syscalls/syscall.tbl     |   1 +
>  .../perf/arch/arm/entry/syscalls/syscall.tbl  |   1 +
>  .../arch/arm64/entry/syscalls/syscall_32.tbl  |   1 +
>  .../arch/mips/entry/syscalls/syscall_n64.tbl  |   1 +
>  .../arch/parisc/entry/syscalls/syscall.tbl    |   1 +
>  .../arch/powerpc/entry/syscalls/syscall.tbl   |   1 +
>  .../perf/arch/s390/entry/syscalls/syscall.tbl |   1 +
>  tools/perf/arch/sh/entry/syscalls/syscall.tbl |   1 +
>  .../arch/sparc/entry/syscalls/syscall.tbl     |   1 +
>  .../arch/x86/entry/syscalls/syscall_32.tbl    |   1 +
>  .../arch/x86/entry/syscalls/syscall_64.tbl    |   1 +
>  .../arch/xtensa/entry/syscalls/syscall.tbl    |   1 +
>  tools/scripts/syscall.tbl                     |   1 +
>  tools/testing/selftests/ipc/.gitignore        |   1 +
>  tools/testing/selftests/ipc/Makefile          |   9 +-
>  tools/testing/selftests/ipc/mq_peek.c         | 813 ++++++++++++++++++
>  45 files changed, 1343 insertions(+), 45 deletions(-)
>  create mode 100644 Documentation/userspace-api/ipc.rst
>  create mode 100644 tools/testing/selftests/ipc/mq_peek.c
>
> --
> 2.43.0
>