From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) (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 68C2523BCED for ; Sat, 20 Jun 2026 22:36:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.178 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781995010; cv=none; b=TbEXpgLbqeu46YRE66drRZLVmb2TNDBl7ke6fBUWBjeTvIRlNs6KMCGA7kssOdS8iHcHDmA7EqbedJXxRgbZQv6Gft6BdBPVCJU+m6yOwVQ+T56qM3TJT//d/ACvDtEtFQEoSXcKTWoxKM25VU3H5f332CslSLLB/Ab9M+bU8Ns= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781995010; c=relaxed/simple; bh=graKAEGuIW+jviXSpJ7yLmygoYEjwwNTNNfvF1iYIZo=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=M6/SCRGMHQJQYcqYNcGM/dOEzBDAPhpqAMmEdqbMHpfFCRPpRl/72B1M7OBAKdtc+ed86O/EdL6TmPTUfcESakSN2QmJXq4XdCzAROPHAp3WjKvJaywqVhOtLl887YNQ66heB0A6YYCOF7lRbFkbUSvchbQQTi1FC4jQxSZl0fM= 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=H2nppw61; arc=none smtp.client-ip=209.85.210.178 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="H2nppw61" Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-84531988438so1911723b3a.0 for ; Sat, 20 Jun 2026 15:36:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781995008; x=1782599808; 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=L+g2fuETiczDxB3EUq6W8WmYBJwV5GSkuP76doubtR4=; b=H2nppw61dE5Lzt1scBVjWfJReu/f9oxR43Ad96xTgISddPH+Rf2u83PypnAVr3fOMs NCEjg65C7A3aSr3rPgfMjYY4YrAFPzWGPCp4AXuKZ/Ex2X2jqVy7W7r5/jwn6qaIOB9c f17dzd4wbmOQdIazQM0YVGyrvNbrx9Q7GxMhpAaBsrCSe8+A8/u5mZYnChIBZ76ySJ0T XkfmP/12DaX8W3e5zz9/aY89+cvs0DKQ8CETf6zETRBKDpaAv7LDcVIoCYvmBwo8BOY9 m9Q2q0GM3J4IHMLsO/njW4dBTIsALWgV79GGLHlrYTmiovJ5owtUIHoqNYCXM4mk4h3e dnoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781995008; x=1782599808; 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=L+g2fuETiczDxB3EUq6W8WmYBJwV5GSkuP76doubtR4=; b=T+R/j/UuIfRs5KrKN6T+q86K0O1AU1EDO4hkQHH91xTNRIQ8ZBF7luhdIJWiGeJsck 2eya9Rr3+Qd6ZSSbhYn6WlaeC2Ay4smlyxQsNwhgOO+ZK0fZctBdy+j8ozx06f9qIkHz mhhmS28c4pse6BC3FAxxrB31C5VPOIUoQbbBfbtQFM/5GD5oY14EDwxrM42V4Z7WTZiA Col6nczcxT2sI+2OfqOEEFnOOJyvknPUQZ7aTNsdaDlbA2JHBYcR2zEAQiDHFZ2+bVre 1ISF5FkVJNtDJ+Pbnuqs34DDWcsYKY+eTq9wizNBsTFQda61kpOOE4IHCQp/FJDeVwnF TKXw== X-Gm-Message-State: AOJu0YzljeuZXvAh6u5LK/CrZ2aZouQpcOTIJi0DMv33b4HZ4OZjj5uo jbNBbtydaLDpfcNkr6RsnYxP+4BXO6/zFs+NDt7zARGd12nBrGEM4p4+k7qTQU4m X-Gm-Gg: AfdE7ckgEcFmYh+9GNDhJFunXisniM3m2s0HInCf8MTUmbOfKY8EwK/n0+KVitUrjGc /z0sWa+cbB2RndCFAw2ctw9xd7T3WnfqqeF56H7UNpYgmkOHJGrRNituDKtEZ98c+F8/osVJL0z +lYOCj40cjs4rhVqKZw1/ThoOxfEURAp6EIQx4JB+myr4hFnXr+NIlk7rJZ4msv1/SgML11JDqL QjhvgHmeBP/2mXsBIioNdQ6RdnKAUkpVvlWlBrwvRGgkYrQ+qJjj34ePVmBHNtwjZLVRBybuVcO hOGyAGJVcV57L2eagJYmnfZXoaLJz9I8tfzBrF2a5wHXK4c24yutgnM4gd5izalvooLMU6m+ydp x3cQmEo0CMl0fDvbQBQtGLJ/CHNrlpWRTgpJXyLU6ypM8iFRr2ECfcBKBjkgvPvpMxXrMjuDBik DFE+7ublfD0XHVTBrtuPzO X-Received: by 2002:a05:6a00:853:b0:82c:7420:82bf with SMTP id d2e1a72fcca58-845502f140emr8610192b3a.19.1781995008534; Sat, 20 Jun 2026 15:36:48 -0700 (PDT) Received: from Modern-15.. ([2401:4900:3c92:303:ed:9072:ba03:263d]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84564e74646sm3017590b3a.29.2026.06.20.15.36.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 20 Jun 2026 15:36:48 -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: Sun, 21 Jun 2026 04:06:13 +0530 Message-ID: <20260620223619.380502-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 - arguments mismatch in asmlinkages fixed - copy_msg helper updated to be more safe for len arguments - 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 | 564 +++++++++++++++++- 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 | 391 ++++++++++++ tools/testing/selftests/ipc/mq_sendmmsg.c | 360 +++++++++++ 46 files changed, 1818 insertions(+), 67 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