[PATCH v3 0/4] Add two new system call mq_recvmmsg() and mq_sendmmsg() to posix ipc mqueue
Mathura_Kumar <[email protected]> Sat, 20 Jun 2026 16:53:55 +0530
| Newsgroups | dev.linux.lists.criu |
|---|---|
| Message-ID | <[email protected]> |
Patch series overview:
1. Add New system call mq_recvmmsg(), mq_sendmmsg() and handler implementation.
2. Add system call number in all most common architectures.
3. Add entries in performance tools.
4. Prepared Documentation and test.
change since v2:
- iovec is introduced for arguments.
- since v2 does not contain batch operation and I introduced batch support now
in recv or peek, due to that I added one more system call to support
batch during send as well otherwise i don't see any benefites of having
batching in consumer side only.
- the underlying tree structure used to store messages is augmented by introducing
two additional fields on each node. This enables logarithmic-time complexity for
peek operations and improves the efficiency of other tree traversals.
- some flaws in compat entry path fixed
- styles and formating improved
- test updated
- documentation is updated appropriately.
- v2 Link: https://lore.kernel.org/linux-arch/[email protected]/T/#t
Thanks for reviewing.
Mathura_Kumar (4):
IPC: Added two new system call mq_recvmmsg() and mq_sendmmsg()
IPC: Added system call entry in all of most common architectures
IPC: Added system call entry in performance tool
Test: Added self-testing and documentation
Documentation/userspace-api/index.rst | 2 +
Documentation/userspace-api/mq_recvmmsg.rst | 205 +++++++
Documentation/userspace-api/mq_sendmmsg.rst | 168 ++++++
arch/alpha/kernel/syscalls/syscall.tbl | 2 +
arch/arm/tools/syscall.tbl | 2 +
arch/arm64/tools/syscall_32.tbl | 3 +
arch/m68k/kernel/syscalls/syscall.tbl | 2 +
arch/microblaze/kernel/syscalls/syscall.tbl | 2 +
arch/mips/kernel/syscalls/syscall_n32.tbl | 2 +
arch/mips/kernel/syscalls/syscall_n64.tbl | 3 +
arch/mips/kernel/syscalls/syscall_o32.tbl | 2 +
arch/parisc/kernel/syscalls/syscall.tbl | 2 +
arch/powerpc/kernel/syscalls/syscall.tbl | 2 +
arch/s390/kernel/syscalls/syscall.tbl | 3 +
arch/sh/kernel/syscalls/syscall.tbl | 2 +
arch/sparc/kernel/syscalls/syscall.tbl | 3 +
arch/x86/entry/syscalls/syscall_32.tbl | 2 +
arch/x86/entry/syscalls/syscall_64.tbl | 3 +-
arch/xtensa/kernel/syscalls/syscall.tbl | 2 +
include/linux/compat.h | 12 +-
include/linux/syscalls.h | 10 +
include/uapi/asm-generic/unistd.h | 9 +-
include/uapi/linux/mqueue.h | 27 +-
ipc/mqueue.c | 562 +++++++++++++++++-
ipc/msg.c | 2 +-
ipc/msgutil.c | 43 +-
ipc/util.h | 3 +-
kernel/sys_ni.c | 6 +
scripts/syscall.tbl | 2 +
tools/include/uapi/asm-generic/unistd.h | 8 +-
.../arch/alpha/entry/syscalls/syscall.tbl | 4 +
.../perf/arch/arm/entry/syscalls/syscall.tbl | 3 +
.../arch/arm64/entry/syscalls/syscall_32.tbl | 3 +
.../arch/mips/entry/syscalls/syscall_n64.tbl | 2 +
.../arch/parisc/entry/syscalls/syscall.tbl | 3 +
.../arch/powerpc/entry/syscalls/syscall.tbl | 3 +
.../perf/arch/s390/entry/syscalls/syscall.tbl | 2 +
tools/perf/arch/sh/entry/syscalls/syscall.tbl | 2 +
.../arch/sparc/entry/syscalls/syscall.tbl | 2 +
.../arch/x86/entry/syscalls/syscall_32.tbl | 2 +
.../arch/x86/entry/syscalls/syscall_64.tbl | 2 +
.../arch/xtensa/entry/syscalls/syscall.tbl | 2 +
tools/scripts/syscall.tbl | 2 +
tools/testing/selftests/ipc/Makefile | 2 +-
tools/testing/selftests/ipc/mq_recvmmsg.c | 391 ++++++++++++
tools/testing/selftests/ipc/mq_sendmmsg.c | 360 +++++++++++
46 files changed, 1815 insertions(+), 66 deletions(-)
create mode 100644 Documentation/userspace-api/mq_recvmmsg.rst
create mode 100644 Documentation/userspace-api/mq_sendmmsg.rst
create mode 100644 tools/testing/selftests/ipc/mq_recvmmsg.c
create mode 100644 tools/testing/selftests/ipc/mq_sendmmsg.c
--
2.43.0