From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F356721A92F for ; Sat, 20 Jun 2026 11:24:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781954686; cv=none; b=gWvaGzxonwar7GIUYtxJZXEkLYB0F9oYWtrslrsOTOuIW/BefQ1oKOnrtwMhCEgIURSRsCQYDjmxPVegolktGcLTHb+376xwqKayFqZpSZI65JnKS8oRikOpOgE4LtUap2yBm5L0TW7iFrRyYVtuE+OqzxA4eQ8K/SVHwP2Ukik= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781954686; c=relaxed/simple; bh=QiKr5VqBKXDNFktJ6oX2rr8YBuq0c4tix8GbTIc8U80=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=arSDiTSsSvsmqg539S+I0sdxLyQnYgFsI637CnZomk5txuUKr3p+ADbcvriW0i+1eZOraES5rVm/2t6WA3vVpXCeugcGdQGMA6e1ihKPdS38dq2qLY3dSXWC+Kko7XUE7D4+Mru/AiO5arPOBcabeoLvoQyRW3IUKO5vOW+hiik= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=BVNsbjI4; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="BVNsbjI4" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-2bf1cda2b17so17150685ad.1 for ; Sat, 20 Jun 2026 04:24:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781954684; x=1782559484; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=pZcfd73nPaHUydQ+nWaejIvMQmSY6fkMS/GT1DNnVqY=; b=BVNsbjI4RZVdhtmtCq3i/wAMG4Zns1yKuh2p7//Bfn+XicG4jOZj3z6MGH/BbW2ckK KU5yqBi7IkIMUQ+ZZMTevXVhsJtGbSqb9ObItVWo2Q32RqNDRXbbTcPr/CZZmDMY9lbX rsIw6vCsuYNTjjauZ3g0hJd4Xv3ZmhIycVxxOvZtQ2wI3T3LJfgMDcZo+LTTYhHcIyoN nlbqQH2l2PNZa0zI2n0iuxDQFRc+Q6uegjq6wkSrRB0pe9mMOlwYTaOOtD1GYT/4Kuk7 0owCN+XPwTe35paDkpqGeCm+GfrlspTTZ4Ma79+r/ZdXfDZ8FzZS8/xUtyzX6+2JyBgG fBpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781954684; x=1782559484; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=pZcfd73nPaHUydQ+nWaejIvMQmSY6fkMS/GT1DNnVqY=; b=gOqGR+36Gpsy2cIkfqQg9DCH9vFypwtJs+R/zn8xiTWHfJyEyHEY+iryHFobgW34Fg K7YGERuf/3aYfSirwi4EqtLRWHYvcrdneDIxdMi4b/T7UzYF1rb155JCKElf36sGOP2d KMuay48fRO+E20o0iSk+nXb2RYOdbUkxbHqFFHGn4qM0VItReeKcwjuk1E2YSjgwLDLA R6L8q88UC0VLjt51fciRtLi9/8U3KtFwSZ99+mT3wIrfqEislAhIEb8exAYUPWzJS8kO akt3AP1GIp/eW9qonsihiKrYcI+S4xrF5X28Q2YUQmbp6yPk01wCBqBn5DODGFpSIJwo GV0Q== X-Gm-Message-State: AOJu0YwO8D2XXnGykDw7O7wUp//cNK3E45dl4x2e5/r9KPyCdC9KqYI4 glcZSsJtRpRUPfXfjCZi7knH7Vrf5L5fihPlSSDGcztCLw+whjv6SBXQhr+4ngKL X-Gm-Gg: AfdE7cmw2unhWDVtd1LQbtxxirF0cdMQkvFxfalyt7zz4+MvwnNVy5ytHwx8nDaVsM8 90ptn7PMdy/aoFagx1yZz9PWXMvqcVqOBQveHBuEnSnAWrnGpz1OqcvwXj1dOLHLDUZiEm4AOfi JaYcKAWqkQITFBKp8U9MqYZGksgZRwR8EqlxAUdX7//hpb1invlVSIQIBGSNmeGlicgCNDFJeu/ ZXc8RaHTlEBNkXfckKNef9TSUTtdVEGBDtgYFHws26EgAhux7pI74lQglZidHUxwYmZx1UVeFmk 1HYahN4IK/z+ANlM2cM7Uf+gnv4sMt21DmwGbkBZ3UtbD0hjSVsA6/Nh0ai9rkLeDpNs9GNiyfz 3fqemncacGEV9j578ogEcWclx+XAhx+LfbBazHCx2iTLmQnsgtK7ckdNxzOQ5BzkmD6CfKk6Uaw UPZnszxvRgaxz8ToxOIsE8CdOA X-Received: by 2002:a17:903:380d:b0:2bf:22ac:a7d8 with SMTP id d9443c01a7336-2c71950314dmr53864115ad.5.1781954684120; Sat, 20 Jun 2026 04:24:44 -0700 (PDT) Received: from Modern-15.. ([2401:4900:3c7d:6ca9:919a:30ca:483e:1afb]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c7439f8535sm21187215ad.38.2026.06.20.04.24.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 20 Jun 2026 04:24:43 -0700 (PDT) From: Mathura_Kumar To: criu@lists.linux.dev Cc: academic1mathura@gmail.com, avagin@gmail.com, ptikhomirov@virtuozzo.com Subject: [PATCH v3 0/4] Add two new system call mq_recvmmsg() and mq_sendmmsg() to posix ipc mqueue Date: Sat, 20 Jun 2026 16:53:55 +0530 Message-ID: <20260620112403.21792-1-academic1mathura@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: criu@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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/20260320052340.6696-1-academic1mathura@gmail.com/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