[PATCH v4 0/4] Add two new system call mq_recvmmsg() and mq_sendmmsg() to posix ipc mqueue

From: mathura kumar

Date: Thu Sep 24 2026 - 11:43:01 EST




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.

I am still awaiting the full review for v3. However, I have incorporated the
minor feedback suggested so far and wanted to share this updated version.


change since v3:

- error handling improved for backward compatibility
- edge cases in augmentation has been handled properly
- documentation formating fixed and improved
- syscall number order corrected in arch/microblaze/kernel/syscalls/syscall.tbl

- v3 Link: https://lore.kernel.org/all/20260816153811.1085261-1-mathura.kumar.tech@xxxxxxxxx/


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 | 207 ++++++
Documentation/userspace-api/mq_sendmmsg.rst | 171 +++++
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 | 9 +
include/uapi/asm-generic/unistd.h | 9 +-
include/uapi/linux/mqueue.h | 27 +-
ipc/mqueue.c | 595 +++++++++++++++++-
ipc/msg.c | 2 +-
ipc/msgutil.c | 45 +-
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 | 392 ++++++++++++
tools/testing/selftests/ipc/mq_sendmmsg.c | 360 +++++++++++
46 files changed, 1855 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