public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (syscall groups) from strace sources
@ 2023-02-24 23:26 Pedro Alves
  2023-02-24 23:26 ` [PATCH 1/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (groups) " Pedro Alves
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Pedro Alves @ 2023-02-24 23:26 UTC (permalink / raw)
  To: gdb-patches

While working on the step-over-thread-clone/exit series, I noticed
that one of the new tests was failing.  The test does "catch syscall
clone", and expects that pthread_create calls clone.  Turns out that
on the glibc shipped with Ubuntu 22.04, pthread_create calls clone3,
not clone.  To make the test cope with that, I thought of switching it
to "catch syscall group:process".  Surprisingly, that catches "clone",
but not "clone3".

This series fixes that, by adding a script that extracts the syscall
group info out the strace sources.

Pedro Alves (2):
  Autogenerate gdb/syscalls/linux-defaults.xml.in (groups) from strace
    sources
  Regenerate Linux syscall group info

 gdb/syscalls/aarch64-linux.xml        |  26 +-
 gdb/syscalls/amd64-linux.xml          | 106 ++---
 gdb/syscalls/arm-linux.xml            |  26 +-
 gdb/syscalls/bfin-linux.xml           |  26 +-
 gdb/syscalls/i386-linux.xml           | 124 +++---
 gdb/syscalls/linux-defaults.xml.in    | 545 ++++++++++++++++----------
 gdb/syscalls/mips-n32-linux.xml       | 122 +++---
 gdb/syscalls/mips-n64-linux.xml       | 100 ++---
 gdb/syscalls/mips-o32-linux.xml       | 122 +++---
 gdb/syscalls/ppc-linux.xml            | 124 +++---
 gdb/syscalls/ppc64-linux.xml          | 104 ++---
 gdb/syscalls/s390-linux.xml           | 122 +++---
 gdb/syscalls/s390x-linux.xml          | 102 ++---
 gdb/syscalls/sparc-linux.xml          | 114 +++---
 gdb/syscalls/sparc64-linux.xml        |  94 ++---
 gdb/syscalls/update-linux-defaults.sh |  95 +++++
 16 files changed, 1096 insertions(+), 856 deletions(-)
 create mode 100755 gdb/syscalls/update-linux-defaults.sh


base-commit: 2e977d9901393ea1bacbe1896af0929e968bc811
-- 
2.36.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (groups) from strace sources
  2023-02-24 23:26 [PATCH 0/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (syscall groups) from strace sources Pedro Alves
@ 2023-02-24 23:26 ` Pedro Alves
  2023-02-25  3:00   ` Simon Marchi
  2023-02-24 23:26 ` [PATCH 2/2] Regenerate Linux syscall group info Pedro Alves
  2023-02-25  9:31 ` [PATCH 0/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (syscall groups) from strace sources Tom de Vries
  2 siblings, 1 reply; 7+ messages in thread
From: Pedro Alves @ 2023-02-24 23:26 UTC (permalink / raw)
  To: gdb-patches

I noticed that "catch syscall group:process" doesn't catch clone3,
while it does catch clone.

The catch syscall group information is recorded in the
gdb/syscalls/linux-defaults.xml.in file, which says:

  <!-- The group field information was based on strace.  -->

So I looked at the strace sources, to confirm that clone3 is in fact
recorded in the "process" group there too, and to check what other
syscalls might be missing groups.

After some digging, I found that strace records the group info in C
arrays, with entries like:
...
[ 61] = { 4,	TP,		SEN(wait4),			"wait4"			},
[ 62] = { 2,	TS|TP,		SEN(kill),			"kill"			},
[ 63] = { 1,	0,		SEN(uname),			"uname"			},
...

You can see the current master's table for Linux x86-64 here:

  https://github.com/strace/strace/blob/e88e5e9ae6da68f22d15f9be3193b1412ac9aa02/src/linux/x86_64/syscallent.h

The column with TS|TP above is what defines each syscall's groups.  So
I wrote a script that extracts this information and generates
linux-defaults.xml.in.

Change-Id: I679d59d42fb2a914bf7a99e4c558e9696e5adff1
---
 gdb/syscalls/update-linux-defaults.sh | 95 +++++++++++++++++++++++++++
 1 file changed, 95 insertions(+)
 create mode 100755 gdb/syscalls/update-linux-defaults.sh

diff --git a/gdb/syscalls/update-linux-defaults.sh b/gdb/syscalls/update-linux-defaults.sh
new file mode 100755
index 00000000000..2c001aa3b8a
--- /dev/null
+++ b/gdb/syscalls/update-linux-defaults.sh
@@ -0,0 +1,95 @@
+#!/bin/sh
+
+# Copyright (C) 2023 Free Software Foundation, Inc.
+#
+# This file is part of GDB.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Used to generate linux-defaults.xml.in, like so:
+# $ ./update-linux-defaults.sh ~/strace.git
+
+if [ $# -lt 1 ]; then
+    echo "dir argument needed"
+    exit 1
+fi
+
+d="$1"
+shift
+
+if [ ! -d "$d" ]; then
+    echo "cannot find $d"
+    exit 1
+fi
+
+pre ()
+{
+    f="$1"
+
+    year=$(date +%Y)
+
+    cat <<EOF
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009-$year Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!-- This file was generated using the sources from strace.  -->
+EOF
+
+    echo '<syscalls_defaults>'
+}
+
+
+post ()
+{
+    echo '</syscalls_defaults>'
+}
+
+generate ()
+{
+    f="$1"
+
+    pre "$f"
+
+    grep -rn -E "T[A-Z][,|]" "$d/src/linux/" \
+	| sed -e 's/\(T[A-Z][,|].*\)/\x03&/' -e 's/.*\x03//' \
+	      -e 's/,[ \t]*SEN[ \t]*(/, SEN(/g' \
+	| grep ", SEN(" \
+	| sed -e 's/\(.*\"\).*/\1/g' \
+	      -e 's/#64\"/\"/g' \
+	| awk '{print $3 " " $1}' \
+	| sort -u \
+	| sed -e 's/|/,/g' \
+	      -e 's/TD,/descriptor,/g' \
+	      -e 's/TF,/file,/g' \
+	      -e 's/TI,/ipc,/g' \
+	      -e 's/TM,/memory,/g' \
+	      -e 's/TN,/network,/g' \
+	      -e 's/TP,/process,/g' \
+	      -e 's/TS,/signal,/g' \
+	      -e 's/[A-Z]\+,//g' \
+	| grep -v '" $' \
+	| sed 's/,$//g' \
+	| awk "{printf \"  <syscall name=%s groups=\\\"%s\\\"/>\n\", \$1, \$2}"
+
+    post
+}
+
+f=linux-defaults.xml.in
+
+echo "Generating $f"
+generate "$t" > "$f"
-- 
2.36.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 2/2] Regenerate Linux syscall group info
  2023-02-24 23:26 [PATCH 0/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (syscall groups) from strace sources Pedro Alves
  2023-02-24 23:26 ` [PATCH 1/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (groups) " Pedro Alves
@ 2023-02-24 23:26 ` Pedro Alves
  2023-02-25  9:31 ` [PATCH 0/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (syscall groups) from strace sources Tom de Vries
  2 siblings, 0 replies; 7+ messages in thread
From: Pedro Alves @ 2023-02-24 23:26 UTC (permalink / raw)
  To: gdb-patches

This commit makes use of the new script to regenerate the Linux
syscall group info against strace git hash
e88e5e9ae6da68f22d15f9be3193b1412ac9aa02.

Like so:

 $ cd gdb/syscalls/
 $ ./update-linux-defaults.sh ~/strace.git/
 Generating linux-defaults.xml.in
 $ make
 for f in aarch64-linux.xml amd64-linux.xml arm-linux.xml bfin-linux.xml \
          i386-linux.xml mips-n32-linux.xml mips-n64-linux.xml \
	  mips-o32-linux.xml ppc64-linux.xml ppc-linux.xml s390-linux.xml \
	  s390x-linux.xml sparc64-linux.xml sparc-linux.xml; do \
   xsltproc --output $f apply-defaults.xsl $f.in; \
 done

The result is that a lot more syscalls end up assigned to groups.
Some lose their group info, but that just mirrors what strace does.

The gdb/syscalls/linux-defaults.xml.in file shows a large diff because
the new version is ASCII sorted, while the current version was
somewhat (but not consistently) sorted by "family" of syscalls.

If I sort the old file and diff against the new, the difference is
like this:

     <syscall name="accept4" groups="network"/>
     <syscall name="accept" groups="network"/>
     <syscall name="access" groups="file"/>
     <syscall name="acct" groups="file"/>
  -  <syscall name="arch_prctl" groups="process"/>
     <syscall name="bind" groups="network"/>
  +  <syscall name="bpf" groups="descriptor"/>
     <syscall name="break" groups="memory"/>
     <syscall name="brk" groups="memory"/>
  +  <syscall name="bsd43_fstatfs" groups="descriptor"/>
  +  <syscall name="bsd43_fstat" groups="descriptor"/>
  +  <syscall name="bsd43_killpg" groups="process"/>
  +  <syscall name="bsd43_kill" groups="process"/>
  +  <syscall name="bsd43_lstat" groups="file"/>
  +  <syscall name="bsd43_madvise" groups="memory"/>
  +  <syscall name="bsd43_mincore" groups="memory"/>
  +  <syscall name="bsd43_mmap" groups="descriptor,memory"/>
  +  <syscall name="bsd43_mprotect" groups="memory"/>
  +  <syscall name="bsd43_mremap" groups="memory"/>
  +  <syscall name="bsd43_munmap" groups="memory"/>
  +  <syscall name="bsd43_oldfstat" groups="descriptor"/>
  +  <syscall name="bsd43_oldstat" groups="file"/>
  +  <syscall name="bsd43_quotactl" groups="file"/>
  +  <syscall name="bsd43_sbreak" groups="memory"/>
  +  <syscall name="bsd43_sbrk" groups="memory"/>
  +  <syscall name="bsd43_statfs" groups="file"/>
  +  <syscall name="bsd43_stat" groups="file"/>
  +  <syscall name="cacheflush" groups="memory"/>
     <syscall name="chdir" groups="file"/>
     <syscall name="chmod" groups="file"/>
     <syscall name="chown32" groups="file"/>
     <syscall name="chown" groups="file"/>
     <syscall name="chroot" groups="file"/>
  +  <syscall name="clone2" groups="process"/>
  +  <syscall name="clone3" groups="process"/>
     <syscall name="clone" groups="process"/>
     <syscall name="close" groups="descriptor"/>
     <syscall name="connect" groups="network"/>
  +  <syscall name="copy_file_range" groups="descriptor"/>
     <syscall name="creat" groups="descriptor,file"/>
     <syscall name="dup2" groups="descriptor"/>
     <syscall name="dup3" groups="descriptor"/>
  @@ -28,14 +52,17 @@
     <syscall name="epoll_create1" groups="descriptor"/>
     <syscall name="epoll_create" groups="descriptor"/>
     <syscall name="epoll_ctl" groups="descriptor"/>
  +  <syscall name="epoll_pwait2" groups="descriptor"/>
     <syscall name="epoll_pwait" groups="descriptor"/>
     <syscall name="epoll_wait" groups="descriptor"/>
     <syscall name="eventfd2" groups="descriptor"/>
     <syscall name="eventfd" groups="descriptor"/>
  +  <syscall name="execveat" groups="descriptor,file,process"/>
     <syscall name="execve" groups="file,process"/>
     <syscall name="execv" groups="file,process"/>
     <syscall name="exit_group" groups="process"/>
     <syscall name="exit" groups="process"/>
  +  <syscall name="faccessat2" groups="descriptor,file"/>
     <syscall name="faccessat" groups="descriptor,file"/>
     <syscall name="fadvise64_64" groups="descriptor"/>
     <syscall name="fadvise64" groups="descriptor"/>
  @@ -57,7 +84,11 @@
     <syscall name="flock" groups="descriptor"/>
     <syscall name="fork" groups="process"/>
     <syscall name="fremovexattr" groups="descriptor"/>
  +  <syscall name="fsconfig" groups="descriptor,file"/>
     <syscall name="fsetxattr" groups="descriptor"/>
  +  <syscall name="fsmount" groups="descriptor"/>
  +  <syscall name="fsopen" groups="descriptor"/>
  +  <syscall name="fspick" groups="descriptor,file"/>
     <syscall name="fstat64" groups="descriptor"/>
     <syscall name="fstatat64" groups="descriptor,file"/>
     <syscall name="fstatfs64" groups="descriptor"/>
  @@ -72,16 +103,26 @@
     <syscall name="getdents" groups="descriptor"/>
     <syscall name="get_mempolicy" groups="memory"/>
     <syscall name="getpeername" groups="network"/>
  +  <syscall name="getpmsg" groups="network"/>
     <syscall name="getsockname" groups="network"/>
     <syscall name="getsockopt" groups="network"/>
     <syscall name="getxattr" groups="file"/>
  -  <syscall name="inotify_add_watch" groups="descriptor"/>
  +  <syscall name="inotify_add_watch" groups="descriptor,file"/>
     <syscall name="inotify_init1" groups="descriptor"/>
     <syscall name="inotify_init" groups="descriptor"/>
     <syscall name="inotify_rm_watch" groups="descriptor"/>
     <syscall name="ioctl" groups="descriptor"/>
  +  <syscall name="io_destroy" groups="memory"/>
  +  <syscall name="io_setup" groups="memory"/>
  +  <syscall name="io_uring_enter" groups="descriptor,signal"/>
  +  <syscall name="io_uring_register" groups="descriptor,memory"/>
  +  <syscall name="io_uring_setup" groups="descriptor"/>
     <syscall name="ipc" groups="ipc"/>
  -  <syscall name="kill" groups="signal"/>
  +  <syscall name="kexec_file_load" groups="descriptor"/>
  +  <syscall name="kill" groups="signal,process"/>
  +  <syscall name="landlock_add_rule" groups="descriptor"/>
  +  <syscall name="landlock_create_ruleset" groups="descriptor"/>
  +  <syscall name="landlock_restrict_self" groups="descriptor"/>
     <syscall name="lchown32" groups="file"/>
     <syscall name="lchown" groups="file"/>
     <syscall name="lgetxattr" groups="file"/>
  @@ -98,19 +139,31 @@
     <syscall name="lstat" groups="file"/>
     <syscall name="madvise" groups="memory"/>
     <syscall name="mbind" groups="memory"/>
  +  <syscall name="memfd_create" groups="descriptor"/>
  +  <syscall name="memfd_secret" groups="descriptor"/>
     <syscall name="migrate_pages" groups="memory"/>
     <syscall name="mincore" groups="memory"/>
     <syscall name="mkdirat" groups="descriptor,file"/>
     <syscall name="mkdir" groups="file"/>
     <syscall name="mknodat" groups="descriptor,file"/>
     <syscall name="mknod" groups="file"/>
  +  <syscall name="mlock2" groups="memory"/>
     <syscall name="mlockall" groups="memory"/>
     <syscall name="mlock" groups="memory"/>
     <syscall name="mmap2" groups="descriptor,memory"/>
     <syscall name="mmap" groups="descriptor,memory"/>
  +  <syscall name="mount_setattr" groups="descriptor,file"/>
     <syscall name="mount" groups="file"/>
  +  <syscall name="move_mount" groups="descriptor,file"/>
     <syscall name="move_pages" groups="memory"/>
     <syscall name="mprotect" groups="memory"/>
  +  <syscall name="mq_getsetattr" groups="descriptor"/>
  +  <syscall name="mq_notify" groups="descriptor"/>
  +  <syscall name="mq_open" groups="descriptor"/>
  +  <syscall name="mq_timedreceive" groups="descriptor"/>
  +  <syscall name="mq_timedreceive_time64" groups="descriptor"/>
  +  <syscall name="mq_timedsend" groups="descriptor"/>
  +  <syscall name="mq_timedsend_time64" groups="descriptor"/>
     <syscall name="mremap" groups="memory"/>
     <syscall name="msgctl" groups="ipc"/>
     <syscall name="msgget" groups="ipc"/>
  @@ -126,45 +179,98 @@
     <syscall name="oldfstat" groups="descriptor"/>
     <syscall name="oldlstat" groups="file"/>
     <syscall name="oldstat" groups="file"/>
  +  <syscall name="oldumount" groups="file"/>
  +  <syscall name="openat2" groups="descriptor,file"/>
     <syscall name="openat" groups="descriptor,file"/>
     <syscall name="open_by_handle_at" groups="descriptor"/>
     <syscall name="open" groups="descriptor,file"/>
  +  <syscall name="open_tree" groups="descriptor,file"/>
  +  <syscall name="osf_fstatfs64" groups="descriptor"/>
  +  <syscall name="osf_fstatfs" groups="descriptor"/>
  +  <syscall name="osf_fstat" groups="descriptor"/>
  +  <syscall name="osf_lstat" groups="file"/>
  +  <syscall name="osf_mincore" groups="memory"/>
  +  <syscall name="osf_mremap" groups="memory"/>
  +  <syscall name="osf_old_fstat" groups="descriptor"/>
  +  <syscall name="osf_old_killpg" groups="process"/>
  +  <syscall name="osf_old_lstat" groups="file"/>
  +  <syscall name="osf_old_stat" groups="file"/>
  +  <syscall name="osf_sbrk" groups="memory"/>
  +  <syscall name="osf_select" groups="descriptor"/>
  +  <syscall name="osf_shmat" groups="ipc,memory"/>
  +  <syscall name="osf_sigprocmask" groups="signal"/>
  +  <syscall name="osf_statfs64" groups="file"/>
  +  <syscall name="osf_statfs" groups="file"/>
  +  <syscall name="osf_stat" groups="file"/>
  +  <syscall name="osf_utimes" groups="file"/>
  +  <syscall name="osf_wait4" groups="process"/>
     <syscall name="pause" groups="signal"/>
     <syscall name="perf_event_open" groups="descriptor"/>
  +  <syscall name="pidfd_getfd" groups="descriptor"/>
  +  <syscall name="pidfd_open" groups="descriptor"/>
  +  <syscall name="pidfd_send_signal" groups="descriptor,signal,process"/>
     <syscall name="pipe2" groups="descriptor"/>
     <syscall name="pipe" groups="descriptor"/>
     <syscall name="pivot_root" groups="file"/>
  +  <syscall name="pkey_mprotect" groups="memory"/>
     <syscall name="poll" groups="descriptor"/>
  +  <syscall name="posix_fstatfs" groups="descriptor"/>
  +  <syscall name="posix_fstat" groups="descriptor"/>
  +  <syscall name="posix_kill" groups="process"/>
  +  <syscall name="posix_lstat" groups="file"/>
  +  <syscall name="posix_madvise" groups="memory"/>
  +  <syscall name="posix_mmap" groups="descriptor,memory"/>
  +  <syscall name="posix_munmap" groups="memory"/>
  +  <syscall name="posix_sbreak" groups="memory"/>
  +  <syscall name="posix_SGI_madvise" groups="memory"/>
  +  <syscall name="posix_SGI_mmap" groups="descriptor,memory"/>
  +  <syscall name="posix_SGI_mprotect" groups="memory"/>
  +  <syscall name="posix_SGI_msync" groups="memory"/>
  +  <syscall name="posix_SGI_munmap" groups="memory"/>
  +  <syscall name="posix_statfs" groups="file"/>
  +  <syscall name="posix_stat" groups="file"/>
     <syscall name="ppoll" groups="descriptor"/>
  +  <syscall name="ppoll_time64" groups="descriptor"/>
     <syscall name="pread64" groups="descriptor"/>
     <syscall name="pread" groups="descriptor"/>
  +  <syscall name="preadv2" groups="descriptor"/>
     <syscall name="preadv" groups="descriptor"/>
  +  <syscall name="process_madvise" groups="descriptor"/>
  +  <syscall name="process_mrelease" groups="descriptor"/>
     <syscall name="pselect6" groups="descriptor"/>
  +  <syscall name="pselect6_time64" groups="descriptor"/>
  +  <syscall name="putpmsg" groups="network"/>
     <syscall name="pwrite64" groups="descriptor"/>
     <syscall name="pwrite" groups="descriptor"/>
  +  <syscall name="pwritev2" groups="descriptor"/>
     <syscall name="pwritev" groups="descriptor"/>
  +  <syscall name="quotactl_fd" groups="descriptor"/>
     <syscall name="quotactl" groups="file"/>
     <syscall name="readahead" groups="descriptor"/>
     <syscall name="readdir" groups="descriptor"/>
  -  <syscall name="read" groups="descriptor"/>
     <syscall name="readlinkat" groups="descriptor,file"/>
     <syscall name="readlink" groups="file"/>
  +  <syscall name="read" groups="descriptor"/>
     <syscall name="readv" groups="descriptor"/>
     <syscall name="recvfrom" groups="network"/>
  -  <syscall name="recv" groups="network"/>
  +  <syscall name="recvmmsg_time64" groups="network"/>
     <syscall name="recvmmsg" groups="network"/>
     <syscall name="recvmsg" groups="network"/>
  +  <syscall name="recv" groups="network"/>
     <syscall name="remap_file_pages" groups="memory"/>
     <syscall name="removexattr" groups="file"/>
  +  <syscall name="renameat2" groups="descriptor,file"/>
     <syscall name="renameat" groups="descriptor,file"/>
     <syscall name="rename" groups="file"/>
  +  <syscall name="riscv_flush_icache" groups="memory"/>
     <syscall name="rmdir" groups="file"/>
     <syscall name="rt_sigaction" groups="signal"/>
     <syscall name="rt_sigpending" groups="signal"/>
     <syscall name="rt_sigprocmask" groups="signal"/>
  -  <syscall name="rt_sigqueueinfo" groups="signal"/>
  +  <syscall name="rt_sigqueueinfo" groups="signal,process"/>
     <syscall name="rt_sigreturn" groups="signal"/>
     <syscall name="rt_sigsuspend" groups="signal"/>
  +  <syscall name="rt_sigtimedwait_time64" groups="signal"/>
     <syscall name="rt_sigtimedwait" groups="signal"/>
     <syscall name="rt_tgsigqueueinfo" groups="process,signal"/>
     <syscall name="select" groups="descriptor"/>
  @@ -172,12 +278,14 @@
     <syscall name="semget" groups="ipc"/>
     <syscall name="semop" groups="ipc"/>
     <syscall name="semtimedop" groups="ipc"/>
  +  <syscall name="semtimedop_time64" groups="ipc"/>
     <syscall name="sendfile64" groups="descriptor,network"/>
     <syscall name="sendfile" groups="descriptor,network"/>
  -  <syscall name="send" groups="network"/>
     <syscall name="sendmmsg" groups="network"/>
     <syscall name="sendmsg" groups="network"/>
  +  <syscall name="send" groups="network"/>
     <syscall name="sendto" groups="network"/>
  +  <syscall name="set_mempolicy_home_node" groups="memory"/>
     <syscall name="set_mempolicy" groups="memory"/>
     <syscall name="setns" groups="descriptor"/>
     <syscall name="setsockopt" groups="network"/>
  @@ -198,38 +306,78 @@
     <syscall name="sigreturn" groups="signal"/>
     <syscall name="sigsuspend" groups="signal"/>
     <syscall name="socketcall" groups="descriptor"/>
  -  <syscall name="socket" groups="network"/>
     <syscall name="socketpair" groups="network"/>
  +  <syscall name="socket" groups="network"/>
     <syscall name="splice" groups="descriptor"/>
     <syscall name="ssetmask" groups="signal"/>
     <syscall name="stat64" groups="file"/>
     <syscall name="statfs64" groups="file"/>
     <syscall name="statfs" groups="file"/>
     <syscall name="stat" groups="file"/>
  +  <syscall name="statx" groups="descriptor,file"/>
  +  <syscall name="svr4_fstatfs" groups="descriptor"/>
  +  <syscall name="svr4_fstat" groups="descriptor"/>
  +  <syscall name="svr4_fstatvfs" groups="descriptor"/>
  +  <syscall name="svr4_fxstat" groups="descriptor"/>
  +  <syscall name="svr4_kill" groups="process"/>
  +  <syscall name="svr4_lstat" groups="file"/>
  +  <syscall name="svr4_lxstat" groups="file"/>
  +  <syscall name="svr4_mincore" groups="memory"/>
  +  <syscall name="svr4_mmap" groups="descriptor,memory"/>
  +  <syscall name="svr4_mprotect" groups="memory"/>
  +  <syscall name="svr4_munmap" groups="memory"/>
  +  <syscall name="svr4_sbreak" groups="memory"/>
  +  <syscall name="svr4_statfs" groups="file"/>
  +  <syscall name="svr4_stat" groups="file"/>
  +  <syscall name="svr4_statvfs" groups="file"/>
  +  <syscall name="svr4_xstat" groups="file"/>
     <syscall name="swapoff" groups="file"/>
     <syscall name="swapon" groups="file"/>
     <syscall name="symlinkat" groups="descriptor,file"/>
     <syscall name="symlink" groups="file"/>
  +  <syscall name="sync_file_range2" groups="descriptor"/>
     <syscall name="sync_file_range" groups="descriptor"/>
     <syscall name="syncfs" groups="descriptor"/>
  +  <syscall name="sysv_brk" groups="memory"/>
  +  <syscall name="sysv_fstatfs" groups="descriptor"/>
  +  <syscall name="sysv_fstat" groups="descriptor"/>
  +  <syscall name="sysv_fstatvfs" groups="descriptor"/>
  +  <syscall name="sysv_fxstat" groups="descriptor"/>
  +  <syscall name="sysv_kill" groups="process"/>
  +  <syscall name="sysv_lstat" groups="file"/>
  +  <syscall name="sysv_lxstat" groups="file"/>
  +  <syscall name="sysv_madvise" groups="memory"/>
  +  <syscall name="sysv_mmap64" groups="descriptor,memory"/>
  +  <syscall name="sysv_mmap" groups="descriptor,memory"/>
  +  <syscall name="sysv_mprotect" groups="memory"/>
  +  <syscall name="sysv_msync" groups="memory"/>
  +  <syscall name="sysv_munmap" groups="memory"/>
  +  <syscall name="sysv_quotactl" groups="file"/>
  +  <syscall name="sysv_statfs" groups="file"/>
  +  <syscall name="sysv_stat" groups="file"/>
  +  <syscall name="sysv_statvfs" groups="file"/>
  +  <syscall name="sysv_xstat" groups="file"/>
     <syscall name="tee" groups="descriptor"/>
  -  <syscall name="tgkill" groups="signal"/>
  +  <syscall name="tgkill" groups="signal,process"/>
     <syscall name="timerfd_create" groups="descriptor"/>
  +  <syscall name="timerfd_gettime64" groups="descriptor"/>
     <syscall name="timerfd_gettime" groups="descriptor"/>
  -  <syscall name="timerfd" groups="descriptor"/>
  +  <syscall name="timerfd_settime64" groups="descriptor"/>
     <syscall name="timerfd_settime" groups="descriptor"/>
  -  <syscall name="tkill" groups="signal"/>
  +  <syscall name="timerfd" groups="descriptor"/>
  +  <syscall name="tkill" groups="signal,process"/>
     <syscall name="truncate64" groups="file"/>
     <syscall name="truncate" groups="file"/>
     <syscall name="umount2" groups="file"/>
     <syscall name="umount" groups="file"/>
     <syscall name="unlinkat" groups="descriptor,file"/>
     <syscall name="unlink" groups="file"/>
  -  <syscall name="unshare" groups="process"/>
     <syscall name="uselib" groups="file"/>
  -  <syscall name="utime" groups="file"/>
  +  <syscall name="userfaultfd" groups="descriptor"/>
     <syscall name="utimensat" groups="descriptor,file"/>
  +  <syscall name="utimensat_time64" groups="descriptor,file"/>
     <syscall name="utimes" groups="file"/>
  +  <syscall name="utime" groups="file"/>
     <syscall name="vfork" groups="process"/>
     <syscall name="vmsplice" groups="descriptor"/>
     <syscall name="wait4" groups="process"/>

Change-Id: I679d59d42fb2a914bf7a99e4c558e9696e5adff1
---
 gdb/syscalls/aarch64-linux.xml     |  26 +-
 gdb/syscalls/amd64-linux.xml       | 106 +++---
 gdb/syscalls/arm-linux.xml         |  26 +-
 gdb/syscalls/bfin-linux.xml        |  26 +-
 gdb/syscalls/i386-linux.xml        | 124 +++----
 gdb/syscalls/linux-defaults.xml.in | 545 ++++++++++++++++++-----------
 gdb/syscalls/mips-n32-linux.xml    | 122 +++----
 gdb/syscalls/mips-n64-linux.xml    | 100 +++---
 gdb/syscalls/mips-o32-linux.xml    | 122 +++----
 gdb/syscalls/ppc-linux.xml         | 124 +++----
 gdb/syscalls/ppc64-linux.xml       | 104 +++---
 gdb/syscalls/s390-linux.xml        | 122 +++----
 gdb/syscalls/s390x-linux.xml       | 102 +++---
 gdb/syscalls/sparc-linux.xml       | 114 +++---
 gdb/syscalls/sparc64-linux.xml     |  94 ++---
 15 files changed, 1001 insertions(+), 856 deletions(-)

diff --git a/gdb/syscalls/aarch64-linux.xml b/gdb/syscalls/aarch64-linux.xml
index e1cf14850fd..1daafaac814 100644
--- a/gdb/syscalls/aarch64-linux.xml
+++ b/gdb/syscalls/aarch64-linux.xml
@@ -7,8 +7,8 @@
      notice and this notice are preserved.  This file is offered as-is,
      without any warranty. -->
 <syscalls_info>
-  <syscall name="io_setup" number="0"/>
-  <syscall name="io_destroy" number="1"/>
+  <syscall name="io_setup" number="0" groups="memory"/>
+  <syscall name="io_destroy" number="1" groups="memory"/>
   <syscall name="io_submit" number="2"/>
   <syscall name="io_cancel" number="3"/>
   <syscall name="io_getevents" number="4"/>
@@ -34,7 +34,7 @@
   <syscall name="dup3" number="24" groups="descriptor"/>
   <syscall name="fcntl" number="25" groups="descriptor"/>
   <syscall name="inotify_init1" number="26" groups="descriptor"/>
-  <syscall name="inotify_add_watch" number="27" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="27" groups="descriptor,file"/>
   <syscall name="inotify_rm_watch" number="28" groups="descriptor"/>
   <syscall name="ioctl" number="29" groups="descriptor"/>
   <syscall name="ioprio_set" number="30"/>
@@ -104,7 +104,7 @@
   <syscall name="exit_group" number="94" groups="process"/>
   <syscall name="waitid" number="95" groups="process"/>
   <syscall name="set_tid_address" number="96"/>
-  <syscall name="unshare" number="97" groups="process"/>
+  <syscall name="unshare" number="97"/>
   <syscall name="futex" number="98"/>
   <syscall name="set_robust_list" number="99"/>
   <syscall name="get_robust_list" number="100"/>
@@ -136,16 +136,16 @@
   <syscall name="sched_get_priority_min" number="126"/>
   <syscall name="sched_rr_get_interval" number="127"/>
   <syscall name="restart_syscall" number="128"/>
-  <syscall name="kill" number="129" groups="signal"/>
-  <syscall name="tkill" number="130" groups="signal"/>
-  <syscall name="tgkill" number="131" groups="signal"/>
+  <syscall name="kill" number="129" groups="signal,process"/>
+  <syscall name="tkill" number="130" groups="signal,process"/>
+  <syscall name="tgkill" number="131" groups="signal,process"/>
   <syscall name="sigaltstack" number="132" groups="signal"/>
   <syscall name="rt_sigsuspend" number="133" groups="signal"/>
   <syscall name="rt_sigaction" number="134" groups="signal"/>
   <syscall name="rt_sigprocmask" number="135" groups="signal"/>
   <syscall name="rt_sigpending" number="136" groups="signal"/>
   <syscall name="rt_sigtimedwait" number="137" groups="signal"/>
-  <syscall name="rt_sigqueueinfo" number="138" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="138" groups="signal,process"/>
   <syscall name="rt_sigreturn" number="139" groups="signal"/>
   <syscall name="setpriority" number="140"/>
   <syscall name="getpriority" number="141"/>
@@ -187,12 +187,12 @@
   <syscall name="getegid" number="177"/>
   <syscall name="gettid" number="178"/>
   <syscall name="sysinfo" number="179"/>
-  <syscall name="mq_open" number="180"/>
+  <syscall name="mq_open" number="180" groups="descriptor"/>
   <syscall name="mq_unlink" number="181"/>
-  <syscall name="mq_timedsend" number="182"/>
-  <syscall name="mq_timedreceive" number="183"/>
-  <syscall name="mq_notify" number="184"/>
-  <syscall name="mq_getsetattr" number="185"/>
+  <syscall name="mq_timedsend" number="182" groups="descriptor"/>
+  <syscall name="mq_timedreceive" number="183" groups="descriptor"/>
+  <syscall name="mq_notify" number="184" groups="descriptor"/>
+  <syscall name="mq_getsetattr" number="185" groups="descriptor"/>
   <syscall name="msgget" number="186" groups="ipc"/>
   <syscall name="msgctl" number="187" groups="ipc"/>
   <syscall name="msgrcv" number="188" groups="ipc"/>
diff --git a/gdb/syscalls/amd64-linux.xml b/gdb/syscalls/amd64-linux.xml
index c0fba0f0073..445544ed3e5 100644
--- a/gdb/syscalls/amd64-linux.xml
+++ b/gdb/syscalls/amd64-linux.xml
@@ -73,7 +73,7 @@
   <syscall name="execve" number="59" groups="file,process"/>
   <syscall name="exit" number="60" groups="process"/>
   <syscall name="wait4" number="61" groups="process"/>
-  <syscall name="kill" number="62" groups="signal"/>
+  <syscall name="kill" number="62" groups="signal,process"/>
   <syscall name="uname" number="63"/>
   <syscall name="semget" number="64" groups="ipc"/>
   <syscall name="semop" number="65" groups="ipc"/>
@@ -140,7 +140,7 @@
   <syscall name="capset" number="126"/>
   <syscall name="rt_sigpending" number="127" groups="signal"/>
   <syscall name="rt_sigtimedwait" number="128" groups="signal"/>
-  <syscall name="rt_sigqueueinfo" number="129" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="129" groups="signal,process"/>
   <syscall name="rt_sigsuspend" number="130" groups="signal"/>
   <syscall name="sigaltstack" number="131" groups="signal"/>
   <syscall name="utime" number="132" groups="file"/>
@@ -169,7 +169,7 @@
   <syscall name="pivot_root" number="155" groups="file"/>
   <syscall name="_sysctl" number="156"/>
   <syscall name="prctl" number="157"/>
-  <syscall name="arch_prctl" number="158" groups="process"/>
+  <syscall name="arch_prctl" number="158"/>
   <syscall name="adjtimex" number="159"/>
   <syscall name="setrlimit" number="160"/>
   <syscall name="chroot" number="161" groups="file"/>
@@ -192,8 +192,8 @@
   <syscall name="query_module" number="178"/>
   <syscall name="quotactl" number="179" groups="file"/>
   <syscall name="nfsservctl" number="180"/>
-  <syscall name="getpmsg" number="181"/>
-  <syscall name="putpmsg" number="182"/>
+  <syscall name="getpmsg" number="181" groups="network"/>
+  <syscall name="putpmsg" number="182" groups="network"/>
   <syscall name="afs_syscall" number="183"/>
   <syscall name="tuxcall" number="184"/>
   <syscall name="security" number="185"/>
@@ -211,14 +211,14 @@
   <syscall name="removexattr" number="197" groups="file"/>
   <syscall name="lremovexattr" number="198" groups="file"/>
   <syscall name="fremovexattr" number="199" groups="descriptor"/>
-  <syscall name="tkill" number="200" groups="signal"/>
+  <syscall name="tkill" number="200" groups="signal,process"/>
   <syscall name="time" number="201"/>
   <syscall name="futex" number="202"/>
   <syscall name="sched_setaffinity" number="203"/>
   <syscall name="sched_getaffinity" number="204"/>
   <syscall name="set_thread_area" number="205"/>
-  <syscall name="io_setup" number="206"/>
-  <syscall name="io_destroy" number="207"/>
+  <syscall name="io_setup" number="206" groups="memory"/>
+  <syscall name="io_destroy" number="207" groups="memory"/>
   <syscall name="io_getevents" number="208"/>
   <syscall name="io_submit" number="209"/>
   <syscall name="io_cancel" number="210"/>
@@ -245,18 +245,18 @@
   <syscall name="exit_group" number="231" groups="process"/>
   <syscall name="epoll_wait" number="232" groups="descriptor"/>
   <syscall name="epoll_ctl" number="233" groups="descriptor"/>
-  <syscall name="tgkill" number="234" groups="signal"/>
+  <syscall name="tgkill" number="234" groups="signal,process"/>
   <syscall name="utimes" number="235" groups="file"/>
   <syscall name="vserver" number="236"/>
   <syscall name="mbind" number="237" groups="memory"/>
   <syscall name="set_mempolicy" number="238" groups="memory"/>
   <syscall name="get_mempolicy" number="239" groups="memory"/>
-  <syscall name="mq_open" number="240"/>
+  <syscall name="mq_open" number="240" groups="descriptor"/>
   <syscall name="mq_unlink" number="241"/>
-  <syscall name="mq_timedsend" number="242"/>
-  <syscall name="mq_timedreceive" number="243"/>
-  <syscall name="mq_notify" number="244"/>
-  <syscall name="mq_getsetattr" number="245"/>
+  <syscall name="mq_timedsend" number="242" groups="descriptor"/>
+  <syscall name="mq_timedreceive" number="243" groups="descriptor"/>
+  <syscall name="mq_notify" number="244" groups="descriptor"/>
+  <syscall name="mq_getsetattr" number="245" groups="descriptor"/>
   <syscall name="kexec_load" number="246"/>
   <syscall name="waitid" number="247" groups="process"/>
   <syscall name="add_key" number="248"/>
@@ -265,7 +265,7 @@
   <syscall name="ioprio_set" number="251"/>
   <syscall name="ioprio_get" number="252"/>
   <syscall name="inotify_init" number="253" groups="descriptor"/>
-  <syscall name="inotify_add_watch" number="254" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="254" groups="descriptor,file"/>
   <syscall name="inotify_rm_watch" number="255" groups="descriptor"/>
   <syscall name="migrate_pages" number="256" groups="memory"/>
   <syscall name="openat" number="257" groups="descriptor,file"/>
@@ -283,7 +283,7 @@
   <syscall name="faccessat" number="269" groups="descriptor,file"/>
   <syscall name="pselect6" number="270" groups="descriptor"/>
   <syscall name="ppoll" number="271" groups="descriptor"/>
-  <syscall name="unshare" number="272" groups="process"/>
+  <syscall name="unshare" number="272"/>
   <syscall name="set_robust_list" number="273"/>
   <syscall name="get_robust_list" number="274"/>
   <syscall name="splice" number="275" groups="descriptor"/>
@@ -327,50 +327,50 @@
   <syscall name="finit_module" number="313" groups="descriptor"/>
   <syscall name="sched_setattr" number="314"/>
   <syscall name="sched_getattr" number="315"/>
-  <syscall name="renameat2" number="316"/>
+  <syscall name="renameat2" number="316" groups="descriptor,file"/>
   <syscall name="seccomp" number="317"/>
   <syscall name="getrandom" number="318"/>
-  <syscall name="memfd_create" number="319"/>
-  <syscall name="kexec_file_load" number="320"/>
-  <syscall name="bpf" number="321"/>
-  <syscall name="execveat" number="322"/>
-  <syscall name="userfaultfd" number="323"/>
+  <syscall name="memfd_create" number="319" groups="descriptor"/>
+  <syscall name="kexec_file_load" number="320" groups="descriptor"/>
+  <syscall name="bpf" number="321" groups="descriptor"/>
+  <syscall name="execveat" number="322" groups="descriptor,file,process"/>
+  <syscall name="userfaultfd" number="323" groups="descriptor"/>
   <syscall name="membarrier" number="324"/>
-  <syscall name="mlock2" number="325"/>
-  <syscall name="copy_file_range" number="326"/>
-  <syscall name="preadv2" number="327"/>
-  <syscall name="pwritev2" number="328"/>
-  <syscall name="pkey_mprotect" number="329"/>
+  <syscall name="mlock2" number="325" groups="memory"/>
+  <syscall name="copy_file_range" number="326" groups="descriptor"/>
+  <syscall name="preadv2" number="327" groups="descriptor"/>
+  <syscall name="pwritev2" number="328" groups="descriptor"/>
+  <syscall name="pkey_mprotect" number="329" groups="memory"/>
   <syscall name="pkey_alloc" number="330"/>
   <syscall name="pkey_free" number="331"/>
-  <syscall name="statx" number="332"/>
+  <syscall name="statx" number="332" groups="descriptor,file"/>
   <syscall name="io_pgetevents" number="333"/>
   <syscall name="rseq" number="334"/>
-  <syscall name="pidfd_send_signal" number="424"/>
-  <syscall name="io_uring_setup" number="425"/>
-  <syscall name="io_uring_enter" number="426"/>
-  <syscall name="io_uring_register" number="427"/>
-  <syscall name="open_tree" number="428"/>
-  <syscall name="move_mount" number="429"/>
-  <syscall name="fsopen" number="430"/>
-  <syscall name="fsconfig" number="431"/>
-  <syscall name="fsmount" number="432"/>
-  <syscall name="fspick" number="433"/>
-  <syscall name="pidfd_open" number="434"/>
-  <syscall name="clone3" number="435"/>
+  <syscall name="pidfd_send_signal" number="424" groups="descriptor,signal,process"/>
+  <syscall name="io_uring_setup" number="425" groups="descriptor"/>
+  <syscall name="io_uring_enter" number="426" groups="descriptor,signal"/>
+  <syscall name="io_uring_register" number="427" groups="descriptor,memory"/>
+  <syscall name="open_tree" number="428" groups="descriptor,file"/>
+  <syscall name="move_mount" number="429" groups="descriptor,file"/>
+  <syscall name="fsopen" number="430" groups="descriptor"/>
+  <syscall name="fsconfig" number="431" groups="descriptor,file"/>
+  <syscall name="fsmount" number="432" groups="descriptor"/>
+  <syscall name="fspick" number="433" groups="descriptor,file"/>
+  <syscall name="pidfd_open" number="434" groups="descriptor"/>
+  <syscall name="clone3" number="435" groups="process"/>
   <syscall name="close_range" number="436"/>
-  <syscall name="openat2" number="437"/>
-  <syscall name="pidfd_getfd" number="438"/>
-  <syscall name="faccessat2" number="439"/>
-  <syscall name="process_madvise" number="440"/>
-  <syscall name="epoll_pwait2" number="441"/>
-  <syscall name="mount_setattr" number="442"/>
-  <syscall name="quotactl_fd" number="443"/>
-  <syscall name="landlock_create_ruleset" number="444"/>
-  <syscall name="landlock_add_rule" number="445"/>
-  <syscall name="landlock_restrict_self" number="446"/>
-  <syscall name="memfd_secret" number="447"/>
-  <syscall name="process_mrelease" number="448"/>
+  <syscall name="openat2" number="437" groups="descriptor,file"/>
+  <syscall name="pidfd_getfd" number="438" groups="descriptor"/>
+  <syscall name="faccessat2" number="439" groups="descriptor,file"/>
+  <syscall name="process_madvise" number="440" groups="descriptor"/>
+  <syscall name="epoll_pwait2" number="441" groups="descriptor"/>
+  <syscall name="mount_setattr" number="442" groups="descriptor,file"/>
+  <syscall name="quotactl_fd" number="443" groups="descriptor"/>
+  <syscall name="landlock_create_ruleset" number="444" groups="descriptor"/>
+  <syscall name="landlock_add_rule" number="445" groups="descriptor"/>
+  <syscall name="landlock_restrict_self" number="446" groups="descriptor"/>
+  <syscall name="memfd_secret" number="447" groups="descriptor"/>
+  <syscall name="process_mrelease" number="448" groups="descriptor"/>
   <syscall name="futex_waitv" number="449"/>
-  <syscall name="set_mempolicy_home_node" number="450"/>
+  <syscall name="set_mempolicy_home_node" number="450" groups="memory"/>
 </syscalls_info>
diff --git a/gdb/syscalls/arm-linux.xml b/gdb/syscalls/arm-linux.xml
index 419da0f4973..987bc8b16b9 100644
--- a/gdb/syscalls/arm-linux.xml
+++ b/gdb/syscalls/arm-linux.xml
@@ -50,7 +50,7 @@
   <syscall name="nice" number="34"/>
   <syscall name="ftime" number="35"/> <!-- removed -->
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="kill" number="37" groups="signal,process"/>
   <syscall name="rename" number="38" groups="file"/>
   <syscall name="mkdir" number="39" groups="file"/>
   <syscall name="rmdir" number="40" groups="file"/>
@@ -191,7 +191,7 @@
   <syscall name="rt_sigprocmask" number="175" groups="signal"/>
   <syscall name="rt_sigpending" number="176" groups="signal"/>
   <syscall name="rt_sigtimedwait" number="177" groups="signal"/>
-  <syscall name="rt_sigqueueinfo" number="178" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="178" groups="signal,process"/>
   <syscall name="rt_sigsuspend" number="179" groups="signal"/>
   <syscall name="pread64" number="180" groups="descriptor"/>
   <syscall name="pwrite64" number="181" groups="descriptor"/>
@@ -247,13 +247,13 @@
   <syscall name="removexattr" number="235" groups="file"/>
   <syscall name="lremovexattr" number="236" groups="file"/>
   <syscall name="fremovexattr" number="237" groups="descriptor"/>
-  <syscall name="tkill" number="238" groups="signal"/>
+  <syscall name="tkill" number="238" groups="signal,process"/>
   <syscall name="sendfile64" number="239" groups="descriptor,network"/>
   <syscall name="futex" number="240"/>
   <syscall name="sched_setaffinity" number="241"/>
   <syscall name="sched_getaffinity" number="242"/>
-  <syscall name="io_setup" number="243"/>
-  <syscall name="io_destroy" number="244"/>
+  <syscall name="io_setup" number="243" groups="memory"/>
+  <syscall name="io_destroy" number="244" groups="memory"/>
   <syscall name="io_getevents" number="245"/>
   <syscall name="io_submit" number="246"/>
   <syscall name="io_cancel" number="247"/>
@@ -275,18 +275,18 @@
   <syscall name="clock_nanosleep" number="265"/>
   <syscall name="statfs64" number="266" groups="file"/>
   <syscall name="fstatfs64" number="267" groups="descriptor"/>
-  <syscall name="tgkill" number="268" groups="signal"/>
+  <syscall name="tgkill" number="268" groups="signal,process"/>
   <syscall name="utimes" number="269" groups="file"/>
   <syscall name="arm_fadvise64_64" number="270"/>
   <syscall name="pciconfig_iobase" number="271"/>
   <syscall name="pciconfig_read" number="272"/>
   <syscall name="pciconfig_write" number="273"/>
-  <syscall name="mq_open" number="274"/>
+  <syscall name="mq_open" number="274" groups="descriptor"/>
   <syscall name="mq_unlink" number="275"/>
-  <syscall name="mq_timedsend" number="276"/>
-  <syscall name="mq_timedreceive" number="277"/>
-  <syscall name="mq_notify" number="278"/>
-  <syscall name="mq_getsetattr" number="279"/>
+  <syscall name="mq_timedsend" number="276" groups="descriptor"/>
+  <syscall name="mq_timedreceive" number="277" groups="descriptor"/>
+  <syscall name="mq_notify" number="278" groups="descriptor"/>
+  <syscall name="mq_getsetattr" number="279" groups="descriptor"/>
   <syscall name="waitid" number="280" groups="process"/>
   <syscall name="socket" number="281" groups="network"/>
   <syscall name="bind" number="282" groups="network"/>
@@ -324,7 +324,7 @@
   <syscall name="ioprio_set" number="314"/>
   <syscall name="ioprio_get" number="315"/>
   <syscall name="inotify_init" number="316" groups="descriptor"/>
-  <syscall name="inotify_add_watch" number="317" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="317" groups="descriptor,file"/>
   <syscall name="inotify_rm_watch" number="318" groups="descriptor"/>
   <syscall name="mbind" number="319" groups="memory"/>
   <syscall name="get_mempolicy" number="320" groups="memory"/>
@@ -344,7 +344,7 @@
   <syscall name="faccessat" number="334" groups="descriptor,file"/>
   <syscall name="pselect6" number="335" groups="descriptor"/>
   <syscall name="ppoll" number="336" groups="descriptor"/>
-  <syscall name="unshare" number="337" groups="process"/>
+  <syscall name="unshare" number="337"/>
   <syscall name="set_robust_list" number="338"/>
   <syscall name="get_robust_list" number="339"/>
   <syscall name="splice" number="340" groups="descriptor"/>
diff --git a/gdb/syscalls/bfin-linux.xml b/gdb/syscalls/bfin-linux.xml
index fc75edea96d..548726f198d 100644
--- a/gdb/syscalls/bfin-linux.xml
+++ b/gdb/syscalls/bfin-linux.xml
@@ -40,7 +40,7 @@
   <syscall name="access" number="33" groups="file"/>
   <syscall name="nice" number="34"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="kill" number="37" groups="signal,process"/>
   <syscall name="rename" number="38" groups="file"/>
   <syscall name="mkdir" number="39" groups="file"/>
   <syscall name="rmdir" number="40" groups="file"/>
@@ -140,7 +140,7 @@
   <syscall name="rt_sigprocmask" number="175" groups="signal"/>
   <syscall name="rt_sigpending" number="176" groups="signal"/>
   <syscall name="rt_sigtimedwait" number="177" groups="signal"/>
-  <syscall name="rt_sigqueueinfo" number="178" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="178" groups="signal,process"/>
   <syscall name="rt_sigsuspend" number="179" groups="signal"/>
   <syscall name="pread" number="180" groups="descriptor"/>
   <syscall name="pwrite" number="181" groups="descriptor"/>
@@ -194,13 +194,13 @@
   <syscall name="removexattr" number="235" groups="file"/>
   <syscall name="lremovexattr" number="236" groups="file"/>
   <syscall name="fremovexattr" number="237" groups="descriptor"/>
-  <syscall name="tkill" number="238" groups="signal"/>
+  <syscall name="tkill" number="238" groups="signal,process"/>
   <syscall name="sendfile64" number="239" groups="descriptor,network"/>
   <syscall name="futex" number="240"/>
   <syscall name="sched_setaffinity" number="241"/>
   <syscall name="sched_getaffinity" number="242"/>
-  <syscall name="io_setup" number="245"/>
-  <syscall name="io_destroy" number="246"/>
+  <syscall name="io_setup" number="245" groups="memory"/>
+  <syscall name="io_destroy" number="246" groups="memory"/>
   <syscall name="io_getevents" number="247"/>
   <syscall name="io_submit" number="248"/>
   <syscall name="io_cancel" number="249"/>
@@ -222,15 +222,15 @@
   <syscall name="clock_nanosleep" number="268"/>
   <syscall name="statfs64" number="269" groups="file"/>
   <syscall name="fstatfs64" number="270" groups="descriptor"/>
-  <syscall name="tgkill" number="271" groups="signal"/>
+  <syscall name="tgkill" number="271" groups="signal,process"/>
   <syscall name="utimes" number="272" groups="file"/>
   <syscall name="fadvise64_64" number="273" groups="descriptor"/>
-  <syscall name="mq_open" number="278"/>
+  <syscall name="mq_open" number="278" groups="descriptor"/>
   <syscall name="mq_unlink" number="279"/>
-  <syscall name="mq_timedsend" number="280"/>
-  <syscall name="mq_timedreceive" number="281"/>
-  <syscall name="mq_notify" number="282"/>
-  <syscall name="mq_getsetattr" number="283"/>
+  <syscall name="mq_timedsend" number="280" groups="descriptor"/>
+  <syscall name="mq_timedreceive" number="281" groups="descriptor"/>
+  <syscall name="mq_notify" number="282" groups="descriptor"/>
+  <syscall name="mq_getsetattr" number="283" groups="descriptor"/>
   <syscall name="kexec_load" number="284"/>
   <syscall name="waitid" number="285" groups="process"/>
   <syscall name="add_key" number="286"/>
@@ -239,7 +239,7 @@
   <syscall name="ioprio_set" number="289"/>
   <syscall name="ioprio_get" number="290"/>
   <syscall name="inotify_init" number="291" groups="descriptor"/>
-  <syscall name="inotify_add_watch" number="292" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="292" groups="descriptor,file"/>
   <syscall name="inotify_rm_watch" number="293" groups="descriptor"/>
   <syscall name="openat" number="295" groups="descriptor,file"/>
   <syscall name="mkdirat" number="296" groups="descriptor,file"/>
@@ -256,7 +256,7 @@
   <syscall name="faccessat" number="307" groups="descriptor,file"/>
   <syscall name="pselect6" number="308" groups="descriptor"/>
   <syscall name="ppoll" number="309" groups="descriptor"/>
-  <syscall name="unshare" number="310" groups="process"/>
+  <syscall name="unshare" number="310"/>
   <syscall name="sram_alloc" number="311"/>
   <syscall name="sram_free" number="312"/>
   <syscall name="dma_memcpy" number="313"/>
diff --git a/gdb/syscalls/i386-linux.xml b/gdb/syscalls/i386-linux.xml
index 531e8980596..ff4c7f1fe4b 100644
--- a/gdb/syscalls/i386-linux.xml
+++ b/gdb/syscalls/i386-linux.xml
@@ -48,7 +48,7 @@
   <syscall name="nice" number="34"/>
   <syscall name="ftime" number="35"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="kill" number="37" groups="signal,process"/>
   <syscall name="rename" number="38" groups="file"/>
   <syscall name="mkdir" number="39" groups="file"/>
   <syscall name="rmdir" number="40" groups="file"/>
@@ -189,7 +189,7 @@
   <syscall name="rt_sigprocmask" number="175" groups="signal"/>
   <syscall name="rt_sigpending" number="176" groups="signal"/>
   <syscall name="rt_sigtimedwait" number="177" groups="signal"/>
-  <syscall name="rt_sigqueueinfo" number="178" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="178" groups="signal,process"/>
   <syscall name="rt_sigsuspend" number="179" groups="signal"/>
   <syscall name="pread64" number="180" groups="descriptor"/>
   <syscall name="pwrite64" number="181" groups="descriptor"/>
@@ -199,8 +199,8 @@
   <syscall name="capset" number="185"/>
   <syscall name="sigaltstack" number="186" groups="signal"/>
   <syscall name="sendfile" number="187" groups="descriptor,network"/>
-  <syscall name="getpmsg" number="188"/>
-  <syscall name="putpmsg" number="189"/>
+  <syscall name="getpmsg" number="188" groups="network"/>
+  <syscall name="putpmsg" number="189" groups="network"/>
   <syscall name="vfork" number="190" groups="process"/>
   <syscall name="ugetrlimit" number="191"/>
   <syscall name="mmap2" number="192" groups="descriptor,memory"/>
@@ -247,15 +247,15 @@
   <syscall name="removexattr" number="235" groups="file"/>
   <syscall name="lremovexattr" number="236" groups="file"/>
   <syscall name="fremovexattr" number="237" groups="descriptor"/>
-  <syscall name="tkill" number="238" groups="signal"/>
+  <syscall name="tkill" number="238" groups="signal,process"/>
   <syscall name="sendfile64" number="239" groups="descriptor,network"/>
   <syscall name="futex" number="240"/>
   <syscall name="sched_setaffinity" number="241"/>
   <syscall name="sched_getaffinity" number="242"/>
   <syscall name="set_thread_area" number="243"/>
   <syscall name="get_thread_area" number="244"/>
-  <syscall name="io_setup" number="245"/>
-  <syscall name="io_destroy" number="246"/>
+  <syscall name="io_setup" number="245" groups="memory"/>
+  <syscall name="io_destroy" number="246" groups="memory"/>
   <syscall name="io_getevents" number="247"/>
   <syscall name="io_submit" number="248"/>
   <syscall name="io_cancel" number="249"/>
@@ -278,19 +278,19 @@
   <syscall name="clock_nanosleep" number="267"/>
   <syscall name="statfs64" number="268" groups="file"/>
   <syscall name="fstatfs64" number="269" groups="descriptor"/>
-  <syscall name="tgkill" number="270" groups="signal"/>
+  <syscall name="tgkill" number="270" groups="signal,process"/>
   <syscall name="utimes" number="271" groups="file"/>
   <syscall name="fadvise64_64" number="272" groups="descriptor"/>
   <syscall name="vserver" number="273"/>
   <syscall name="mbind" number="274" groups="memory"/>
   <syscall name="get_mempolicy" number="275" groups="memory"/>
   <syscall name="set_mempolicy" number="276" groups="memory"/>
-  <syscall name="mq_open" number="277"/>
+  <syscall name="mq_open" number="277" groups="descriptor"/>
   <syscall name="mq_unlink" number="278"/>
-  <syscall name="mq_timedsend" number="279"/>
-  <syscall name="mq_timedreceive" number="280"/>
-  <syscall name="mq_notify" number="281"/>
-  <syscall name="mq_getsetattr" number="282"/>
+  <syscall name="mq_timedsend" number="279" groups="descriptor"/>
+  <syscall name="mq_timedreceive" number="280" groups="descriptor"/>
+  <syscall name="mq_notify" number="281" groups="descriptor"/>
+  <syscall name="mq_getsetattr" number="282" groups="descriptor"/>
   <syscall name="kexec_load" number="283"/>
   <syscall name="waitid" number="284" groups="process"/>
   <syscall name="add_key" number="286"/>
@@ -299,7 +299,7 @@
   <syscall name="ioprio_set" number="289"/>
   <syscall name="ioprio_get" number="290"/>
   <syscall name="inotify_init" number="291" groups="descriptor"/>
-  <syscall name="inotify_add_watch" number="292" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="292" groups="descriptor,file"/>
   <syscall name="inotify_rm_watch" number="293" groups="descriptor"/>
   <syscall name="migrate_pages" number="294" groups="memory"/>
   <syscall name="openat" number="295" groups="descriptor,file"/>
@@ -317,7 +317,7 @@
   <syscall name="faccessat" number="307" groups="descriptor,file"/>
   <syscall name="pselect6" number="308" groups="descriptor"/>
   <syscall name="ppoll" number="309" groups="descriptor"/>
-  <syscall name="unshare" number="310" groups="process"/>
+  <syscall name="unshare" number="310"/>
   <syscall name="set_robust_list" number="311"/>
   <syscall name="get_robust_list" number="312"/>
   <syscall name="splice" number="313" groups="descriptor"/>
@@ -360,12 +360,12 @@
   <syscall name="finit_module" number="350" groups="descriptor"/>
   <syscall name="sched_setattr" number="351"/>
   <syscall name="sched_getattr" number="352"/>
-  <syscall name="renameat2" number="353"/>
+  <syscall name="renameat2" number="353" groups="descriptor,file"/>
   <syscall name="seccomp" number="354"/>
   <syscall name="getrandom" number="355"/>
-  <syscall name="memfd_create" number="356"/>
-  <syscall name="bpf" number="357"/>
-  <syscall name="execveat" number="358"/>
+  <syscall name="memfd_create" number="356" groups="descriptor"/>
+  <syscall name="bpf" number="357" groups="descriptor"/>
+  <syscall name="execveat" number="358" groups="descriptor,file,process"/>
   <syscall name="socket" number="359" groups="network"/>
   <syscall name="socketpair" number="360" groups="network"/>
   <syscall name="bind" number="361" groups="network"/>
@@ -381,17 +381,17 @@
   <syscall name="recvfrom" number="371" groups="network"/>
   <syscall name="recvmsg" number="372" groups="network"/>
   <syscall name="shutdown" number="373" groups="network"/>
-  <syscall name="userfaultfd" number="374"/>
+  <syscall name="userfaultfd" number="374" groups="descriptor"/>
   <syscall name="membarrier" number="375"/>
-  <syscall name="mlock2" number="376"/>
-  <syscall name="copy_file_range" number="377"/>
-  <syscall name="preadv2" number="378"/>
-  <syscall name="pwritev2" number="379"/>
-  <syscall name="pkey_mprotect" number="380"/>
+  <syscall name="mlock2" number="376" groups="memory"/>
+  <syscall name="copy_file_range" number="377" groups="descriptor"/>
+  <syscall name="preadv2" number="378" groups="descriptor"/>
+  <syscall name="pwritev2" number="379" groups="descriptor"/>
+  <syscall name="pkey_mprotect" number="380" groups="memory"/>
   <syscall name="pkey_alloc" number="381"/>
   <syscall name="pkey_free" number="382"/>
-  <syscall name="statx" number="383"/>
-  <syscall name="arch_prctl" number="384" groups="process"/>
+  <syscall name="statx" number="383" groups="descriptor,file"/>
+  <syscall name="arch_prctl" number="384"/>
   <syscall name="io_pgetevents" number="385"/>
   <syscall name="rseq" number="386"/>
   <syscall name="semget" number="393" groups="ipc"/>
@@ -411,44 +411,44 @@
   <syscall name="clock_nanosleep_time64" number="407"/>
   <syscall name="timer_gettime64" number="408"/>
   <syscall name="timer_settime64" number="409"/>
-  <syscall name="timerfd_gettime64" number="410"/>
-  <syscall name="timerfd_settime64" number="411"/>
-  <syscall name="utimensat_time64" number="412"/>
-  <syscall name="pselect6_time64" number="413"/>
-  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="timerfd_gettime64" number="410" groups="descriptor"/>
+  <syscall name="timerfd_settime64" number="411" groups="descriptor"/>
+  <syscall name="utimensat_time64" number="412" groups="descriptor,file"/>
+  <syscall name="pselect6_time64" number="413" groups="descriptor"/>
+  <syscall name="ppoll_time64" number="414" groups="descriptor"/>
   <syscall name="io_pgetevents_time64" number="416"/>
-  <syscall name="recvmmsg_time64" number="417"/>
-  <syscall name="mq_timedsend_time64" number="418"/>
-  <syscall name="mq_timedreceive_time64" number="419"/>
-  <syscall name="semtimedop_time64" number="420"/>
-  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="recvmmsg_time64" number="417" groups="network"/>
+  <syscall name="mq_timedsend_time64" number="418" groups="descriptor"/>
+  <syscall name="mq_timedreceive_time64" number="419" groups="descriptor"/>
+  <syscall name="semtimedop_time64" number="420" groups="ipc"/>
+  <syscall name="rt_sigtimedwait_time64" number="421" groups="signal"/>
   <syscall name="futex_time64" number="422"/>
   <syscall name="sched_rr_get_interval_time64" number="423"/>
-  <syscall name="pidfd_send_signal" number="424"/>
-  <syscall name="io_uring_setup" number="425"/>
-  <syscall name="io_uring_enter" number="426"/>
-  <syscall name="io_uring_register" number="427"/>
-  <syscall name="open_tree" number="428"/>
-  <syscall name="move_mount" number="429"/>
-  <syscall name="fsopen" number="430"/>
-  <syscall name="fsconfig" number="431"/>
-  <syscall name="fsmount" number="432"/>
-  <syscall name="fspick" number="433"/>
-  <syscall name="pidfd_open" number="434"/>
-  <syscall name="clone3" number="435"/>
+  <syscall name="pidfd_send_signal" number="424" groups="descriptor,signal,process"/>
+  <syscall name="io_uring_setup" number="425" groups="descriptor"/>
+  <syscall name="io_uring_enter" number="426" groups="descriptor,signal"/>
+  <syscall name="io_uring_register" number="427" groups="descriptor,memory"/>
+  <syscall name="open_tree" number="428" groups="descriptor,file"/>
+  <syscall name="move_mount" number="429" groups="descriptor,file"/>
+  <syscall name="fsopen" number="430" groups="descriptor"/>
+  <syscall name="fsconfig" number="431" groups="descriptor,file"/>
+  <syscall name="fsmount" number="432" groups="descriptor"/>
+  <syscall name="fspick" number="433" groups="descriptor,file"/>
+  <syscall name="pidfd_open" number="434" groups="descriptor"/>
+  <syscall name="clone3" number="435" groups="process"/>
   <syscall name="close_range" number="436"/>
-  <syscall name="openat2" number="437"/>
-  <syscall name="pidfd_getfd" number="438"/>
-  <syscall name="faccessat2" number="439"/>
-  <syscall name="process_madvise" number="440"/>
-  <syscall name="epoll_pwait2" number="441"/>
-  <syscall name="mount_setattr" number="442"/>
-  <syscall name="quotactl_fd" number="443"/>
-  <syscall name="landlock_create_ruleset" number="444"/>
-  <syscall name="landlock_add_rule" number="445"/>
-  <syscall name="landlock_restrict_self" number="446"/>
-  <syscall name="memfd_secret" number="447"/>
-  <syscall name="process_mrelease" number="448"/>
+  <syscall name="openat2" number="437" groups="descriptor,file"/>
+  <syscall name="pidfd_getfd" number="438" groups="descriptor"/>
+  <syscall name="faccessat2" number="439" groups="descriptor,file"/>
+  <syscall name="process_madvise" number="440" groups="descriptor"/>
+  <syscall name="epoll_pwait2" number="441" groups="descriptor"/>
+  <syscall name="mount_setattr" number="442" groups="descriptor,file"/>
+  <syscall name="quotactl_fd" number="443" groups="descriptor"/>
+  <syscall name="landlock_create_ruleset" number="444" groups="descriptor"/>
+  <syscall name="landlock_add_rule" number="445" groups="descriptor"/>
+  <syscall name="landlock_restrict_self" number="446" groups="descriptor"/>
+  <syscall name="memfd_secret" number="447" groups="descriptor"/>
+  <syscall name="process_mrelease" number="448" groups="descriptor"/>
   <syscall name="futex_waitv" number="449"/>
-  <syscall name="set_mempolicy_home_node" number="450"/>
+  <syscall name="set_mempolicy_home_node" number="450" groups="memory"/>
 </syscalls_info>
diff --git a/gdb/syscalls/linux-defaults.xml.in b/gdb/syscalls/linux-defaults.xml.in
index 3564b422516..30c59161cdd 100644
--- a/gdb/syscalls/linux-defaults.xml.in
+++ b/gdb/syscalls/linux-defaults.xml.in
@@ -5,239 +5,384 @@
      are permitted in any medium without royalty provided the copyright
      notice and this notice are preserved.  -->
 
-<!-- The group field information was based on strace.  -->
-
+<!-- This file was generated using the sources from strace.  -->
 <syscalls_defaults>
-  <syscall name="read" groups="descriptor"/>
-  <syscall name="write" groups="descriptor"/>
-  <syscall name="open" groups="descriptor,file"/>
-  <syscall name="close" groups="descriptor"/>
-  <syscall name="stat" groups="file"/>
-  <syscall name="fstat" groups="descriptor"/>
-  <syscall name="lstat" groups="file"/>
-  <syscall name="poll" groups="descriptor"/>
-  <syscall name="lseek" groups="descriptor"/>
-  <syscall name="mmap" groups="descriptor,memory"/>
-  <syscall name="mprotect" groups="memory"/>
-  <syscall name="munmap" groups="memory"/>
-  <syscall name="brk" groups="memory"/>
-  <syscall name="rt_sigaction" groups="signal"/>
-  <syscall name="rt_sigprocmask" groups="signal"/>
-  <syscall name="rt_sigreturn" groups="signal"/>
-  <syscall name="ioctl" groups="descriptor"/>
-  <syscall name="pread64" groups="descriptor"/>
-  <syscall name="pwrite64" groups="descriptor"/>
-  <syscall name="readv" groups="descriptor"/>
-  <syscall name="writev" groups="descriptor"/>
-  <syscall name="access" groups="file"/>
-  <syscall name="pipe" groups="descriptor"/>
-  <syscall name="select" groups="descriptor"/>
-  <syscall name="mremap" groups="memory"/>
-  <syscall name="msync" groups="memory"/>
-  <syscall name="mincore" groups="memory"/>
-  <syscall name="madvise" groups="memory"/>
-  <syscall name="shmget" groups="ipc"/>
-  <syscall name="shmat" groups="ipc,memory"/>
-  <syscall name="shmctl" groups="ipc"/>
-  <syscall name="dup" groups="descriptor"/>
-  <syscall name="dup2" groups="descriptor"/>
-  <syscall name="pause" groups="signal"/>
-  <syscall name="sendfile" groups="descriptor,network"/>
-  <syscall name="socket" groups="network"/>
-  <syscall name="connect" groups="network"/>
+  <syscall name="accept4" groups="network"/>
   <syscall name="accept" groups="network"/>
-  <syscall name="sendto" groups="network"/>
-  <syscall name="recvfrom" groups="network"/>
-  <syscall name="sendmsg" groups="network"/>
-  <syscall name="recvmsg" groups="network"/>
-  <syscall name="shutdown" groups="network"/>
+  <syscall name="access" groups="file"/>
+  <syscall name="acct" groups="file"/>
   <syscall name="bind" groups="network"/>
-  <syscall name="listen" groups="network"/>
-  <syscall name="getsockname" groups="network"/>
-  <syscall name="getpeername" groups="network"/>
-  <syscall name="socketpair" groups="network"/>
-  <syscall name="setsockopt" groups="network"/>
-  <syscall name="getsockopt" groups="network"/>
+  <syscall name="bpf" groups="descriptor"/>
+  <syscall name="break" groups="memory"/>
+  <syscall name="brk" groups="memory"/>
+  <syscall name="bsd43_fstatfs" groups="descriptor"/>
+  <syscall name="bsd43_fstat" groups="descriptor"/>
+  <syscall name="bsd43_killpg" groups="process"/>
+  <syscall name="bsd43_kill" groups="process"/>
+  <syscall name="bsd43_lstat" groups="file"/>
+  <syscall name="bsd43_madvise" groups="memory"/>
+  <syscall name="bsd43_mincore" groups="memory"/>
+  <syscall name="bsd43_mmap" groups="descriptor,memory"/>
+  <syscall name="bsd43_mprotect" groups="memory"/>
+  <syscall name="bsd43_mremap" groups="memory"/>
+  <syscall name="bsd43_munmap" groups="memory"/>
+  <syscall name="bsd43_oldfstat" groups="descriptor"/>
+  <syscall name="bsd43_oldstat" groups="file"/>
+  <syscall name="bsd43_quotactl" groups="file"/>
+  <syscall name="bsd43_sbreak" groups="memory"/>
+  <syscall name="bsd43_sbrk" groups="memory"/>
+  <syscall name="bsd43_statfs" groups="file"/>
+  <syscall name="bsd43_stat" groups="file"/>
+  <syscall name="cacheflush" groups="memory"/>
+  <syscall name="chdir" groups="file"/>
+  <syscall name="chmod" groups="file"/>
+  <syscall name="chown32" groups="file"/>
+  <syscall name="chown" groups="file"/>
+  <syscall name="chroot" groups="file"/>
+  <syscall name="clone2" groups="process"/>
+  <syscall name="clone3" groups="process"/>
   <syscall name="clone" groups="process"/>
-  <syscall name="fork" groups="process"/>
-  <syscall name="vfork" groups="process"/>
+  <syscall name="close" groups="descriptor"/>
+  <syscall name="connect" groups="network"/>
+  <syscall name="copy_file_range" groups="descriptor"/>
+  <syscall name="creat" groups="descriptor,file"/>
+  <syscall name="dup2" groups="descriptor"/>
+  <syscall name="dup3" groups="descriptor"/>
+  <syscall name="dup" groups="descriptor"/>
+  <syscall name="epoll_create1" groups="descriptor"/>
+  <syscall name="epoll_create" groups="descriptor"/>
+  <syscall name="epoll_ctl" groups="descriptor"/>
+  <syscall name="epoll_pwait2" groups="descriptor"/>
+  <syscall name="epoll_pwait" groups="descriptor"/>
+  <syscall name="epoll_wait" groups="descriptor"/>
+  <syscall name="eventfd2" groups="descriptor"/>
+  <syscall name="eventfd" groups="descriptor"/>
+  <syscall name="execveat" groups="descriptor,file,process"/>
   <syscall name="execve" groups="file,process"/>
   <syscall name="execv" groups="file,process"/>
+  <syscall name="exit_group" groups="process"/>
   <syscall name="exit" groups="process"/>
-  <syscall name="wait4" groups="process"/>
-  <syscall name="kill" groups="signal"/>
-  <syscall name="semget" groups="ipc"/>
-  <syscall name="semop" groups="ipc"/>
-  <syscall name="semctl" groups="ipc"/>
-  <syscall name="shmdt" groups="ipc,memory"/>
-  <syscall name="msgget" groups="ipc"/>
-  <syscall name="msgsnd" groups="ipc"/>
-  <syscall name="msgrcv" groups="ipc"/>
-  <syscall name="msgctl" groups="ipc"/>
+  <syscall name="faccessat2" groups="descriptor,file"/>
+  <syscall name="faccessat" groups="descriptor,file"/>
+  <syscall name="fadvise64_64" groups="descriptor"/>
+  <syscall name="fadvise64" groups="descriptor"/>
+  <syscall name="fallocate" groups="descriptor"/>
+  <syscall name="fanotify_init" groups="descriptor"/>
+  <syscall name="fanotify_mark" groups="descriptor,file"/>
+  <syscall name="fchdir" groups="descriptor"/>
+  <syscall name="fchmodat" groups="descriptor,file"/>
+  <syscall name="fchmod" groups="descriptor"/>
+  <syscall name="fchown32" groups="descriptor"/>
+  <syscall name="fchownat" groups="descriptor,file"/>
+  <syscall name="fchown" groups="descriptor"/>
+  <syscall name="fcntl64" groups="descriptor"/>
   <syscall name="fcntl" groups="descriptor"/>
+  <syscall name="fdatasync" groups="descriptor"/>
+  <syscall name="fgetxattr" groups="descriptor"/>
+  <syscall name="finit_module" groups="descriptor"/>
+  <syscall name="flistxattr" groups="descriptor"/>
   <syscall name="flock" groups="descriptor"/>
+  <syscall name="fork" groups="process"/>
+  <syscall name="fremovexattr" groups="descriptor"/>
+  <syscall name="fsconfig" groups="descriptor,file"/>
+  <syscall name="fsetxattr" groups="descriptor"/>
+  <syscall name="fsmount" groups="descriptor"/>
+  <syscall name="fsopen" groups="descriptor"/>
+  <syscall name="fspick" groups="descriptor,file"/>
+  <syscall name="fstat64" groups="descriptor"/>
+  <syscall name="fstatat64" groups="descriptor,file"/>
+  <syscall name="fstatfs64" groups="descriptor"/>
+  <syscall name="fstatfs" groups="descriptor"/>
+  <syscall name="fstat" groups="descriptor"/>
   <syscall name="fsync" groups="descriptor"/>
-  <syscall name="fdatasync" groups="descriptor"/>
-  <syscall name="truncate" groups="file"/>
+  <syscall name="ftruncate64" groups="descriptor"/>
   <syscall name="ftruncate" groups="descriptor"/>
-  <syscall name="getdents" groups="descriptor"/>
+  <syscall name="futimesat" groups="descriptor,file"/>
   <syscall name="getcwd" groups="file"/>
-  <syscall name="chdir" groups="file"/>
-  <syscall name="fchdir" groups="descriptor"/>
-  <syscall name="rename" groups="file"/>
-  <syscall name="mkdir" groups="file"/>
-  <syscall name="rmdir" groups="file"/>
-  <syscall name="creat" groups="descriptor,file"/>
-  <syscall name="link" groups="file"/>
-  <syscall name="unlink" groups="file"/>
-  <syscall name="symlink" groups="file"/>
-  <syscall name="readlink" groups="file"/>
-  <syscall name="chmod" groups="file"/>
-  <syscall name="fchmod" groups="descriptor"/>
-  <syscall name="chown" groups="file"/>
-  <syscall name="fchown" groups="descriptor"/>
-  <syscall name="lchown" groups="file"/>
-  <syscall name="rt_sigpending" groups="signal"/>
-  <syscall name="rt_sigtimedwait" groups="signal"/>
-  <syscall name="rt_sigqueueinfo" groups="signal"/>
-  <syscall name="rt_sigsuspend" groups="signal"/>
-  <syscall name="sigaltstack" groups="signal"/>
-  <syscall name="utime" groups="file"/>
-  <syscall name="mknod" groups="file"/>
-  <syscall name="uselib" groups="file"/>
-  <syscall name="statfs" groups="file"/>
-  <syscall name="fstatfs" groups="descriptor"/>
-  <syscall name="mlock" groups="memory"/>
-  <syscall name="munlock" groups="memory"/>
-  <syscall name="mlockall" groups="memory"/>
-  <syscall name="munlockall" groups="memory"/>
-  <syscall name="pivot_root" groups="file"/>
-  <syscall name="arch_prctl" groups="process"/>
-  <syscall name="chroot" groups="file"/>
-  <syscall name="acct" groups="file"/>
-  <syscall name="mount" groups="file"/>
-  <syscall name="umount" groups="file"/>
-  <syscall name="umount2" groups="file"/>
-  <syscall name="swapon" groups="file"/>
-  <syscall name="swapoff" groups="file"/>
-  <syscall name="quotactl" groups="file"/>
-  <syscall name="readahead" groups="descriptor"/>
-  <syscall name="setxattr" groups="file"/>
-  <syscall name="lsetxattr" groups="file"/>
-  <syscall name="fsetxattr" groups="descriptor"/>
+  <syscall name="getdents64" groups="descriptor"/>
+  <syscall name="getdents" groups="descriptor"/>
+  <syscall name="get_mempolicy" groups="memory"/>
+  <syscall name="getpeername" groups="network"/>
+  <syscall name="getpmsg" groups="network"/>
+  <syscall name="getsockname" groups="network"/>
+  <syscall name="getsockopt" groups="network"/>
   <syscall name="getxattr" groups="file"/>
+  <syscall name="inotify_add_watch" groups="descriptor,file"/>
+  <syscall name="inotify_init1" groups="descriptor"/>
+  <syscall name="inotify_init" groups="descriptor"/>
+  <syscall name="inotify_rm_watch" groups="descriptor"/>
+  <syscall name="ioctl" groups="descriptor"/>
+  <syscall name="io_destroy" groups="memory"/>
+  <syscall name="io_setup" groups="memory"/>
+  <syscall name="io_uring_enter" groups="descriptor,signal"/>
+  <syscall name="io_uring_register" groups="descriptor,memory"/>
+  <syscall name="io_uring_setup" groups="descriptor"/>
+  <syscall name="ipc" groups="ipc"/>
+  <syscall name="kexec_file_load" groups="descriptor"/>
+  <syscall name="kill" groups="signal,process"/>
+  <syscall name="landlock_add_rule" groups="descriptor"/>
+  <syscall name="landlock_create_ruleset" groups="descriptor"/>
+  <syscall name="landlock_restrict_self" groups="descriptor"/>
+  <syscall name="lchown32" groups="file"/>
+  <syscall name="lchown" groups="file"/>
   <syscall name="lgetxattr" groups="file"/>
-  <syscall name="fgetxattr" groups="descriptor"/>
+  <syscall name="linkat" groups="descriptor,file"/>
+  <syscall name="link" groups="file"/>
+  <syscall name="listen" groups="network"/>
   <syscall name="listxattr" groups="file"/>
   <syscall name="llistxattr" groups="file"/>
-  <syscall name="flistxattr" groups="descriptor"/>
-  <syscall name="removexattr" groups="file"/>
+  <syscall name="_llseek" groups="descriptor"/>
   <syscall name="lremovexattr" groups="file"/>
-  <syscall name="fremovexattr" groups="descriptor"/>
-  <syscall name="tkill" groups="signal"/>
-  <syscall name="epoll_create" groups="descriptor"/>
-  <syscall name="remap_file_pages" groups="memory"/>
-  <syscall name="getdents64" groups="descriptor"/>
-  <syscall name="semtimedop" groups="ipc"/>
-  <syscall name="fadvise64" groups="descriptor"/>
-  <syscall name="exit_group" groups="process"/>
-  <syscall name="epoll_wait" groups="descriptor"/>
-  <syscall name="epoll_ctl" groups="descriptor"/>
-  <syscall name="tgkill" groups="signal"/>
-  <syscall name="utimes" groups="file"/>
+  <syscall name="lseek" groups="descriptor"/>
+  <syscall name="lsetxattr" groups="file"/>
+  <syscall name="lstat64" groups="file"/>
+  <syscall name="lstat" groups="file"/>
+  <syscall name="madvise" groups="memory"/>
   <syscall name="mbind" groups="memory"/>
-  <syscall name="set_mempolicy" groups="memory"/>
-  <syscall name="get_mempolicy" groups="memory"/>
-  <syscall name="waitid" groups="process"/>
-  <syscall name="inotify_init" groups="descriptor"/>
-  <syscall name="inotify_add_watch" groups="descriptor"/>
-  <syscall name="inotify_rm_watch" groups="descriptor"/>
+  <syscall name="memfd_create" groups="descriptor"/>
+  <syscall name="memfd_secret" groups="descriptor"/>
   <syscall name="migrate_pages" groups="memory"/>
-  <syscall name="openat" groups="descriptor,file"/>
+  <syscall name="mincore" groups="memory"/>
   <syscall name="mkdirat" groups="descriptor,file"/>
+  <syscall name="mkdir" groups="file"/>
   <syscall name="mknodat" groups="descriptor,file"/>
-  <syscall name="fchownat" groups="descriptor,file"/>
-  <syscall name="futimesat" groups="descriptor,file"/>
-  <syscall name="newfstatat" groups="descriptor,file"/>
-  <syscall name="unlinkat" groups="descriptor,file"/>
-  <syscall name="renameat" groups="descriptor,file"/>
-  <syscall name="linkat" groups="descriptor,file"/>
-  <syscall name="symlinkat" groups="descriptor,file"/>
-  <syscall name="readlinkat" groups="descriptor,file"/>
-  <syscall name="fchmodat" groups="descriptor,file"/>
-  <syscall name="faccessat" groups="descriptor,file"/>
-  <syscall name="pselect6" groups="descriptor"/>
-  <syscall name="ppoll" groups="descriptor"/>
-  <syscall name="unshare" groups="process"/>
-  <syscall name="splice" groups="descriptor"/>
-  <syscall name="tee" groups="descriptor"/>
-  <syscall name="sync_file_range" groups="descriptor"/>
-  <syscall name="vmsplice" groups="descriptor"/>
+  <syscall name="mknod" groups="file"/>
+  <syscall name="mlock2" groups="memory"/>
+  <syscall name="mlockall" groups="memory"/>
+  <syscall name="mlock" groups="memory"/>
+  <syscall name="mmap2" groups="descriptor,memory"/>
+  <syscall name="mmap" groups="descriptor,memory"/>
+  <syscall name="mount_setattr" groups="descriptor,file"/>
+  <syscall name="mount" groups="file"/>
+  <syscall name="move_mount" groups="descriptor,file"/>
   <syscall name="move_pages" groups="memory"/>
-  <syscall name="utimensat" groups="descriptor,file"/>
-  <syscall name="epoll_pwait" groups="descriptor"/>
-  <syscall name="signalfd" groups="descriptor,signal"/>
-  <syscall name="timerfd_create" groups="descriptor"/>
-  <syscall name="eventfd" groups="descriptor"/>
-  <syscall name="fallocate" groups="descriptor"/>
-  <syscall name="timerfd_settime" groups="descriptor"/>
-  <syscall name="timerfd_gettime" groups="descriptor"/>
-  <syscall name="accept4" groups="network"/>
-  <syscall name="signalfd4" groups="descriptor,signal"/>
-  <syscall name="eventfd2" groups="descriptor"/>
-  <syscall name="epoll_create1" groups="descriptor"/>
-  <syscall name="dup3" groups="descriptor"/>
+  <syscall name="mprotect" groups="memory"/>
+  <syscall name="mq_getsetattr" groups="descriptor"/>
+  <syscall name="mq_notify" groups="descriptor"/>
+  <syscall name="mq_open" groups="descriptor"/>
+  <syscall name="mq_timedreceive" groups="descriptor"/>
+  <syscall name="mq_timedreceive_time64" groups="descriptor"/>
+  <syscall name="mq_timedsend" groups="descriptor"/>
+  <syscall name="mq_timedsend_time64" groups="descriptor"/>
+  <syscall name="mremap" groups="memory"/>
+  <syscall name="msgctl" groups="ipc"/>
+  <syscall name="msgget" groups="ipc"/>
+  <syscall name="msgrcv" groups="ipc"/>
+  <syscall name="msgsnd" groups="ipc"/>
+  <syscall name="msync" groups="memory"/>
+  <syscall name="munlockall" groups="memory"/>
+  <syscall name="munlock" groups="memory"/>
+  <syscall name="munmap" groups="memory"/>
+  <syscall name="name_to_handle_at" groups="descriptor,file"/>
+  <syscall name="newfstatat" groups="descriptor,file"/>
+  <syscall name="_newselect" groups="descriptor"/>
+  <syscall name="oldfstat" groups="descriptor"/>
+  <syscall name="oldlstat" groups="file"/>
+  <syscall name="oldstat" groups="file"/>
+  <syscall name="oldumount" groups="file"/>
+  <syscall name="openat2" groups="descriptor,file"/>
+  <syscall name="openat" groups="descriptor,file"/>
+  <syscall name="open_by_handle_at" groups="descriptor"/>
+  <syscall name="open" groups="descriptor,file"/>
+  <syscall name="open_tree" groups="descriptor,file"/>
+  <syscall name="osf_fstatfs64" groups="descriptor"/>
+  <syscall name="osf_fstatfs" groups="descriptor"/>
+  <syscall name="osf_fstat" groups="descriptor"/>
+  <syscall name="osf_lstat" groups="file"/>
+  <syscall name="osf_mincore" groups="memory"/>
+  <syscall name="osf_mremap" groups="memory"/>
+  <syscall name="osf_old_fstat" groups="descriptor"/>
+  <syscall name="osf_old_killpg" groups="process"/>
+  <syscall name="osf_old_lstat" groups="file"/>
+  <syscall name="osf_old_stat" groups="file"/>
+  <syscall name="osf_sbrk" groups="memory"/>
+  <syscall name="osf_select" groups="descriptor"/>
+  <syscall name="osf_shmat" groups="ipc,memory"/>
+  <syscall name="osf_sigprocmask" groups="signal"/>
+  <syscall name="osf_statfs64" groups="file"/>
+  <syscall name="osf_statfs" groups="file"/>
+  <syscall name="osf_stat" groups="file"/>
+  <syscall name="osf_utimes" groups="file"/>
+  <syscall name="osf_wait4" groups="process"/>
+  <syscall name="pause" groups="signal"/>
+  <syscall name="perf_event_open" groups="descriptor"/>
+  <syscall name="pidfd_getfd" groups="descriptor"/>
+  <syscall name="pidfd_open" groups="descriptor"/>
+  <syscall name="pidfd_send_signal" groups="descriptor,signal,process"/>
   <syscall name="pipe2" groups="descriptor"/>
-  <syscall name="inotify_init1" groups="descriptor"/>
+  <syscall name="pipe" groups="descriptor"/>
+  <syscall name="pivot_root" groups="file"/>
+  <syscall name="pkey_mprotect" groups="memory"/>
+  <syscall name="poll" groups="descriptor"/>
+  <syscall name="posix_fstatfs" groups="descriptor"/>
+  <syscall name="posix_fstat" groups="descriptor"/>
+  <syscall name="posix_kill" groups="process"/>
+  <syscall name="posix_lstat" groups="file"/>
+  <syscall name="posix_madvise" groups="memory"/>
+  <syscall name="posix_mmap" groups="descriptor,memory"/>
+  <syscall name="posix_munmap" groups="memory"/>
+  <syscall name="posix_sbreak" groups="memory"/>
+  <syscall name="posix_SGI_madvise" groups="memory"/>
+  <syscall name="posix_SGI_mmap" groups="descriptor,memory"/>
+  <syscall name="posix_SGI_mprotect" groups="memory"/>
+  <syscall name="posix_SGI_msync" groups="memory"/>
+  <syscall name="posix_SGI_munmap" groups="memory"/>
+  <syscall name="posix_statfs" groups="file"/>
+  <syscall name="posix_stat" groups="file"/>
+  <syscall name="ppoll" groups="descriptor"/>
+  <syscall name="ppoll_time64" groups="descriptor"/>
+  <syscall name="pread64" groups="descriptor"/>
+  <syscall name="pread" groups="descriptor"/>
+  <syscall name="preadv2" groups="descriptor"/>
   <syscall name="preadv" groups="descriptor"/>
+  <syscall name="process_madvise" groups="descriptor"/>
+  <syscall name="process_mrelease" groups="descriptor"/>
+  <syscall name="pselect6" groups="descriptor"/>
+  <syscall name="pselect6_time64" groups="descriptor"/>
+  <syscall name="putpmsg" groups="network"/>
+  <syscall name="pwrite64" groups="descriptor"/>
+  <syscall name="pwrite" groups="descriptor"/>
+  <syscall name="pwritev2" groups="descriptor"/>
   <syscall name="pwritev" groups="descriptor"/>
-  <syscall name="send" groups="network"/>
+  <syscall name="quotactl_fd" groups="descriptor"/>
+  <syscall name="quotactl" groups="file"/>
+  <syscall name="readahead" groups="descriptor"/>
+  <syscall name="readdir" groups="descriptor"/>
+  <syscall name="readlinkat" groups="descriptor,file"/>
+  <syscall name="readlink" groups="file"/>
+  <syscall name="read" groups="descriptor"/>
+  <syscall name="readv" groups="descriptor"/>
+  <syscall name="recvfrom" groups="network"/>
+  <syscall name="recvmmsg_time64" groups="network"/>
+  <syscall name="recvmmsg" groups="network"/>
+  <syscall name="recvmsg" groups="network"/>
   <syscall name="recv" groups="network"/>
-  <syscall name="statfs64" groups="file"/>
-  <syscall name="fstatfs64" groups="descriptor"/>
-  <syscall name="sendfile64" groups="descriptor,network"/>
+  <syscall name="remap_file_pages" groups="memory"/>
+  <syscall name="removexattr" groups="file"/>
+  <syscall name="renameat2" groups="descriptor,file"/>
+  <syscall name="renameat" groups="descriptor,file"/>
+  <syscall name="rename" groups="file"/>
+  <syscall name="riscv_flush_icache" groups="memory"/>
+  <syscall name="rmdir" groups="file"/>
+  <syscall name="rt_sigaction" groups="signal"/>
+  <syscall name="rt_sigpending" groups="signal"/>
+  <syscall name="rt_sigprocmask" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" groups="signal,process"/>
+  <syscall name="rt_sigreturn" groups="signal"/>
+  <syscall name="rt_sigsuspend" groups="signal"/>
+  <syscall name="rt_sigtimedwait_time64" groups="signal"/>
+  <syscall name="rt_sigtimedwait" groups="signal"/>
   <syscall name="rt_tgsigqueueinfo" groups="process,signal"/>
-  <syscall name="perf_event_open" groups="descriptor"/>
-  <syscall name="recvmmsg" groups="network"/>
-  <syscall name="fanotify_init" groups="descriptor"/>
-  <syscall name="fanotify_mark" groups="descriptor,file"/>
-  <syscall name="fchown32" groups="descriptor"/>
-  <syscall name="chown32" groups="file"/>
-  <syscall name="fcntl64" groups="descriptor"/>
-  <syscall name="mmap2" groups="descriptor,memory"/>
-  <syscall name="truncate64" groups="file"/>
-  <syscall name="ftruncate64" groups="descriptor"/>
-  <syscall name="stat64" groups="file"/>
-  <syscall name="lstat64" groups="file"/>
-  <syscall name="fstat64" groups="descriptor"/>
-  <syscall name="lchown32" groups="file"/>
-  <syscall name="name_to_handle_at" groups="descriptor,file"/>
-  <syscall name="open_by_handle_at" groups="descriptor"/>
-  <syscall name="_llseek" groups="descriptor"/>
-  <syscall name="syncfs" groups="descriptor"/>
+  <syscall name="select" groups="descriptor"/>
+  <syscall name="semctl" groups="ipc"/>
+  <syscall name="semget" groups="ipc"/>
+  <syscall name="semop" groups="ipc"/>
+  <syscall name="semtimedop" groups="ipc"/>
+  <syscall name="semtimedop_time64" groups="ipc"/>
+  <syscall name="sendfile64" groups="descriptor,network"/>
+  <syscall name="sendfile" groups="descriptor,network"/>
   <syscall name="sendmmsg" groups="network"/>
+  <syscall name="sendmsg" groups="network"/>
+  <syscall name="send" groups="network"/>
+  <syscall name="sendto" groups="network"/>
+  <syscall name="set_mempolicy_home_node" groups="memory"/>
+  <syscall name="set_mempolicy" groups="memory"/>
   <syscall name="setns" groups="descriptor"/>
-  <syscall name="finit_module" groups="descriptor"/>
-  <syscall name="oldstat" groups="file"/>
+  <syscall name="setsockopt" groups="network"/>
+  <syscall name="setxattr" groups="file"/>
+  <syscall name="sgetmask" groups="signal"/>
+  <syscall name="shmat" groups="ipc,memory"/>
+  <syscall name="shmctl" groups="ipc"/>
+  <syscall name="shmdt" groups="ipc,memory"/>
+  <syscall name="shmget" groups="ipc"/>
+  <syscall name="shutdown" groups="network"/>
   <syscall name="sigaction" groups="signal"/>
-  <syscall name="sigreturn" groups="signal"/>
-  <syscall name="sigsuspend" groups="signal"/>
+  <syscall name="sigaltstack" groups="signal"/>
+  <syscall name="signalfd4" groups="descriptor,signal"/>
+  <syscall name="signalfd" groups="descriptor,signal"/>
+  <syscall name="signal" groups="signal"/>
   <syscall name="sigpending" groups="signal"/>
   <syscall name="sigprocmask" groups="signal"/>
-  <syscall name="ipc" groups="ipc"/>
-  <syscall name="readdir" groups="descriptor"/>
+  <syscall name="sigreturn" groups="signal"/>
+  <syscall name="sigsuspend" groups="signal"/>
   <syscall name="socketcall" groups="descriptor"/>
-  <syscall name="break" groups="memory"/>
-  <syscall name="oldfstat" groups="descriptor"/>
-  <syscall name="signal" groups="signal"/>
-  <syscall name="sgetmask" groups="signal"/>
+  <syscall name="socketpair" groups="network"/>
+  <syscall name="socket" groups="network"/>
+  <syscall name="splice" groups="descriptor"/>
   <syscall name="ssetmask" groups="signal"/>
-  <syscall name="oldlstat" groups="file"/>
-  <syscall name="waitpid" groups="process"/>
-  <syscall name="pread" groups="descriptor"/>
-  <syscall name="pwrite" groups="descriptor"/>
-  <syscall name="fadvise64_64" groups="descriptor"/>
-  <syscall name="fstatat64" groups="descriptor,file"/>
-  <syscall name="_newselect" groups="descriptor"/>
+  <syscall name="stat64" groups="file"/>
+  <syscall name="statfs64" groups="file"/>
+  <syscall name="statfs" groups="file"/>
+  <syscall name="stat" groups="file"/>
+  <syscall name="statx" groups="descriptor,file"/>
+  <syscall name="svr4_fstatfs" groups="descriptor"/>
+  <syscall name="svr4_fstat" groups="descriptor"/>
+  <syscall name="svr4_fstatvfs" groups="descriptor"/>
+  <syscall name="svr4_fxstat" groups="descriptor"/>
+  <syscall name="svr4_kill" groups="process"/>
+  <syscall name="svr4_lstat" groups="file"/>
+  <syscall name="svr4_lxstat" groups="file"/>
+  <syscall name="svr4_mincore" groups="memory"/>
+  <syscall name="svr4_mmap" groups="descriptor,memory"/>
+  <syscall name="svr4_mprotect" groups="memory"/>
+  <syscall name="svr4_munmap" groups="memory"/>
+  <syscall name="svr4_sbreak" groups="memory"/>
+  <syscall name="svr4_statfs" groups="file"/>
+  <syscall name="svr4_stat" groups="file"/>
+  <syscall name="svr4_statvfs" groups="file"/>
+  <syscall name="svr4_xstat" groups="file"/>
+  <syscall name="swapoff" groups="file"/>
+  <syscall name="swapon" groups="file"/>
+  <syscall name="symlinkat" groups="descriptor,file"/>
+  <syscall name="symlink" groups="file"/>
+  <syscall name="sync_file_range2" groups="descriptor"/>
+  <syscall name="sync_file_range" groups="descriptor"/>
+  <syscall name="syncfs" groups="descriptor"/>
+  <syscall name="sysv_brk" groups="memory"/>
+  <syscall name="sysv_fstatfs" groups="descriptor"/>
+  <syscall name="sysv_fstat" groups="descriptor"/>
+  <syscall name="sysv_fstatvfs" groups="descriptor"/>
+  <syscall name="sysv_fxstat" groups="descriptor"/>
+  <syscall name="sysv_kill" groups="process"/>
+  <syscall name="sysv_lstat" groups="file"/>
+  <syscall name="sysv_lxstat" groups="file"/>
+  <syscall name="sysv_madvise" groups="memory"/>
+  <syscall name="sysv_mmap64" groups="descriptor,memory"/>
+  <syscall name="sysv_mmap" groups="descriptor,memory"/>
+  <syscall name="sysv_mprotect" groups="memory"/>
+  <syscall name="sysv_msync" groups="memory"/>
+  <syscall name="sysv_munmap" groups="memory"/>
+  <syscall name="sysv_quotactl" groups="file"/>
+  <syscall name="sysv_statfs" groups="file"/>
+  <syscall name="sysv_stat" groups="file"/>
+  <syscall name="sysv_statvfs" groups="file"/>
+  <syscall name="sysv_xstat" groups="file"/>
+  <syscall name="tee" groups="descriptor"/>
+  <syscall name="tgkill" groups="signal,process"/>
+  <syscall name="timerfd_create" groups="descriptor"/>
+  <syscall name="timerfd_gettime64" groups="descriptor"/>
+  <syscall name="timerfd_gettime" groups="descriptor"/>
+  <syscall name="timerfd_settime64" groups="descriptor"/>
+  <syscall name="timerfd_settime" groups="descriptor"/>
   <syscall name="timerfd" groups="descriptor"/>
+  <syscall name="tkill" groups="signal,process"/>
+  <syscall name="truncate64" groups="file"/>
+  <syscall name="truncate" groups="file"/>
+  <syscall name="umount2" groups="file"/>
+  <syscall name="umount" groups="file"/>
+  <syscall name="unlinkat" groups="descriptor,file"/>
+  <syscall name="unlink" groups="file"/>
+  <syscall name="uselib" groups="file"/>
+  <syscall name="userfaultfd" groups="descriptor"/>
+  <syscall name="utimensat" groups="descriptor,file"/>
+  <syscall name="utimensat_time64" groups="descriptor,file"/>
+  <syscall name="utimes" groups="file"/>
+  <syscall name="utime" groups="file"/>
+  <syscall name="vfork" groups="process"/>
+  <syscall name="vmsplice" groups="descriptor"/>
+  <syscall name="wait4" groups="process"/>
+  <syscall name="waitid" groups="process"/>
+  <syscall name="waitpid" groups="process"/>
+  <syscall name="write" groups="descriptor"/>
+  <syscall name="writev" groups="descriptor"/>
 </syscalls_defaults>
diff --git a/gdb/syscalls/mips-n32-linux.xml b/gdb/syscalls/mips-n32-linux.xml
index 9247b5c3e0b..5e77d729e46 100644
--- a/gdb/syscalls/mips-n32-linux.xml
+++ b/gdb/syscalls/mips-n32-linux.xml
@@ -71,7 +71,7 @@
   <syscall name="execve" number="6057" groups="file,process"/>
   <syscall name="exit" number="6058" groups="process"/>
   <syscall name="wait4" number="6059" groups="process"/>
-  <syscall name="kill" number="6060" groups="signal"/>
+  <syscall name="kill" number="6060" groups="signal,process"/>
   <syscall name="uname" number="6061"/>
   <syscall name="semget" number="6062" groups="ipc"/>
   <syscall name="semop" number="6063" groups="ipc"/>
@@ -138,7 +138,7 @@
   <syscall name="capset" number="6124"/>
   <syscall name="rt_sigpending" number="6125" groups="signal"/>
   <syscall name="rt_sigtimedwait" number="6126" groups="signal"/>
-  <syscall name="rt_sigqueueinfo" number="6127" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="6127" groups="signal,process"/>
   <syscall name="rt_sigsuspend" number="6128" groups="signal"/>
   <syscall name="sigaltstack" number="6129" groups="signal"/>
   <syscall name="utime" number="6130" groups="file"/>
@@ -185,8 +185,8 @@
   <syscall name="query_module" number="6171"/>
   <syscall name="quotactl" number="6172" groups="file"/>
   <syscall name="nfsservctl" number="6173"/>
-  <syscall name="getpmsg" number="6174"/>
-  <syscall name="putpmsg" number="6175"/>
+  <syscall name="getpmsg" number="6174" groups="network"/>
+  <syscall name="putpmsg" number="6175" groups="network"/>
   <syscall name="afs_syscall" number="6176"/>
   <syscall name="gettid" number="6178"/>
   <syscall name="readahead" number="6179" groups="descriptor"/>
@@ -202,15 +202,15 @@
   <syscall name="removexattr" number="6189" groups="file"/>
   <syscall name="lremovexattr" number="6190" groups="file"/>
   <syscall name="fremovexattr" number="6191" groups="descriptor"/>
-  <syscall name="tkill" number="6192" groups="signal"/>
+  <syscall name="tkill" number="6192" groups="signal,process"/>
   <syscall name="futex" number="6194"/>
   <syscall name="sched_setaffinity" number="6195"/>
   <syscall name="sched_getaffinity" number="6196"/>
-  <syscall name="cacheflush" number="6197"/>
+  <syscall name="cacheflush" number="6197" groups="memory"/>
   <syscall name="cachectl" number="6198"/>
   <syscall name="sysmips" number="6199"/>
-  <syscall name="io_setup" number="6200"/>
-  <syscall name="io_destroy" number="6201"/>
+  <syscall name="io_setup" number="6200" groups="memory"/>
+  <syscall name="io_destroy" number="6201" groups="memory"/>
   <syscall name="io_getevents" number="6202"/>
   <syscall name="io_submit" number="6203"/>
   <syscall name="io_cancel" number="6204"/>
@@ -238,17 +238,17 @@
   <syscall name="clock_gettime" number="6226"/>
   <syscall name="clock_getres" number="6227"/>
   <syscall name="clock_nanosleep" number="6228"/>
-  <syscall name="tgkill" number="6229" groups="signal"/>
+  <syscall name="tgkill" number="6229" groups="signal,process"/>
   <syscall name="utimes" number="6230" groups="file"/>
   <syscall name="mbind" number="6231" groups="memory"/>
   <syscall name="get_mempolicy" number="6232" groups="memory"/>
   <syscall name="set_mempolicy" number="6233" groups="memory"/>
-  <syscall name="mq_open" number="6234"/>
+  <syscall name="mq_open" number="6234" groups="descriptor"/>
   <syscall name="mq_unlink" number="6235"/>
-  <syscall name="mq_timedsend" number="6236"/>
-  <syscall name="mq_timedreceive" number="6237"/>
-  <syscall name="mq_notify" number="6238"/>
-  <syscall name="mq_getsetattr" number="6239"/>
+  <syscall name="mq_timedsend" number="6236" groups="descriptor"/>
+  <syscall name="mq_timedreceive" number="6237" groups="descriptor"/>
+  <syscall name="mq_notify" number="6238" groups="descriptor"/>
+  <syscall name="mq_getsetattr" number="6239" groups="descriptor"/>
   <syscall name="vserver" number="6240"/>
   <syscall name="waitid" number="6241" groups="process"/>
   <syscall name="add_key" number="6243"/>
@@ -256,7 +256,7 @@
   <syscall name="keyctl" number="6245"/>
   <syscall name="set_thread_area" number="6246"/>
   <syscall name="inotify_init" number="6247" groups="descriptor"/>
-  <syscall name="inotify_add_watch" number="6248" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="6248" groups="descriptor,file"/>
   <syscall name="inotify_rm_watch" number="6249" groups="descriptor"/>
   <syscall name="migrate_pages" number="6250" groups="memory"/>
   <syscall name="openat" number="6251" groups="descriptor,file"/>
@@ -274,7 +274,7 @@
   <syscall name="faccessat" number="6263" groups="descriptor,file"/>
   <syscall name="pselect6" number="6264" groups="descriptor"/>
   <syscall name="ppoll" number="6265" groups="descriptor"/>
-  <syscall name="unshare" number="6266" groups="process"/>
+  <syscall name="unshare" number="6266"/>
   <syscall name="splice" number="6267" groups="descriptor"/>
   <syscall name="sync_file_range" number="6268" groups="descriptor"/>
   <syscall name="tee" number="6269" groups="descriptor"/>
@@ -323,22 +323,22 @@
   <syscall name="finit_module" number="6312" groups="descriptor"/>
   <syscall name="sched_setattr" number="6313"/>
   <syscall name="sched_getattr" number="6314"/>
-  <syscall name="renameat2" number="6315"/>
+  <syscall name="renameat2" number="6315" groups="descriptor,file"/>
   <syscall name="seccomp" number="6316"/>
   <syscall name="getrandom" number="6317"/>
-  <syscall name="memfd_create" number="6318"/>
-  <syscall name="bpf" number="6319"/>
-  <syscall name="execveat" number="6320"/>
-  <syscall name="userfaultfd" number="6321"/>
+  <syscall name="memfd_create" number="6318" groups="descriptor"/>
+  <syscall name="bpf" number="6319" groups="descriptor"/>
+  <syscall name="execveat" number="6320" groups="descriptor,file,process"/>
+  <syscall name="userfaultfd" number="6321" groups="descriptor"/>
   <syscall name="membarrier" number="6322"/>
-  <syscall name="mlock2" number="6323"/>
-  <syscall name="copy_file_range" number="6324"/>
-  <syscall name="preadv2" number="6325"/>
-  <syscall name="pwritev2" number="6326"/>
-  <syscall name="pkey_mprotect" number="6327"/>
+  <syscall name="mlock2" number="6323" groups="memory"/>
+  <syscall name="copy_file_range" number="6324" groups="descriptor"/>
+  <syscall name="preadv2" number="6325" groups="descriptor"/>
+  <syscall name="pwritev2" number="6326" groups="descriptor"/>
+  <syscall name="pkey_mprotect" number="6327" groups="memory"/>
   <syscall name="pkey_alloc" number="6328"/>
   <syscall name="pkey_free" number="6329"/>
-  <syscall name="statx" number="6330"/>
+  <syscall name="statx" number="6330" groups="descriptor,file"/>
   <syscall name="rseq" number="6331"/>
   <syscall name="io_pgetevents" number="6332"/>
   <syscall name="clock_gettime64" number="6403"/>
@@ -348,43 +348,43 @@
   <syscall name="clock_nanosleep_time64" number="6407"/>
   <syscall name="timer_gettime64" number="6408"/>
   <syscall name="timer_settime64" number="6409"/>
-  <syscall name="timerfd_gettime64" number="6410"/>
-  <syscall name="timerfd_settime64" number="6411"/>
-  <syscall name="utimensat_time64" number="6412"/>
-  <syscall name="pselect6_time64" number="6413"/>
-  <syscall name="ppoll_time64" number="6414"/>
+  <syscall name="timerfd_gettime64" number="6410" groups="descriptor"/>
+  <syscall name="timerfd_settime64" number="6411" groups="descriptor"/>
+  <syscall name="utimensat_time64" number="6412" groups="descriptor,file"/>
+  <syscall name="pselect6_time64" number="6413" groups="descriptor"/>
+  <syscall name="ppoll_time64" number="6414" groups="descriptor"/>
   <syscall name="io_pgetevents_time64" number="6416"/>
-  <syscall name="recvmmsg_time64" number="6417"/>
-  <syscall name="mq_timedsend_time64" number="6418"/>
-  <syscall name="mq_timedreceive_time64" number="6419"/>
-  <syscall name="semtimedop_time64" number="6420"/>
-  <syscall name="rt_sigtimedwait_time64" number="6421"/>
+  <syscall name="recvmmsg_time64" number="6417" groups="network"/>
+  <syscall name="mq_timedsend_time64" number="6418" groups="descriptor"/>
+  <syscall name="mq_timedreceive_time64" number="6419" groups="descriptor"/>
+  <syscall name="semtimedop_time64" number="6420" groups="ipc"/>
+  <syscall name="rt_sigtimedwait_time64" number="6421" groups="signal"/>
   <syscall name="futex_time64" number="6422"/>
   <syscall name="sched_rr_get_interval_time64" number="6423"/>
-  <syscall name="pidfd_send_signal" number="6424"/>
-  <syscall name="io_uring_setup" number="6425"/>
-  <syscall name="io_uring_enter" number="6426"/>
-  <syscall name="io_uring_register" number="6427"/>
-  <syscall name="open_tree" number="6428"/>
-  <syscall name="move_mount" number="6429"/>
-  <syscall name="fsopen" number="6430"/>
-  <syscall name="fsconfig" number="6431"/>
-  <syscall name="fsmount" number="6432"/>
-  <syscall name="fspick" number="6433"/>
-  <syscall name="pidfd_open" number="6434"/>
-  <syscall name="clone3" number="6435"/>
+  <syscall name="pidfd_send_signal" number="6424" groups="descriptor,signal,process"/>
+  <syscall name="io_uring_setup" number="6425" groups="descriptor"/>
+  <syscall name="io_uring_enter" number="6426" groups="descriptor,signal"/>
+  <syscall name="io_uring_register" number="6427" groups="descriptor,memory"/>
+  <syscall name="open_tree" number="6428" groups="descriptor,file"/>
+  <syscall name="move_mount" number="6429" groups="descriptor,file"/>
+  <syscall name="fsopen" number="6430" groups="descriptor"/>
+  <syscall name="fsconfig" number="6431" groups="descriptor,file"/>
+  <syscall name="fsmount" number="6432" groups="descriptor"/>
+  <syscall name="fspick" number="6433" groups="descriptor,file"/>
+  <syscall name="pidfd_open" number="6434" groups="descriptor"/>
+  <syscall name="clone3" number="6435" groups="process"/>
   <syscall name="close_range" number="6436"/>
-  <syscall name="openat2" number="6437"/>
-  <syscall name="pidfd_getfd" number="6438"/>
-  <syscall name="faccessat2" number="6439"/>
-  <syscall name="process_madvise" number="6440"/>
-  <syscall name="epoll_pwait2" number="6441"/>
-  <syscall name="mount_setattr" number="6442"/>
-  <syscall name="quotactl_fd" number="6443"/>
-  <syscall name="landlock_create_ruleset" number="6444"/>
-  <syscall name="landlock_add_rule" number="6445"/>
-  <syscall name="landlock_restrict_self" number="6446"/>
-  <syscall name="process_mrelease" number="6448"/>
+  <syscall name="openat2" number="6437" groups="descriptor,file"/>
+  <syscall name="pidfd_getfd" number="6438" groups="descriptor"/>
+  <syscall name="faccessat2" number="6439" groups="descriptor,file"/>
+  <syscall name="process_madvise" number="6440" groups="descriptor"/>
+  <syscall name="epoll_pwait2" number="6441" groups="descriptor"/>
+  <syscall name="mount_setattr" number="6442" groups="descriptor,file"/>
+  <syscall name="quotactl_fd" number="6443" groups="descriptor"/>
+  <syscall name="landlock_create_ruleset" number="6444" groups="descriptor"/>
+  <syscall name="landlock_add_rule" number="6445" groups="descriptor"/>
+  <syscall name="landlock_restrict_self" number="6446" groups="descriptor"/>
+  <syscall name="process_mrelease" number="6448" groups="descriptor"/>
   <syscall name="futex_waitv" number="6449"/>
-  <syscall name="set_mempolicy_home_node" number="6450"/>
+  <syscall name="set_mempolicy_home_node" number="6450" groups="memory"/>
 </syscalls_info>
diff --git a/gdb/syscalls/mips-n64-linux.xml b/gdb/syscalls/mips-n64-linux.xml
index d6583a1eb07..89e57a1cb7e 100644
--- a/gdb/syscalls/mips-n64-linux.xml
+++ b/gdb/syscalls/mips-n64-linux.xml
@@ -71,7 +71,7 @@
   <syscall name="execve" number="5057" groups="file,process"/>
   <syscall name="exit" number="5058" groups="process"/>
   <syscall name="wait4" number="5059" groups="process"/>
-  <syscall name="kill" number="5060" groups="signal"/>
+  <syscall name="kill" number="5060" groups="signal,process"/>
   <syscall name="uname" number="5061"/>
   <syscall name="semget" number="5062" groups="ipc"/>
   <syscall name="semop" number="5063" groups="ipc"/>
@@ -138,7 +138,7 @@
   <syscall name="capset" number="5124"/>
   <syscall name="rt_sigpending" number="5125" groups="signal"/>
   <syscall name="rt_sigtimedwait" number="5126" groups="signal"/>
-  <syscall name="rt_sigqueueinfo" number="5127" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="5127" groups="signal,process"/>
   <syscall name="rt_sigsuspend" number="5128" groups="signal"/>
   <syscall name="sigaltstack" number="5129" groups="signal"/>
   <syscall name="utime" number="5130" groups="file"/>
@@ -185,8 +185,8 @@
   <syscall name="query_module" number="5171"/>
   <syscall name="quotactl" number="5172" groups="file"/>
   <syscall name="nfsservctl" number="5173"/>
-  <syscall name="getpmsg" number="5174"/>
-  <syscall name="putpmsg" number="5175"/>
+  <syscall name="getpmsg" number="5174" groups="network"/>
+  <syscall name="putpmsg" number="5175" groups="network"/>
   <syscall name="afs_syscall" number="5176"/>
   <syscall name="gettid" number="5178"/>
   <syscall name="readahead" number="5179" groups="descriptor"/>
@@ -202,15 +202,15 @@
   <syscall name="removexattr" number="5189" groups="file"/>
   <syscall name="lremovexattr" number="5190" groups="file"/>
   <syscall name="fremovexattr" number="5191" groups="descriptor"/>
-  <syscall name="tkill" number="5192" groups="signal"/>
+  <syscall name="tkill" number="5192" groups="signal,process"/>
   <syscall name="futex" number="5194"/>
   <syscall name="sched_setaffinity" number="5195"/>
   <syscall name="sched_getaffinity" number="5196"/>
-  <syscall name="cacheflush" number="5197"/>
+  <syscall name="cacheflush" number="5197" groups="memory"/>
   <syscall name="cachectl" number="5198"/>
   <syscall name="sysmips" number="5199"/>
-  <syscall name="io_setup" number="5200"/>
-  <syscall name="io_destroy" number="5201"/>
+  <syscall name="io_setup" number="5200" groups="memory"/>
+  <syscall name="io_destroy" number="5201" groups="memory"/>
   <syscall name="io_getevents" number="5202"/>
   <syscall name="io_submit" number="5203"/>
   <syscall name="io_cancel" number="5204"/>
@@ -234,17 +234,17 @@
   <syscall name="clock_gettime" number="5222"/>
   <syscall name="clock_getres" number="5223"/>
   <syscall name="clock_nanosleep" number="5224"/>
-  <syscall name="tgkill" number="5225" groups="signal"/>
+  <syscall name="tgkill" number="5225" groups="signal,process"/>
   <syscall name="utimes" number="5226" groups="file"/>
   <syscall name="mbind" number="5227" groups="memory"/>
   <syscall name="get_mempolicy" number="5228" groups="memory"/>
   <syscall name="set_mempolicy" number="5229" groups="memory"/>
-  <syscall name="mq_open" number="5230"/>
+  <syscall name="mq_open" number="5230" groups="descriptor"/>
   <syscall name="mq_unlink" number="5231"/>
-  <syscall name="mq_timedsend" number="5232"/>
-  <syscall name="mq_timedreceive" number="5233"/>
-  <syscall name="mq_notify" number="5234"/>
-  <syscall name="mq_getsetattr" number="5235"/>
+  <syscall name="mq_timedsend" number="5232" groups="descriptor"/>
+  <syscall name="mq_timedreceive" number="5233" groups="descriptor"/>
+  <syscall name="mq_notify" number="5234" groups="descriptor"/>
+  <syscall name="mq_getsetattr" number="5235" groups="descriptor"/>
   <syscall name="vserver" number="5236"/>
   <syscall name="waitid" number="5237" groups="process"/>
   <syscall name="add_key" number="5239"/>
@@ -252,7 +252,7 @@
   <syscall name="keyctl" number="5241"/>
   <syscall name="set_thread_area" number="5242"/>
   <syscall name="inotify_init" number="5243" groups="descriptor"/>
-  <syscall name="inotify_add_watch" number="5244" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="5244" groups="descriptor,file"/>
   <syscall name="inotify_rm_watch" number="5245" groups="descriptor"/>
   <syscall name="migrate_pages" number="5246" groups="memory"/>
   <syscall name="openat" number="5247" groups="descriptor,file"/>
@@ -270,7 +270,7 @@
   <syscall name="faccessat" number="5259" groups="descriptor,file"/>
   <syscall name="pselect6" number="5260" groups="descriptor"/>
   <syscall name="ppoll" number="5261" groups="descriptor"/>
-  <syscall name="unshare" number="5262" groups="process"/>
+  <syscall name="unshare" number="5262"/>
   <syscall name="splice" number="5263" groups="descriptor"/>
   <syscall name="sync_file_range" number="5264" groups="descriptor"/>
   <syscall name="tee" number="5265" groups="descriptor"/>
@@ -319,47 +319,47 @@
   <syscall name="getdents64" number="5308" groups="descriptor"/>
   <syscall name="sched_setattr" number="5309"/>
   <syscall name="sched_getattr" number="5310"/>
-  <syscall name="renameat2" number="5311"/>
+  <syscall name="renameat2" number="5311" groups="descriptor,file"/>
   <syscall name="seccomp" number="5312"/>
   <syscall name="getrandom" number="5313"/>
-  <syscall name="memfd_create" number="5314"/>
-  <syscall name="bpf" number="5315"/>
-  <syscall name="execveat" number="5316"/>
-  <syscall name="userfaultfd" number="5317"/>
+  <syscall name="memfd_create" number="5314" groups="descriptor"/>
+  <syscall name="bpf" number="5315" groups="descriptor"/>
+  <syscall name="execveat" number="5316" groups="descriptor,file,process"/>
+  <syscall name="userfaultfd" number="5317" groups="descriptor"/>
   <syscall name="membarrier" number="5318"/>
-  <syscall name="mlock2" number="5319"/>
-  <syscall name="copy_file_range" number="5320"/>
-  <syscall name="preadv2" number="5321"/>
-  <syscall name="pwritev2" number="5322"/>
-  <syscall name="pkey_mprotect" number="5323"/>
+  <syscall name="mlock2" number="5319" groups="memory"/>
+  <syscall name="copy_file_range" number="5320" groups="descriptor"/>
+  <syscall name="preadv2" number="5321" groups="descriptor"/>
+  <syscall name="pwritev2" number="5322" groups="descriptor"/>
+  <syscall name="pkey_mprotect" number="5323" groups="memory"/>
   <syscall name="pkey_alloc" number="5324"/>
   <syscall name="pkey_free" number="5325"/>
-  <syscall name="statx" number="5326"/>
+  <syscall name="statx" number="5326" groups="descriptor,file"/>
   <syscall name="rseq" number="5327"/>
   <syscall name="io_pgetevents" number="5328"/>
-  <syscall name="pidfd_send_signal" number="5424"/>
-  <syscall name="io_uring_setup" number="5425"/>
-  <syscall name="io_uring_enter" number="5426"/>
-  <syscall name="io_uring_register" number="5427"/>
-  <syscall name="open_tree" number="5428"/>
-  <syscall name="move_mount" number="5429"/>
-  <syscall name="fsopen" number="5430"/>
-  <syscall name="fsconfig" number="5431"/>
-  <syscall name="fsmount" number="5432"/>
-  <syscall name="fspick" number="5433"/>
-  <syscall name="pidfd_open" number="5434"/>
-  <syscall name="clone3" number="5435"/>
+  <syscall name="pidfd_send_signal" number="5424" groups="descriptor,signal,process"/>
+  <syscall name="io_uring_setup" number="5425" groups="descriptor"/>
+  <syscall name="io_uring_enter" number="5426" groups="descriptor,signal"/>
+  <syscall name="io_uring_register" number="5427" groups="descriptor,memory"/>
+  <syscall name="open_tree" number="5428" groups="descriptor,file"/>
+  <syscall name="move_mount" number="5429" groups="descriptor,file"/>
+  <syscall name="fsopen" number="5430" groups="descriptor"/>
+  <syscall name="fsconfig" number="5431" groups="descriptor,file"/>
+  <syscall name="fsmount" number="5432" groups="descriptor"/>
+  <syscall name="fspick" number="5433" groups="descriptor,file"/>
+  <syscall name="pidfd_open" number="5434" groups="descriptor"/>
+  <syscall name="clone3" number="5435" groups="process"/>
   <syscall name="close_range" number="5436"/>
-  <syscall name="openat2" number="5437"/>
-  <syscall name="pidfd_getfd" number="5438"/>
-  <syscall name="faccessat2" number="5439"/>
-  <syscall name="process_madvise" number="5440"/>
-  <syscall name="epoll_pwait2" number="5441"/>
-  <syscall name="mount_setattr" number="5442"/>
-  <syscall name="quotactl_fd" number="5443"/>
-  <syscall name="landlock_create_ruleset" number="5444"/>
-  <syscall name="landlock_add_rule" number="5445"/>
-  <syscall name="landlock_restrict_self" number="5446"/>
-  <syscall name="process_mrelease" number="5448"/>
+  <syscall name="openat2" number="5437" groups="descriptor,file"/>
+  <syscall name="pidfd_getfd" number="5438" groups="descriptor"/>
+  <syscall name="faccessat2" number="5439" groups="descriptor,file"/>
+  <syscall name="process_madvise" number="5440" groups="descriptor"/>
+  <syscall name="epoll_pwait2" number="5441" groups="descriptor"/>
+  <syscall name="mount_setattr" number="5442" groups="descriptor,file"/>
+  <syscall name="quotactl_fd" number="5443" groups="descriptor"/>
+  <syscall name="landlock_create_ruleset" number="5444" groups="descriptor"/>
+  <syscall name="landlock_add_rule" number="5445" groups="descriptor"/>
+  <syscall name="landlock_restrict_self" number="5446" groups="descriptor"/>
+  <syscall name="process_mrelease" number="5448" groups="descriptor"/>
   <syscall name="futex_waitv" number="5449"/>
 </syscalls_info>
diff --git a/gdb/syscalls/mips-o32-linux.xml b/gdb/syscalls/mips-o32-linux.xml
index 98235dbb513..01b815ad64d 100644
--- a/gdb/syscalls/mips-o32-linux.xml
+++ b/gdb/syscalls/mips-o32-linux.xml
@@ -46,7 +46,7 @@
   <syscall name="nice" number="4034"/>
   <syscall name="ftime" number="4035"/>
   <syscall name="sync" number="4036"/>
-  <syscall name="kill" number="4037" groups="signal"/>
+  <syscall name="kill" number="4037" groups="signal,process"/>
   <syscall name="rename" number="4038" groups="file"/>
   <syscall name="mkdir" number="4039" groups="file"/>
   <syscall name="rmdir" number="4040" groups="file"/>
@@ -152,7 +152,7 @@
   <syscall name="msync" number="4144" groups="memory"/>
   <syscall name="readv" number="4145" groups="descriptor"/>
   <syscall name="writev" number="4146" groups="descriptor"/>
-  <syscall name="cacheflush" number="4147"/>
+  <syscall name="cacheflush" number="4147" groups="memory"/>
   <syscall name="cachectl" number="4148"/>
   <syscall name="sysmips" number="4149"/>
   <syscall name="getsid" number="4151"/>
@@ -202,7 +202,7 @@
   <syscall name="rt_sigprocmask" number="4195" groups="signal"/>
   <syscall name="rt_sigpending" number="4196" groups="signal"/>
   <syscall name="rt_sigtimedwait" number="4197" groups="signal"/>
-  <syscall name="rt_sigqueueinfo" number="4198" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="4198" groups="signal,process"/>
   <syscall name="rt_sigsuspend" number="4199" groups="signal"/>
   <syscall name="pread64" number="4200" groups="descriptor"/>
   <syscall name="pwrite64" number="4201" groups="descriptor"/>
@@ -212,8 +212,8 @@
   <syscall name="capset" number="4205"/>
   <syscall name="sigaltstack" number="4206" groups="signal"/>
   <syscall name="sendfile" number="4207" groups="descriptor,network"/>
-  <syscall name="getpmsg" number="4208"/>
-  <syscall name="putpmsg" number="4209"/>
+  <syscall name="getpmsg" number="4208" groups="network"/>
+  <syscall name="putpmsg" number="4209" groups="network"/>
   <syscall name="mmap2" number="4210" groups="descriptor,memory"/>
   <syscall name="truncate64" number="4211" groups="file"/>
   <syscall name="ftruncate64" number="4212" groups="descriptor"/>
@@ -239,13 +239,13 @@
   <syscall name="removexattr" number="4233" groups="file"/>
   <syscall name="lremovexattr" number="4234" groups="file"/>
   <syscall name="fremovexattr" number="4235" groups="descriptor"/>
-  <syscall name="tkill" number="4236" groups="signal"/>
+  <syscall name="tkill" number="4236" groups="signal,process"/>
   <syscall name="sendfile64" number="4237" groups="descriptor,network"/>
   <syscall name="futex" number="4238"/>
   <syscall name="sched_setaffinity" number="4239"/>
   <syscall name="sched_getaffinity" number="4240"/>
-  <syscall name="io_setup" number="4241"/>
-  <syscall name="io_destroy" number="4242"/>
+  <syscall name="io_setup" number="4241" groups="memory"/>
+  <syscall name="io_destroy" number="4242" groups="memory"/>
   <syscall name="io_getevents" number="4243"/>
   <syscall name="io_submit" number="4244"/>
   <syscall name="io_cancel" number="4245"/>
@@ -269,17 +269,17 @@
   <syscall name="clock_gettime" number="4263"/>
   <syscall name="clock_getres" number="4264"/>
   <syscall name="clock_nanosleep" number="4265"/>
-  <syscall name="tgkill" number="4266" groups="signal"/>
+  <syscall name="tgkill" number="4266" groups="signal,process"/>
   <syscall name="utimes" number="4267" groups="file"/>
   <syscall name="mbind" number="4268" groups="memory"/>
   <syscall name="get_mempolicy" number="4269" groups="memory"/>
   <syscall name="set_mempolicy" number="4270" groups="memory"/>
-  <syscall name="mq_open" number="4271"/>
+  <syscall name="mq_open" number="4271" groups="descriptor"/>
   <syscall name="mq_unlink" number="4272"/>
-  <syscall name="mq_timedsend" number="4273"/>
-  <syscall name="mq_timedreceive" number="4274"/>
-  <syscall name="mq_notify" number="4275"/>
-  <syscall name="mq_getsetattr" number="4276"/>
+  <syscall name="mq_timedsend" number="4273" groups="descriptor"/>
+  <syscall name="mq_timedreceive" number="4274" groups="descriptor"/>
+  <syscall name="mq_notify" number="4275" groups="descriptor"/>
+  <syscall name="mq_getsetattr" number="4276" groups="descriptor"/>
   <syscall name="vserver" number="4277"/>
   <syscall name="waitid" number="4278" groups="process"/>
   <syscall name="add_key" number="4280"/>
@@ -287,7 +287,7 @@
   <syscall name="keyctl" number="4282"/>
   <syscall name="set_thread_area" number="4283"/>
   <syscall name="inotify_init" number="4284" groups="descriptor"/>
-  <syscall name="inotify_add_watch" number="4285" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="4285" groups="descriptor,file"/>
   <syscall name="inotify_rm_watch" number="4286" groups="descriptor"/>
   <syscall name="migrate_pages" number="4287" groups="memory"/>
   <syscall name="openat" number="4288" groups="descriptor,file"/>
@@ -305,7 +305,7 @@
   <syscall name="faccessat" number="4300" groups="descriptor,file"/>
   <syscall name="pselect6" number="4301" groups="descriptor"/>
   <syscall name="ppoll" number="4302" groups="descriptor"/>
-  <syscall name="unshare" number="4303" groups="process"/>
+  <syscall name="unshare" number="4303"/>
   <syscall name="splice" number="4304" groups="descriptor"/>
   <syscall name="sync_file_range" number="4305" groups="descriptor"/>
   <syscall name="tee" number="4306" groups="descriptor"/>
@@ -353,22 +353,22 @@
   <syscall name="finit_module" number="4348" groups="descriptor"/>
   <syscall name="sched_setattr" number="4349"/>
   <syscall name="sched_getattr" number="4350"/>
-  <syscall name="renameat2" number="4351"/>
+  <syscall name="renameat2" number="4351" groups="descriptor,file"/>
   <syscall name="seccomp" number="4352"/>
   <syscall name="getrandom" number="4353"/>
-  <syscall name="memfd_create" number="4354"/>
-  <syscall name="bpf" number="4355"/>
-  <syscall name="execveat" number="4356"/>
-  <syscall name="userfaultfd" number="4357"/>
+  <syscall name="memfd_create" number="4354" groups="descriptor"/>
+  <syscall name="bpf" number="4355" groups="descriptor"/>
+  <syscall name="execveat" number="4356" groups="descriptor,file,process"/>
+  <syscall name="userfaultfd" number="4357" groups="descriptor"/>
   <syscall name="membarrier" number="4358"/>
-  <syscall name="mlock2" number="4359"/>
-  <syscall name="copy_file_range" number="4360"/>
-  <syscall name="preadv2" number="4361"/>
-  <syscall name="pwritev2" number="4362"/>
-  <syscall name="pkey_mprotect" number="4363"/>
+  <syscall name="mlock2" number="4359" groups="memory"/>
+  <syscall name="copy_file_range" number="4360" groups="descriptor"/>
+  <syscall name="preadv2" number="4361" groups="descriptor"/>
+  <syscall name="pwritev2" number="4362" groups="descriptor"/>
+  <syscall name="pkey_mprotect" number="4363" groups="memory"/>
   <syscall name="pkey_alloc" number="4364"/>
   <syscall name="pkey_free" number="4365"/>
-  <syscall name="statx" number="4366"/>
+  <syscall name="statx" number="4366" groups="descriptor,file"/>
   <syscall name="rseq" number="4367"/>
   <syscall name="io_pgetevents" number="4368"/>
   <syscall name="semget" number="4393" groups="ipc"/>
@@ -388,43 +388,43 @@
   <syscall name="clock_nanosleep_time64" number="4407"/>
   <syscall name="timer_gettime64" number="4408"/>
   <syscall name="timer_settime64" number="4409"/>
-  <syscall name="timerfd_gettime64" number="4410"/>
-  <syscall name="timerfd_settime64" number="4411"/>
-  <syscall name="utimensat_time64" number="4412"/>
-  <syscall name="pselect6_time64" number="4413"/>
-  <syscall name="ppoll_time64" number="4414"/>
+  <syscall name="timerfd_gettime64" number="4410" groups="descriptor"/>
+  <syscall name="timerfd_settime64" number="4411" groups="descriptor"/>
+  <syscall name="utimensat_time64" number="4412" groups="descriptor,file"/>
+  <syscall name="pselect6_time64" number="4413" groups="descriptor"/>
+  <syscall name="ppoll_time64" number="4414" groups="descriptor"/>
   <syscall name="io_pgetevents_time64" number="4416"/>
-  <syscall name="recvmmsg_time64" number="4417"/>
-  <syscall name="mq_timedsend_time64" number="4418"/>
-  <syscall name="mq_timedreceive_time64" number="4419"/>
-  <syscall name="semtimedop_time64" number="4420"/>
-  <syscall name="rt_sigtimedwait_time64" number="4421"/>
+  <syscall name="recvmmsg_time64" number="4417" groups="network"/>
+  <syscall name="mq_timedsend_time64" number="4418" groups="descriptor"/>
+  <syscall name="mq_timedreceive_time64" number="4419" groups="descriptor"/>
+  <syscall name="semtimedop_time64" number="4420" groups="ipc"/>
+  <syscall name="rt_sigtimedwait_time64" number="4421" groups="signal"/>
   <syscall name="futex_time64" number="4422"/>
   <syscall name="sched_rr_get_interval_time64" number="4423"/>
-  <syscall name="pidfd_send_signal" number="4424"/>
-  <syscall name="io_uring_setup" number="4425"/>
-  <syscall name="io_uring_enter" number="4426"/>
-  <syscall name="io_uring_register" number="4427"/>
-  <syscall name="open_tree" number="4428"/>
-  <syscall name="move_mount" number="4429"/>
-  <syscall name="fsopen" number="4430"/>
-  <syscall name="fsconfig" number="4431"/>
-  <syscall name="fsmount" number="4432"/>
-  <syscall name="fspick" number="4433"/>
-  <syscall name="pidfd_open" number="4434"/>
-  <syscall name="clone3" number="4435"/>
+  <syscall name="pidfd_send_signal" number="4424" groups="descriptor,signal,process"/>
+  <syscall name="io_uring_setup" number="4425" groups="descriptor"/>
+  <syscall name="io_uring_enter" number="4426" groups="descriptor,signal"/>
+  <syscall name="io_uring_register" number="4427" groups="descriptor,memory"/>
+  <syscall name="open_tree" number="4428" groups="descriptor,file"/>
+  <syscall name="move_mount" number="4429" groups="descriptor,file"/>
+  <syscall name="fsopen" number="4430" groups="descriptor"/>
+  <syscall name="fsconfig" number="4431" groups="descriptor,file"/>
+  <syscall name="fsmount" number="4432" groups="descriptor"/>
+  <syscall name="fspick" number="4433" groups="descriptor,file"/>
+  <syscall name="pidfd_open" number="4434" groups="descriptor"/>
+  <syscall name="clone3" number="4435" groups="process"/>
   <syscall name="close_range" number="4436"/>
-  <syscall name="openat2" number="4437"/>
-  <syscall name="pidfd_getfd" number="4438"/>
-  <syscall name="faccessat2" number="4439"/>
-  <syscall name="process_madvise" number="4440"/>
-  <syscall name="epoll_pwait2" number="4441"/>
-  <syscall name="mount_setattr" number="4442"/>
-  <syscall name="quotactl_fd" number="4443"/>
-  <syscall name="landlock_create_ruleset" number="4444"/>
-  <syscall name="landlock_add_rule" number="4445"/>
-  <syscall name="landlock_restrict_self" number="4446"/>
-  <syscall name="process_mrelease" number="4448"/>
+  <syscall name="openat2" number="4437" groups="descriptor,file"/>
+  <syscall name="pidfd_getfd" number="4438" groups="descriptor"/>
+  <syscall name="faccessat2" number="4439" groups="descriptor,file"/>
+  <syscall name="process_madvise" number="4440" groups="descriptor"/>
+  <syscall name="epoll_pwait2" number="4441" groups="descriptor"/>
+  <syscall name="mount_setattr" number="4442" groups="descriptor,file"/>
+  <syscall name="quotactl_fd" number="4443" groups="descriptor"/>
+  <syscall name="landlock_create_ruleset" number="4444" groups="descriptor"/>
+  <syscall name="landlock_add_rule" number="4445" groups="descriptor"/>
+  <syscall name="landlock_restrict_self" number="4446" groups="descriptor"/>
+  <syscall name="process_mrelease" number="4448" groups="descriptor"/>
   <syscall name="futex_waitv" number="4449"/>
-  <syscall name="set_mempolicy_home_node" number="4450"/>
+  <syscall name="set_mempolicy_home_node" number="4450" groups="memory"/>
 </syscalls_info>
diff --git a/gdb/syscalls/ppc-linux.xml b/gdb/syscalls/ppc-linux.xml
index c4a79e82e0e..c3607e66e92 100644
--- a/gdb/syscalls/ppc-linux.xml
+++ b/gdb/syscalls/ppc-linux.xml
@@ -48,7 +48,7 @@
   <syscall name="nice" number="34"/>
   <syscall name="ftime" number="35"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="kill" number="37" groups="signal,process"/>
   <syscall name="rename" number="38" groups="file"/>
   <syscall name="mkdir" number="39" groups="file"/>
   <syscall name="rmdir" number="40" groups="file"/>
@@ -188,7 +188,7 @@
   <syscall name="rt_sigprocmask" number="174" groups="signal"/>
   <syscall name="rt_sigpending" number="175" groups="signal"/>
   <syscall name="rt_sigtimedwait" number="176" groups="signal"/>
-  <syscall name="rt_sigqueueinfo" number="177" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="177" groups="signal,process"/>
   <syscall name="rt_sigsuspend" number="178" groups="signal"/>
   <syscall name="pread64" number="179" groups="descriptor"/>
   <syscall name="pwrite64" number="180" groups="descriptor"/>
@@ -198,8 +198,8 @@
   <syscall name="capset" number="184"/>
   <syscall name="sigaltstack" number="185" groups="signal"/>
   <syscall name="sendfile" number="186" groups="descriptor,network"/>
-  <syscall name="getpmsg" number="187"/>
-  <syscall name="putpmsg" number="188"/>
+  <syscall name="getpmsg" number="187" groups="network"/>
+  <syscall name="putpmsg" number="188" groups="network"/>
   <syscall name="vfork" number="189" groups="process"/>
   <syscall name="ugetrlimit" number="190"/>
   <syscall name="readahead" number="191" groups="descriptor"/>
@@ -219,7 +219,7 @@
   <syscall name="madvise" number="205" groups="memory"/>
   <syscall name="mincore" number="206" groups="memory"/>
   <syscall name="gettid" number="207"/>
-  <syscall name="tkill" number="208" groups="signal"/>
+  <syscall name="tkill" number="208" groups="signal,process"/>
   <syscall name="setxattr" number="209" groups="file"/>
   <syscall name="lsetxattr" number="210" groups="file"/>
   <syscall name="fsetxattr" number="211" groups="descriptor"/>
@@ -237,8 +237,8 @@
   <syscall name="sched_getaffinity" number="223"/>
   <syscall name="tuxcall" number="225"/>
   <syscall name="sendfile64" number="226" groups="descriptor,network"/>
-  <syscall name="io_setup" number="227"/>
-  <syscall name="io_destroy" number="228"/>
+  <syscall name="io_setup" number="227" groups="memory"/>
+  <syscall name="io_destroy" number="228" groups="memory"/>
   <syscall name="io_getevents" number="229"/>
   <syscall name="io_submit" number="230"/>
   <syscall name="io_cancel" number="231"/>
@@ -260,7 +260,7 @@
   <syscall name="clock_getres" number="247"/>
   <syscall name="clock_nanosleep" number="248"/>
   <syscall name="swapcontext" number="249"/>
-  <syscall name="tgkill" number="250" groups="signal"/>
+  <syscall name="tgkill" number="250" groups="signal,process"/>
   <syscall name="utimes" number="251" groups="file"/>
   <syscall name="statfs64" number="252" groups="file"/>
   <syscall name="fstatfs64" number="253" groups="descriptor"/>
@@ -271,12 +271,12 @@
   <syscall name="mbind" number="259" groups="memory"/>
   <syscall name="get_mempolicy" number="260" groups="memory"/>
   <syscall name="set_mempolicy" number="261" groups="memory"/>
-  <syscall name="mq_open" number="262"/>
+  <syscall name="mq_open" number="262" groups="descriptor"/>
   <syscall name="mq_unlink" number="263"/>
-  <syscall name="mq_timedsend" number="264"/>
-  <syscall name="mq_timedreceive" number="265"/>
-  <syscall name="mq_notify" number="266"/>
-  <syscall name="mq_getsetattr" number="267"/>
+  <syscall name="mq_timedsend" number="264" groups="descriptor"/>
+  <syscall name="mq_timedreceive" number="265" groups="descriptor"/>
+  <syscall name="mq_notify" number="266" groups="descriptor"/>
+  <syscall name="mq_getsetattr" number="267" groups="descriptor"/>
   <syscall name="kexec_load" number="268"/>
   <syscall name="add_key" number="269"/>
   <syscall name="request_key" number="270"/>
@@ -285,13 +285,13 @@
   <syscall name="ioprio_set" number="273"/>
   <syscall name="ioprio_get" number="274"/>
   <syscall name="inotify_init" number="275" groups="descriptor"/>
-  <syscall name="inotify_add_watch" number="276" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="276" groups="descriptor,file"/>
   <syscall name="inotify_rm_watch" number="277" groups="descriptor"/>
   <syscall name="spu_run" number="278"/>
   <syscall name="spu_create" number="279"/>
   <syscall name="pselect6" number="280" groups="descriptor"/>
   <syscall name="ppoll" number="281" groups="descriptor"/>
-  <syscall name="unshare" number="282" groups="process"/>
+  <syscall name="unshare" number="282"/>
   <syscall name="splice" number="283" groups="descriptor"/>
   <syscall name="tee" number="284" groups="descriptor"/>
   <syscall name="vmsplice" number="285" groups="descriptor"/>
@@ -317,7 +317,7 @@
   <syscall name="signalfd" number="305" groups="descriptor,signal"/>
   <syscall name="timerfd_create" number="306" groups="descriptor"/>
   <syscall name="eventfd" number="307" groups="descriptor"/>
-  <syscall name="sync_file_range2" number="308"/>
+  <syscall name="sync_file_range2" number="308" groups="descriptor"/>
   <syscall name="fallocate" number="309" groups="descriptor"/>
   <syscall name="subpage_prot" number="310"/>
   <syscall name="timerfd_settime" number="311" groups="descriptor"/>
@@ -366,24 +366,24 @@
   <syscall name="kcmp" number="354"/>
   <syscall name="sched_setattr" number="355"/>
   <syscall name="sched_getattr" number="356"/>
-  <syscall name="renameat2" number="357"/>
+  <syscall name="renameat2" number="357" groups="descriptor,file"/>
   <syscall name="seccomp" number="358"/>
   <syscall name="getrandom" number="359"/>
-  <syscall name="memfd_create" number="360"/>
-  <syscall name="bpf" number="361"/>
-  <syscall name="execveat" number="362"/>
+  <syscall name="memfd_create" number="360" groups="descriptor"/>
+  <syscall name="bpf" number="361" groups="descriptor"/>
+  <syscall name="execveat" number="362" groups="descriptor,file,process"/>
   <syscall name="switch_endian" number="363"/>
-  <syscall name="userfaultfd" number="364"/>
+  <syscall name="userfaultfd" number="364" groups="descriptor"/>
   <syscall name="membarrier" number="365"/>
-  <syscall name="mlock2" number="378"/>
-  <syscall name="copy_file_range" number="379"/>
-  <syscall name="preadv2" number="380"/>
-  <syscall name="pwritev2" number="381"/>
-  <syscall name="kexec_file_load" number="382"/>
-  <syscall name="statx" number="383"/>
+  <syscall name="mlock2" number="378" groups="memory"/>
+  <syscall name="copy_file_range" number="379" groups="descriptor"/>
+  <syscall name="preadv2" number="380" groups="descriptor"/>
+  <syscall name="pwritev2" number="381" groups="descriptor"/>
+  <syscall name="kexec_file_load" number="382" groups="descriptor"/>
+  <syscall name="statx" number="383" groups="descriptor,file"/>
   <syscall name="pkey_alloc" number="384"/>
   <syscall name="pkey_free" number="385"/>
-  <syscall name="pkey_mprotect" number="386"/>
+  <syscall name="pkey_mprotect" number="386" groups="memory"/>
   <syscall name="rseq" number="387"/>
   <syscall name="io_pgetevents" number="388"/>
   <syscall name="semget" number="393" groups="ipc"/>
@@ -403,43 +403,43 @@
   <syscall name="clock_nanosleep_time64" number="407"/>
   <syscall name="timer_gettime64" number="408"/>
   <syscall name="timer_settime64" number="409"/>
-  <syscall name="timerfd_gettime64" number="410"/>
-  <syscall name="timerfd_settime64" number="411"/>
-  <syscall name="utimensat_time64" number="412"/>
-  <syscall name="pselect6_time64" number="413"/>
-  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="timerfd_gettime64" number="410" groups="descriptor"/>
+  <syscall name="timerfd_settime64" number="411" groups="descriptor"/>
+  <syscall name="utimensat_time64" number="412" groups="descriptor,file"/>
+  <syscall name="pselect6_time64" number="413" groups="descriptor"/>
+  <syscall name="ppoll_time64" number="414" groups="descriptor"/>
   <syscall name="io_pgetevents_time64" number="416"/>
-  <syscall name="recvmmsg_time64" number="417"/>
-  <syscall name="mq_timedsend_time64" number="418"/>
-  <syscall name="mq_timedreceive_time64" number="419"/>
-  <syscall name="semtimedop_time64" number="420"/>
-  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="recvmmsg_time64" number="417" groups="network"/>
+  <syscall name="mq_timedsend_time64" number="418" groups="descriptor"/>
+  <syscall name="mq_timedreceive_time64" number="419" groups="descriptor"/>
+  <syscall name="semtimedop_time64" number="420" groups="ipc"/>
+  <syscall name="rt_sigtimedwait_time64" number="421" groups="signal"/>
   <syscall name="futex_time64" number="422"/>
   <syscall name="sched_rr_get_interval_time64" number="423"/>
-  <syscall name="pidfd_send_signal" number="424"/>
-  <syscall name="io_uring_setup" number="425"/>
-  <syscall name="io_uring_enter" number="426"/>
-  <syscall name="io_uring_register" number="427"/>
-  <syscall name="open_tree" number="428"/>
-  <syscall name="move_mount" number="429"/>
-  <syscall name="fsopen" number="430"/>
-  <syscall name="fsconfig" number="431"/>
-  <syscall name="fsmount" number="432"/>
-  <syscall name="fspick" number="433"/>
-  <syscall name="pidfd_open" number="434"/>
-  <syscall name="clone3" number="435"/>
+  <syscall name="pidfd_send_signal" number="424" groups="descriptor,signal,process"/>
+  <syscall name="io_uring_setup" number="425" groups="descriptor"/>
+  <syscall name="io_uring_enter" number="426" groups="descriptor,signal"/>
+  <syscall name="io_uring_register" number="427" groups="descriptor,memory"/>
+  <syscall name="open_tree" number="428" groups="descriptor,file"/>
+  <syscall name="move_mount" number="429" groups="descriptor,file"/>
+  <syscall name="fsopen" number="430" groups="descriptor"/>
+  <syscall name="fsconfig" number="431" groups="descriptor,file"/>
+  <syscall name="fsmount" number="432" groups="descriptor"/>
+  <syscall name="fspick" number="433" groups="descriptor,file"/>
+  <syscall name="pidfd_open" number="434" groups="descriptor"/>
+  <syscall name="clone3" number="435" groups="process"/>
   <syscall name="close_range" number="436"/>
-  <syscall name="openat2" number="437"/>
-  <syscall name="pidfd_getfd" number="438"/>
-  <syscall name="faccessat2" number="439"/>
-  <syscall name="process_madvise" number="440"/>
-  <syscall name="epoll_pwait2" number="441"/>
-  <syscall name="mount_setattr" number="442"/>
-  <syscall name="quotactl_fd" number="443"/>
-  <syscall name="landlock_create_ruleset" number="444"/>
-  <syscall name="landlock_add_rule" number="445"/>
-  <syscall name="landlock_restrict_self" number="446"/>
-  <syscall name="process_mrelease" number="448"/>
+  <syscall name="openat2" number="437" groups="descriptor,file"/>
+  <syscall name="pidfd_getfd" number="438" groups="descriptor"/>
+  <syscall name="faccessat2" number="439" groups="descriptor,file"/>
+  <syscall name="process_madvise" number="440" groups="descriptor"/>
+  <syscall name="epoll_pwait2" number="441" groups="descriptor"/>
+  <syscall name="mount_setattr" number="442" groups="descriptor,file"/>
+  <syscall name="quotactl_fd" number="443" groups="descriptor"/>
+  <syscall name="landlock_create_ruleset" number="444" groups="descriptor"/>
+  <syscall name="landlock_add_rule" number="445" groups="descriptor"/>
+  <syscall name="landlock_restrict_self" number="446" groups="descriptor"/>
+  <syscall name="process_mrelease" number="448" groups="descriptor"/>
   <syscall name="futex_waitv" number="449"/>
-  <syscall name="set_mempolicy_home_node" number="450"/>
+  <syscall name="set_mempolicy_home_node" number="450" groups="memory"/>
 </syscalls_info>
diff --git a/gdb/syscalls/ppc64-linux.xml b/gdb/syscalls/ppc64-linux.xml
index 233c7c1b47c..1294e9f520d 100644
--- a/gdb/syscalls/ppc64-linux.xml
+++ b/gdb/syscalls/ppc64-linux.xml
@@ -48,7 +48,7 @@
   <syscall name="nice" number="34"/>
   <syscall name="ftime" number="35"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="kill" number="37" groups="signal,process"/>
   <syscall name="rename" number="38" groups="file"/>
   <syscall name="mkdir" number="39" groups="file"/>
   <syscall name="rmdir" number="40" groups="file"/>
@@ -188,7 +188,7 @@
   <syscall name="rt_sigprocmask" number="174" groups="signal"/>
   <syscall name="rt_sigpending" number="175" groups="signal"/>
   <syscall name="rt_sigtimedwait" number="176" groups="signal"/>
-  <syscall name="rt_sigqueueinfo" number="177" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="177" groups="signal,process"/>
   <syscall name="rt_sigsuspend" number="178" groups="signal"/>
   <syscall name="pread64" number="179" groups="descriptor"/>
   <syscall name="pwrite64" number="180" groups="descriptor"/>
@@ -198,8 +198,8 @@
   <syscall name="capset" number="184"/>
   <syscall name="sigaltstack" number="185" groups="signal"/>
   <syscall name="sendfile" number="186" groups="descriptor,network"/>
-  <syscall name="getpmsg" number="187"/>
-  <syscall name="putpmsg" number="188"/>
+  <syscall name="getpmsg" number="187" groups="network"/>
+  <syscall name="putpmsg" number="188" groups="network"/>
   <syscall name="vfork" number="189" groups="process"/>
   <syscall name="ugetrlimit" number="190"/>
   <syscall name="readahead" number="191" groups="descriptor"/>
@@ -212,7 +212,7 @@
   <syscall name="madvise" number="205" groups="memory"/>
   <syscall name="mincore" number="206" groups="memory"/>
   <syscall name="gettid" number="207"/>
-  <syscall name="tkill" number="208" groups="signal"/>
+  <syscall name="tkill" number="208" groups="signal,process"/>
   <syscall name="setxattr" number="209" groups="file"/>
   <syscall name="lsetxattr" number="210" groups="file"/>
   <syscall name="fsetxattr" number="211" groups="descriptor"/>
@@ -229,8 +229,8 @@
   <syscall name="sched_setaffinity" number="222"/>
   <syscall name="sched_getaffinity" number="223"/>
   <syscall name="tuxcall" number="225"/>
-  <syscall name="io_setup" number="227"/>
-  <syscall name="io_destroy" number="228"/>
+  <syscall name="io_setup" number="227" groups="memory"/>
+  <syscall name="io_destroy" number="228" groups="memory"/>
   <syscall name="io_getevents" number="229"/>
   <syscall name="io_submit" number="230"/>
   <syscall name="io_cancel" number="231"/>
@@ -252,7 +252,7 @@
   <syscall name="clock_getres" number="247"/>
   <syscall name="clock_nanosleep" number="248"/>
   <syscall name="swapcontext" number="249"/>
-  <syscall name="tgkill" number="250" groups="signal"/>
+  <syscall name="tgkill" number="250" groups="signal,process"/>
   <syscall name="utimes" number="251" groups="file"/>
   <syscall name="statfs64" number="252" groups="file"/>
   <syscall name="fstatfs64" number="253" groups="descriptor"/>
@@ -262,12 +262,12 @@
   <syscall name="mbind" number="259" groups="memory"/>
   <syscall name="get_mempolicy" number="260" groups="memory"/>
   <syscall name="set_mempolicy" number="261" groups="memory"/>
-  <syscall name="mq_open" number="262"/>
+  <syscall name="mq_open" number="262" groups="descriptor"/>
   <syscall name="mq_unlink" number="263"/>
-  <syscall name="mq_timedsend" number="264"/>
-  <syscall name="mq_timedreceive" number="265"/>
-  <syscall name="mq_notify" number="266"/>
-  <syscall name="mq_getsetattr" number="267"/>
+  <syscall name="mq_timedsend" number="264" groups="descriptor"/>
+  <syscall name="mq_timedreceive" number="265" groups="descriptor"/>
+  <syscall name="mq_notify" number="266" groups="descriptor"/>
+  <syscall name="mq_getsetattr" number="267" groups="descriptor"/>
   <syscall name="kexec_load" number="268"/>
   <syscall name="add_key" number="269"/>
   <syscall name="request_key" number="270"/>
@@ -276,13 +276,13 @@
   <syscall name="ioprio_set" number="273"/>
   <syscall name="ioprio_get" number="274"/>
   <syscall name="inotify_init" number="275" groups="descriptor"/>
-  <syscall name="inotify_add_watch" number="276" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="276" groups="descriptor,file"/>
   <syscall name="inotify_rm_watch" number="277" groups="descriptor"/>
   <syscall name="spu_run" number="278"/>
   <syscall name="spu_create" number="279"/>
   <syscall name="pselect6" number="280" groups="descriptor"/>
   <syscall name="ppoll" number="281" groups="descriptor"/>
-  <syscall name="unshare" number="282" groups="process"/>
+  <syscall name="unshare" number="282"/>
   <syscall name="splice" number="283" groups="descriptor"/>
   <syscall name="tee" number="284" groups="descriptor"/>
   <syscall name="vmsplice" number="285" groups="descriptor"/>
@@ -308,7 +308,7 @@
   <syscall name="signalfd" number="305" groups="descriptor,signal"/>
   <syscall name="timerfd_create" number="306" groups="descriptor"/>
   <syscall name="eventfd" number="307" groups="descriptor"/>
-  <syscall name="sync_file_range2" number="308"/>
+  <syscall name="sync_file_range2" number="308" groups="descriptor"/>
   <syscall name="fallocate" number="309" groups="descriptor"/>
   <syscall name="subpage_prot" number="310"/>
   <syscall name="timerfd_settime" number="311" groups="descriptor"/>
@@ -357,24 +357,24 @@
   <syscall name="kcmp" number="354"/>
   <syscall name="sched_setattr" number="355"/>
   <syscall name="sched_getattr" number="356"/>
-  <syscall name="renameat2" number="357"/>
+  <syscall name="renameat2" number="357" groups="descriptor,file"/>
   <syscall name="seccomp" number="358"/>
   <syscall name="getrandom" number="359"/>
-  <syscall name="memfd_create" number="360"/>
-  <syscall name="bpf" number="361"/>
-  <syscall name="execveat" number="362"/>
+  <syscall name="memfd_create" number="360" groups="descriptor"/>
+  <syscall name="bpf" number="361" groups="descriptor"/>
+  <syscall name="execveat" number="362" groups="descriptor,file,process"/>
   <syscall name="switch_endian" number="363"/>
-  <syscall name="userfaultfd" number="364"/>
+  <syscall name="userfaultfd" number="364" groups="descriptor"/>
   <syscall name="membarrier" number="365"/>
-  <syscall name="mlock2" number="378"/>
-  <syscall name="copy_file_range" number="379"/>
-  <syscall name="preadv2" number="380"/>
-  <syscall name="pwritev2" number="381"/>
-  <syscall name="kexec_file_load" number="382"/>
-  <syscall name="statx" number="383"/>
+  <syscall name="mlock2" number="378" groups="memory"/>
+  <syscall name="copy_file_range" number="379" groups="descriptor"/>
+  <syscall name="preadv2" number="380" groups="descriptor"/>
+  <syscall name="pwritev2" number="381" groups="descriptor"/>
+  <syscall name="kexec_file_load" number="382" groups="descriptor"/>
+  <syscall name="statx" number="383" groups="descriptor,file"/>
   <syscall name="pkey_alloc" number="384"/>
   <syscall name="pkey_free" number="385"/>
-  <syscall name="pkey_mprotect" number="386"/>
+  <syscall name="pkey_mprotect" number="386" groups="memory"/>
   <syscall name="rseq" number="387"/>
   <syscall name="io_pgetevents" number="388"/>
   <syscall name="semtimedop" number="392" groups="ipc"/>
@@ -388,30 +388,30 @@
   <syscall name="msgsnd" number="400" groups="ipc"/>
   <syscall name="msgrcv" number="401" groups="ipc"/>
   <syscall name="msgctl" number="402" groups="ipc"/>
-  <syscall name="pidfd_send_signal" number="424"/>
-  <syscall name="io_uring_setup" number="425"/>
-  <syscall name="io_uring_enter" number="426"/>
-  <syscall name="io_uring_register" number="427"/>
-  <syscall name="open_tree" number="428"/>
-  <syscall name="move_mount" number="429"/>
-  <syscall name="fsopen" number="430"/>
-  <syscall name="fsconfig" number="431"/>
-  <syscall name="fsmount" number="432"/>
-  <syscall name="fspick" number="433"/>
-  <syscall name="pidfd_open" number="434"/>
-  <syscall name="clone3" number="435"/>
+  <syscall name="pidfd_send_signal" number="424" groups="descriptor,signal,process"/>
+  <syscall name="io_uring_setup" number="425" groups="descriptor"/>
+  <syscall name="io_uring_enter" number="426" groups="descriptor,signal"/>
+  <syscall name="io_uring_register" number="427" groups="descriptor,memory"/>
+  <syscall name="open_tree" number="428" groups="descriptor,file"/>
+  <syscall name="move_mount" number="429" groups="descriptor,file"/>
+  <syscall name="fsopen" number="430" groups="descriptor"/>
+  <syscall name="fsconfig" number="431" groups="descriptor,file"/>
+  <syscall name="fsmount" number="432" groups="descriptor"/>
+  <syscall name="fspick" number="433" groups="descriptor,file"/>
+  <syscall name="pidfd_open" number="434" groups="descriptor"/>
+  <syscall name="clone3" number="435" groups="process"/>
   <syscall name="close_range" number="436"/>
-  <syscall name="openat2" number="437"/>
-  <syscall name="pidfd_getfd" number="438"/>
-  <syscall name="faccessat2" number="439"/>
-  <syscall name="process_madvise" number="440"/>
-  <syscall name="epoll_pwait2" number="441"/>
-  <syscall name="mount_setattr" number="442"/>
-  <syscall name="quotactl_fd" number="443"/>
-  <syscall name="landlock_create_ruleset" number="444"/>
-  <syscall name="landlock_add_rule" number="445"/>
-  <syscall name="landlock_restrict_self" number="446"/>
-  <syscall name="process_mrelease" number="448"/>
+  <syscall name="openat2" number="437" groups="descriptor,file"/>
+  <syscall name="pidfd_getfd" number="438" groups="descriptor"/>
+  <syscall name="faccessat2" number="439" groups="descriptor,file"/>
+  <syscall name="process_madvise" number="440" groups="descriptor"/>
+  <syscall name="epoll_pwait2" number="441" groups="descriptor"/>
+  <syscall name="mount_setattr" number="442" groups="descriptor,file"/>
+  <syscall name="quotactl_fd" number="443" groups="descriptor"/>
+  <syscall name="landlock_create_ruleset" number="444" groups="descriptor"/>
+  <syscall name="landlock_add_rule" number="445" groups="descriptor"/>
+  <syscall name="landlock_restrict_self" number="446" groups="descriptor"/>
+  <syscall name="process_mrelease" number="448" groups="descriptor"/>
   <syscall name="futex_waitv" number="449"/>
-  <syscall name="set_mempolicy_home_node" number="450"/>
+  <syscall name="set_mempolicy_home_node" number="450" groups="memory"/>
 </syscalls_info>
diff --git a/gdb/syscalls/s390-linux.xml b/gdb/syscalls/s390-linux.xml
index 963e458e6ac..8ad9b878e4c 100644
--- a/gdb/syscalls/s390-linux.xml
+++ b/gdb/syscalls/s390-linux.xml
@@ -41,7 +41,7 @@
   <syscall name="access" number="33" groups="file"/>
   <syscall name="nice" number="34"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="kill" number="37" groups="signal,process"/>
   <syscall name="rename" number="38" groups="file"/>
   <syscall name="mkdir" number="39" groups="file"/>
   <syscall name="rmdir" number="40" groups="file"/>
@@ -168,7 +168,7 @@
   <syscall name="rt_sigprocmask" number="175" groups="signal"/>
   <syscall name="rt_sigpending" number="176" groups="signal"/>
   <syscall name="rt_sigtimedwait" number="177" groups="signal"/>
-  <syscall name="rt_sigqueueinfo" number="178" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="178" groups="signal,process"/>
   <syscall name="rt_sigsuspend" number="179" groups="signal"/>
   <syscall name="pread64" number="180" groups="descriptor"/>
   <syscall name="pwrite64" number="181" groups="descriptor"/>
@@ -178,8 +178,8 @@
   <syscall name="capset" number="185"/>
   <syscall name="sigaltstack" number="186" groups="signal"/>
   <syscall name="sendfile" number="187" groups="descriptor,network"/>
-  <syscall name="getpmsg" number="188"/>
-  <syscall name="putpmsg" number="189"/>
+  <syscall name="getpmsg" number="188" groups="network"/>
+  <syscall name="putpmsg" number="189" groups="network"/>
   <syscall name="vfork" number="190" groups="process"/>
   <syscall name="ugetrlimit" number="191"/>
   <syscall name="mmap2" number="192" groups="descriptor,memory"/>
@@ -227,13 +227,13 @@
   <syscall name="lremovexattr" number="234" groups="file"/>
   <syscall name="fremovexattr" number="235" groups="descriptor"/>
   <syscall name="gettid" number="236"/>
-  <syscall name="tkill" number="237" groups="signal"/>
+  <syscall name="tkill" number="237" groups="signal,process"/>
   <syscall name="futex" number="238"/>
   <syscall name="sched_setaffinity" number="239"/>
   <syscall name="sched_getaffinity" number="240"/>
-  <syscall name="tgkill" number="241" groups="signal"/>
-  <syscall name="io_setup" number="243"/>
-  <syscall name="io_destroy" number="244"/>
+  <syscall name="tgkill" number="241" groups="signal,process"/>
+  <syscall name="io_setup" number="243" groups="memory"/>
+  <syscall name="io_destroy" number="244" groups="memory"/>
   <syscall name="io_getevents" number="245"/>
   <syscall name="io_submit" number="246"/>
   <syscall name="io_cancel" number="247"/>
@@ -259,12 +259,12 @@
   <syscall name="mbind" number="268" groups="memory"/>
   <syscall name="get_mempolicy" number="269" groups="memory"/>
   <syscall name="set_mempolicy" number="270" groups="memory"/>
-  <syscall name="mq_open" number="271"/>
+  <syscall name="mq_open" number="271" groups="descriptor"/>
   <syscall name="mq_unlink" number="272"/>
-  <syscall name="mq_timedsend" number="273"/>
-  <syscall name="mq_timedreceive" number="274"/>
-  <syscall name="mq_notify" number="275"/>
-  <syscall name="mq_getsetattr" number="276"/>
+  <syscall name="mq_timedsend" number="273" groups="descriptor"/>
+  <syscall name="mq_timedreceive" number="274" groups="descriptor"/>
+  <syscall name="mq_notify" number="275" groups="descriptor"/>
+  <syscall name="mq_getsetattr" number="276" groups="descriptor"/>
   <syscall name="kexec_load" number="277"/>
   <syscall name="add_key" number="278"/>
   <syscall name="request_key" number="279"/>
@@ -273,7 +273,7 @@
   <syscall name="ioprio_set" number="282"/>
   <syscall name="ioprio_get" number="283"/>
   <syscall name="inotify_init" number="284" groups="descriptor"/>
-  <syscall name="inotify_add_watch" number="285" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="285" groups="descriptor,file"/>
   <syscall name="inotify_rm_watch" number="286" groups="descriptor"/>
   <syscall name="migrate_pages" number="287" groups="memory"/>
   <syscall name="openat" number="288" groups="descriptor,file"/>
@@ -291,7 +291,7 @@
   <syscall name="faccessat" number="300" groups="descriptor,file"/>
   <syscall name="pselect6" number="301" groups="descriptor"/>
   <syscall name="ppoll" number="302" groups="descriptor"/>
-  <syscall name="unshare" number="303" groups="process"/>
+  <syscall name="unshare" number="303"/>
   <syscall name="set_robust_list" number="304"/>
   <syscall name="get_robust_list" number="305"/>
   <syscall name="splice" number="306" groups="descriptor"/>
@@ -335,15 +335,15 @@
   <syscall name="finit_module" number="344" groups="descriptor"/>
   <syscall name="sched_setattr" number="345"/>
   <syscall name="sched_getattr" number="346"/>
-  <syscall name="renameat2" number="347"/>
+  <syscall name="renameat2" number="347" groups="descriptor,file"/>
   <syscall name="seccomp" number="348"/>
   <syscall name="getrandom" number="349"/>
-  <syscall name="memfd_create" number="350"/>
-  <syscall name="bpf" number="351"/>
+  <syscall name="memfd_create" number="350" groups="descriptor"/>
+  <syscall name="bpf" number="351" groups="descriptor"/>
   <syscall name="s390_pci_mmio_write" number="352"/>
   <syscall name="s390_pci_mmio_read" number="353"/>
-  <syscall name="execveat" number="354"/>
-  <syscall name="userfaultfd" number="355"/>
+  <syscall name="execveat" number="354" groups="descriptor,file,process"/>
+  <syscall name="userfaultfd" number="355" groups="descriptor"/>
   <syscall name="membarrier" number="356"/>
   <syscall name="recvmmsg" number="357" groups="network"/>
   <syscall name="sendmmsg" number="358" groups="network"/>
@@ -362,17 +362,17 @@
   <syscall name="recvfrom" number="371" groups="network"/>
   <syscall name="recvmsg" number="372" groups="network"/>
   <syscall name="shutdown" number="373" groups="network"/>
-  <syscall name="mlock2" number="374"/>
-  <syscall name="copy_file_range" number="375"/>
-  <syscall name="preadv2" number="376"/>
-  <syscall name="pwritev2" number="377"/>
+  <syscall name="mlock2" number="374" groups="memory"/>
+  <syscall name="copy_file_range" number="375" groups="descriptor"/>
+  <syscall name="preadv2" number="376" groups="descriptor"/>
+  <syscall name="pwritev2" number="377" groups="descriptor"/>
   <syscall name="s390_guarded_storage" number="378"/>
-  <syscall name="statx" number="379"/>
+  <syscall name="statx" number="379" groups="descriptor,file"/>
   <syscall name="s390_sthyi" number="380"/>
-  <syscall name="kexec_file_load" number="381"/>
+  <syscall name="kexec_file_load" number="381" groups="descriptor"/>
   <syscall name="io_pgetevents" number="382"/>
   <syscall name="rseq" number="383"/>
-  <syscall name="pkey_mprotect" number="384"/>
+  <syscall name="pkey_mprotect" number="384" groups="memory"/>
   <syscall name="pkey_alloc" number="385"/>
   <syscall name="pkey_free" number="386"/>
   <syscall name="semget" number="393" groups="ipc"/>
@@ -392,43 +392,43 @@
   <syscall name="clock_nanosleep_time64" number="407"/>
   <syscall name="timer_gettime64" number="408"/>
   <syscall name="timer_settime64" number="409"/>
-  <syscall name="timerfd_gettime64" number="410"/>
-  <syscall name="timerfd_settime64" number="411"/>
-  <syscall name="utimensat_time64" number="412"/>
-  <syscall name="pselect6_time64" number="413"/>
-  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="timerfd_gettime64" number="410" groups="descriptor"/>
+  <syscall name="timerfd_settime64" number="411" groups="descriptor"/>
+  <syscall name="utimensat_time64" number="412" groups="descriptor,file"/>
+  <syscall name="pselect6_time64" number="413" groups="descriptor"/>
+  <syscall name="ppoll_time64" number="414" groups="descriptor"/>
   <syscall name="io_pgetevents_time64" number="416"/>
-  <syscall name="recvmmsg_time64" number="417"/>
-  <syscall name="mq_timedsend_time64" number="418"/>
-  <syscall name="mq_timedreceive_time64" number="419"/>
-  <syscall name="semtimedop_time64" number="420"/>
-  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="recvmmsg_time64" number="417" groups="network"/>
+  <syscall name="mq_timedsend_time64" number="418" groups="descriptor"/>
+  <syscall name="mq_timedreceive_time64" number="419" groups="descriptor"/>
+  <syscall name="semtimedop_time64" number="420" groups="ipc"/>
+  <syscall name="rt_sigtimedwait_time64" number="421" groups="signal"/>
   <syscall name="futex_time64" number="422"/>
   <syscall name="sched_rr_get_interval_time64" number="423"/>
-  <syscall name="pidfd_send_signal" number="424"/>
-  <syscall name="io_uring_setup" number="425"/>
-  <syscall name="io_uring_enter" number="426"/>
-  <syscall name="io_uring_register" number="427"/>
-  <syscall name="open_tree" number="428"/>
-  <syscall name="move_mount" number="429"/>
-  <syscall name="fsopen" number="430"/>
-  <syscall name="fsconfig" number="431"/>
-  <syscall name="fsmount" number="432"/>
-  <syscall name="fspick" number="433"/>
-  <syscall name="pidfd_open" number="434"/>
-  <syscall name="clone3" number="435"/>
+  <syscall name="pidfd_send_signal" number="424" groups="descriptor,signal,process"/>
+  <syscall name="io_uring_setup" number="425" groups="descriptor"/>
+  <syscall name="io_uring_enter" number="426" groups="descriptor,signal"/>
+  <syscall name="io_uring_register" number="427" groups="descriptor,memory"/>
+  <syscall name="open_tree" number="428" groups="descriptor,file"/>
+  <syscall name="move_mount" number="429" groups="descriptor,file"/>
+  <syscall name="fsopen" number="430" groups="descriptor"/>
+  <syscall name="fsconfig" number="431" groups="descriptor,file"/>
+  <syscall name="fsmount" number="432" groups="descriptor"/>
+  <syscall name="fspick" number="433" groups="descriptor,file"/>
+  <syscall name="pidfd_open" number="434" groups="descriptor"/>
+  <syscall name="clone3" number="435" groups="process"/>
   <syscall name="close_range" number="436"/>
-  <syscall name="openat2" number="437"/>
-  <syscall name="pidfd_getfd" number="438"/>
-  <syscall name="faccessat2" number="439"/>
-  <syscall name="process_madvise" number="440"/>
-  <syscall name="epoll_pwait2" number="441"/>
-  <syscall name="mount_setattr" number="442"/>
-  <syscall name="quotactl_fd" number="443"/>
-  <syscall name="landlock_create_ruleset" number="444"/>
-  <syscall name="landlock_add_rule" number="445"/>
-  <syscall name="landlock_restrict_self" number="446"/>
-  <syscall name="process_mrelease" number="448"/>
+  <syscall name="openat2" number="437" groups="descriptor,file"/>
+  <syscall name="pidfd_getfd" number="438" groups="descriptor"/>
+  <syscall name="faccessat2" number="439" groups="descriptor,file"/>
+  <syscall name="process_madvise" number="440" groups="descriptor"/>
+  <syscall name="epoll_pwait2" number="441" groups="descriptor"/>
+  <syscall name="mount_setattr" number="442" groups="descriptor,file"/>
+  <syscall name="quotactl_fd" number="443" groups="descriptor"/>
+  <syscall name="landlock_create_ruleset" number="444" groups="descriptor"/>
+  <syscall name="landlock_add_rule" number="445" groups="descriptor"/>
+  <syscall name="landlock_restrict_self" number="446" groups="descriptor"/>
+  <syscall name="process_mrelease" number="448" groups="descriptor"/>
   <syscall name="futex_waitv" number="449"/>
-  <syscall name="set_mempolicy_home_node" number="450"/>
+  <syscall name="set_mempolicy_home_node" number="450" groups="memory"/>
 </syscalls_info>
diff --git a/gdb/syscalls/s390x-linux.xml b/gdb/syscalls/s390x-linux.xml
index b0f0cc46b73..75625ce9b1f 100644
--- a/gdb/syscalls/s390x-linux.xml
+++ b/gdb/syscalls/s390x-linux.xml
@@ -36,7 +36,7 @@
   <syscall name="access" number="33" groups="file"/>
   <syscall name="nice" number="34"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="kill" number="37" groups="signal,process"/>
   <syscall name="rename" number="38" groups="file"/>
   <syscall name="mkdir" number="39" groups="file"/>
   <syscall name="rmdir" number="40" groups="file"/>
@@ -145,7 +145,7 @@
   <syscall name="rt_sigprocmask" number="175" groups="signal"/>
   <syscall name="rt_sigpending" number="176" groups="signal"/>
   <syscall name="rt_sigtimedwait" number="177" groups="signal"/>
-  <syscall name="rt_sigqueueinfo" number="178" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="178" groups="signal,process"/>
   <syscall name="rt_sigsuspend" number="179" groups="signal"/>
   <syscall name="pread64" number="180" groups="descriptor"/>
   <syscall name="pwrite64" number="181" groups="descriptor"/>
@@ -154,8 +154,8 @@
   <syscall name="capset" number="185"/>
   <syscall name="sigaltstack" number="186" groups="signal"/>
   <syscall name="sendfile" number="187" groups="descriptor,network"/>
-  <syscall name="getpmsg" number="188"/>
-  <syscall name="putpmsg" number="189"/>
+  <syscall name="getpmsg" number="188" groups="network"/>
+  <syscall name="putpmsg" number="189" groups="network"/>
   <syscall name="vfork" number="190" groups="process"/>
   <syscall name="getrlimit" number="191"/>
   <syscall name="lchown" number="198" groups="file"/>
@@ -195,13 +195,13 @@
   <syscall name="lremovexattr" number="234" groups="file"/>
   <syscall name="fremovexattr" number="235" groups="descriptor"/>
   <syscall name="gettid" number="236"/>
-  <syscall name="tkill" number="237" groups="signal"/>
+  <syscall name="tkill" number="237" groups="signal,process"/>
   <syscall name="futex" number="238"/>
   <syscall name="sched_setaffinity" number="239"/>
   <syscall name="sched_getaffinity" number="240"/>
-  <syscall name="tgkill" number="241" groups="signal"/>
-  <syscall name="io_setup" number="243"/>
-  <syscall name="io_destroy" number="244"/>
+  <syscall name="tgkill" number="241" groups="signal,process"/>
+  <syscall name="io_setup" number="243" groups="memory"/>
+  <syscall name="io_destroy" number="244" groups="memory"/>
   <syscall name="io_getevents" number="245"/>
   <syscall name="io_submit" number="246"/>
   <syscall name="io_cancel" number="247"/>
@@ -226,12 +226,12 @@
   <syscall name="mbind" number="268" groups="memory"/>
   <syscall name="get_mempolicy" number="269" groups="memory"/>
   <syscall name="set_mempolicy" number="270" groups="memory"/>
-  <syscall name="mq_open" number="271"/>
+  <syscall name="mq_open" number="271" groups="descriptor"/>
   <syscall name="mq_unlink" number="272"/>
-  <syscall name="mq_timedsend" number="273"/>
-  <syscall name="mq_timedreceive" number="274"/>
-  <syscall name="mq_notify" number="275"/>
-  <syscall name="mq_getsetattr" number="276"/>
+  <syscall name="mq_timedsend" number="273" groups="descriptor"/>
+  <syscall name="mq_timedreceive" number="274" groups="descriptor"/>
+  <syscall name="mq_notify" number="275" groups="descriptor"/>
+  <syscall name="mq_getsetattr" number="276" groups="descriptor"/>
   <syscall name="kexec_load" number="277"/>
   <syscall name="add_key" number="278"/>
   <syscall name="request_key" number="279"/>
@@ -240,7 +240,7 @@
   <syscall name="ioprio_set" number="282"/>
   <syscall name="ioprio_get" number="283"/>
   <syscall name="inotify_init" number="284" groups="descriptor"/>
-  <syscall name="inotify_add_watch" number="285" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="285" groups="descriptor,file"/>
   <syscall name="inotify_rm_watch" number="286" groups="descriptor"/>
   <syscall name="migrate_pages" number="287" groups="memory"/>
   <syscall name="openat" number="288" groups="descriptor,file"/>
@@ -258,7 +258,7 @@
   <syscall name="faccessat" number="300" groups="descriptor,file"/>
   <syscall name="pselect6" number="301" groups="descriptor"/>
   <syscall name="ppoll" number="302" groups="descriptor"/>
-  <syscall name="unshare" number="303" groups="process"/>
+  <syscall name="unshare" number="303"/>
   <syscall name="set_robust_list" number="304"/>
   <syscall name="get_robust_list" number="305"/>
   <syscall name="splice" number="306" groups="descriptor"/>
@@ -302,15 +302,15 @@
   <syscall name="finit_module" number="344" groups="descriptor"/>
   <syscall name="sched_setattr" number="345"/>
   <syscall name="sched_getattr" number="346"/>
-  <syscall name="renameat2" number="347"/>
+  <syscall name="renameat2" number="347" groups="descriptor,file"/>
   <syscall name="seccomp" number="348"/>
   <syscall name="getrandom" number="349"/>
-  <syscall name="memfd_create" number="350"/>
-  <syscall name="bpf" number="351"/>
+  <syscall name="memfd_create" number="350" groups="descriptor"/>
+  <syscall name="bpf" number="351" groups="descriptor"/>
   <syscall name="s390_pci_mmio_write" number="352"/>
   <syscall name="s390_pci_mmio_read" number="353"/>
-  <syscall name="execveat" number="354"/>
-  <syscall name="userfaultfd" number="355"/>
+  <syscall name="execveat" number="354" groups="descriptor,file,process"/>
+  <syscall name="userfaultfd" number="355" groups="descriptor"/>
   <syscall name="membarrier" number="356"/>
   <syscall name="recvmmsg" number="357" groups="network"/>
   <syscall name="sendmmsg" number="358" groups="network"/>
@@ -329,17 +329,17 @@
   <syscall name="recvfrom" number="371" groups="network"/>
   <syscall name="recvmsg" number="372" groups="network"/>
   <syscall name="shutdown" number="373" groups="network"/>
-  <syscall name="mlock2" number="374"/>
-  <syscall name="copy_file_range" number="375"/>
-  <syscall name="preadv2" number="376"/>
-  <syscall name="pwritev2" number="377"/>
+  <syscall name="mlock2" number="374" groups="memory"/>
+  <syscall name="copy_file_range" number="375" groups="descriptor"/>
+  <syscall name="preadv2" number="376" groups="descriptor"/>
+  <syscall name="pwritev2" number="377" groups="descriptor"/>
   <syscall name="s390_guarded_storage" number="378"/>
-  <syscall name="statx" number="379"/>
+  <syscall name="statx" number="379" groups="descriptor,file"/>
   <syscall name="s390_sthyi" number="380"/>
-  <syscall name="kexec_file_load" number="381"/>
+  <syscall name="kexec_file_load" number="381" groups="descriptor"/>
   <syscall name="io_pgetevents" number="382"/>
   <syscall name="rseq" number="383"/>
-  <syscall name="pkey_mprotect" number="384"/>
+  <syscall name="pkey_mprotect" number="384" groups="memory"/>
   <syscall name="pkey_alloc" number="385"/>
   <syscall name="pkey_free" number="386"/>
   <syscall name="semtimedop" number="392" groups="ipc"/>
@@ -353,30 +353,30 @@
   <syscall name="msgsnd" number="400" groups="ipc"/>
   <syscall name="msgrcv" number="401" groups="ipc"/>
   <syscall name="msgctl" number="402" groups="ipc"/>
-  <syscall name="pidfd_send_signal" number="424"/>
-  <syscall name="io_uring_setup" number="425"/>
-  <syscall name="io_uring_enter" number="426"/>
-  <syscall name="io_uring_register" number="427"/>
-  <syscall name="open_tree" number="428"/>
-  <syscall name="move_mount" number="429"/>
-  <syscall name="fsopen" number="430"/>
-  <syscall name="fsconfig" number="431"/>
-  <syscall name="fsmount" number="432"/>
-  <syscall name="fspick" number="433"/>
-  <syscall name="pidfd_open" number="434"/>
-  <syscall name="clone3" number="435"/>
+  <syscall name="pidfd_send_signal" number="424" groups="descriptor,signal,process"/>
+  <syscall name="io_uring_setup" number="425" groups="descriptor"/>
+  <syscall name="io_uring_enter" number="426" groups="descriptor,signal"/>
+  <syscall name="io_uring_register" number="427" groups="descriptor,memory"/>
+  <syscall name="open_tree" number="428" groups="descriptor,file"/>
+  <syscall name="move_mount" number="429" groups="descriptor,file"/>
+  <syscall name="fsopen" number="430" groups="descriptor"/>
+  <syscall name="fsconfig" number="431" groups="descriptor,file"/>
+  <syscall name="fsmount" number="432" groups="descriptor"/>
+  <syscall name="fspick" number="433" groups="descriptor,file"/>
+  <syscall name="pidfd_open" number="434" groups="descriptor"/>
+  <syscall name="clone3" number="435" groups="process"/>
   <syscall name="close_range" number="436"/>
-  <syscall name="openat2" number="437"/>
-  <syscall name="pidfd_getfd" number="438"/>
-  <syscall name="faccessat2" number="439"/>
-  <syscall name="process_madvise" number="440"/>
-  <syscall name="epoll_pwait2" number="441"/>
-  <syscall name="mount_setattr" number="442"/>
-  <syscall name="quotactl_fd" number="443"/>
-  <syscall name="landlock_create_ruleset" number="444"/>
-  <syscall name="landlock_add_rule" number="445"/>
-  <syscall name="landlock_restrict_self" number="446"/>
-  <syscall name="process_mrelease" number="448"/>
+  <syscall name="openat2" number="437" groups="descriptor,file"/>
+  <syscall name="pidfd_getfd" number="438" groups="descriptor"/>
+  <syscall name="faccessat2" number="439" groups="descriptor,file"/>
+  <syscall name="process_madvise" number="440" groups="descriptor"/>
+  <syscall name="epoll_pwait2" number="441" groups="descriptor"/>
+  <syscall name="mount_setattr" number="442" groups="descriptor,file"/>
+  <syscall name="quotactl_fd" number="443" groups="descriptor"/>
+  <syscall name="landlock_create_ruleset" number="444" groups="descriptor"/>
+  <syscall name="landlock_add_rule" number="445" groups="descriptor"/>
+  <syscall name="landlock_restrict_self" number="446" groups="descriptor"/>
+  <syscall name="process_mrelease" number="448" groups="descriptor"/>
   <syscall name="futex_waitv" number="449"/>
-  <syscall name="set_mempolicy_home_node" number="450"/>
+  <syscall name="set_mempolicy_home_node" number="450" groups="memory"/>
 </syscalls_info>
diff --git a/gdb/syscalls/sparc-linux.xml b/gdb/syscalls/sparc-linux.xml
index fc146faa392..1de4fbb990b 100644
--- a/gdb/syscalls/sparc-linux.xml
+++ b/gdb/syscalls/sparc-linux.xml
@@ -48,7 +48,7 @@
   <syscall name="nice" number="34"/>
   <syscall name="chown32" number="35" groups="file"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="kill" number="37" groups="signal,process"/>
   <syscall name="stat" number="38" groups="file"/>
   <syscall name="sendfile" number="39" groups="descriptor,network"/>
   <syscall name="lstat" number="40" groups="file"/>
@@ -116,7 +116,7 @@
   <syscall name="rt_sigprocmask" number="103" groups="signal"/>
   <syscall name="rt_sigpending" number="104" groups="signal"/>
   <syscall name="rt_sigtimedwait" number="105" groups="signal"/>
-  <syscall name="rt_sigqueueinfo" number="106" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="106" groups="signal,process"/>
   <syscall name="rt_sigsuspend" number="107" groups="signal"/>
   <syscall name="setresuid32" number="108"/>
   <syscall name="getresuid32" number="109"/>
@@ -162,7 +162,7 @@
   <syscall name="pciconfig_write" number="149"/>
   <syscall name="getsockname" number="150" groups="network"/>
   <syscall name="inotify_init" number="151" groups="descriptor"/>
-  <syscall name="inotify_add_watch" number="152" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="152" groups="descriptor,file"/>
   <syscall name="poll" number="153" groups="descriptor"/>
   <syscall name="getdents64" number="154" groups="descriptor"/>
   <syscall name="fcntl64" number="155" groups="descriptor"/>
@@ -196,7 +196,7 @@
   <syscall name="query_module" number="184"/>
   <syscall name="setpgid" number="185"/>
   <syscall name="fremovexattr" number="186" groups="descriptor"/>
-  <syscall name="tkill" number="187" groups="signal"/>
+  <syscall name="tkill" number="187" groups="signal,process"/>
   <syscall name="exit_group" number="188" groups="process"/>
   <syscall name="uname" number="189"/>
   <syscall name="init_module" number="190"/>
@@ -220,7 +220,7 @@
   <syscall name="lookup_dcookie" number="208"/>
   <syscall name="fadvise64" number="209" groups="descriptor"/>
   <syscall name="fadvise64_64" number="210" groups="descriptor"/>
-  <syscall name="tgkill" number="211" groups="signal"/>
+  <syscall name="tgkill" number="211" groups="signal,process"/>
   <syscall name="waitpid" number="212" groups="process"/>
   <syscall name="swapoff" number="213" groups="file"/>
   <syscall name="sysinfo" number="214"/>
@@ -277,17 +277,17 @@
   <syscall name="timer_delete" number="265"/>
   <syscall name="timer_create" number="266"/>
   <syscall name="vserver" number="267"/>
-  <syscall name="io_setup" number="268"/>
-  <syscall name="io_destroy" number="269"/>
+  <syscall name="io_setup" number="268" groups="memory"/>
+  <syscall name="io_destroy" number="269" groups="memory"/>
   <syscall name="io_submit" number="270"/>
   <syscall name="io_cancel" number="271"/>
   <syscall name="io_getevents" number="272"/>
-  <syscall name="mq_open" number="273"/>
+  <syscall name="mq_open" number="273" groups="descriptor"/>
   <syscall name="mq_unlink" number="274"/>
-  <syscall name="mq_timedsend" number="275"/>
-  <syscall name="mq_timedreceive" number="276"/>
-  <syscall name="mq_notify" number="277"/>
-  <syscall name="mq_getsetattr" number="278"/>
+  <syscall name="mq_timedsend" number="275" groups="descriptor"/>
+  <syscall name="mq_timedreceive" number="276" groups="descriptor"/>
+  <syscall name="mq_notify" number="277" groups="descriptor"/>
+  <syscall name="mq_getsetattr" number="278" groups="descriptor"/>
   <syscall name="waitid" number="279" groups="process"/>
   <syscall name="tee" number="280" groups="descriptor"/>
   <syscall name="add_key" number="281"/>
@@ -308,7 +308,7 @@
   <syscall name="faccessat" number="296" groups="descriptor,file"/>
   <syscall name="pselect6" number="297" groups="descriptor"/>
   <syscall name="ppoll" number="298" groups="descriptor"/>
-  <syscall name="unshare" number="299" groups="process"/>
+  <syscall name="unshare" number="299"/>
   <syscall name="set_robust_list" number="300"/>
   <syscall name="get_robust_list" number="301"/>
   <syscall name="migrate_pages" number="302" groups="memory"/>
@@ -354,24 +354,24 @@
   <syscall name="finit_module" number="342" groups="descriptor"/>
   <syscall name="sched_setattr" number="343"/>
   <syscall name="sched_getattr" number="344"/>
-  <syscall name="renameat2" number="345"/>
+  <syscall name="renameat2" number="345" groups="descriptor,file"/>
   <syscall name="seccomp" number="346"/>
   <syscall name="getrandom" number="347"/>
-  <syscall name="memfd_create" number="348"/>
-  <syscall name="bpf" number="349"/>
-  <syscall name="execveat" number="350"/>
+  <syscall name="memfd_create" number="348" groups="descriptor"/>
+  <syscall name="bpf" number="349" groups="descriptor"/>
+  <syscall name="execveat" number="350" groups="descriptor,file,process"/>
   <syscall name="membarrier" number="351"/>
-  <syscall name="userfaultfd" number="352"/>
+  <syscall name="userfaultfd" number="352" groups="descriptor"/>
   <syscall name="bind" number="353" groups="network"/>
   <syscall name="listen" number="354" groups="network"/>
   <syscall name="setsockopt" number="355" groups="network"/>
-  <syscall name="mlock2" number="356"/>
-  <syscall name="copy_file_range" number="357"/>
-  <syscall name="preadv2" number="358"/>
-  <syscall name="pwritev2" number="359"/>
-  <syscall name="statx" number="360"/>
+  <syscall name="mlock2" number="356" groups="memory"/>
+  <syscall name="copy_file_range" number="357" groups="descriptor"/>
+  <syscall name="preadv2" number="358" groups="descriptor"/>
+  <syscall name="pwritev2" number="359" groups="descriptor"/>
+  <syscall name="statx" number="360" groups="descriptor,file"/>
   <syscall name="io_pgetevents" number="361"/>
-  <syscall name="pkey_mprotect" number="362"/>
+  <syscall name="pkey_mprotect" number="362" groups="memory"/>
   <syscall name="pkey_alloc" number="363"/>
   <syscall name="pkey_free" number="364"/>
   <syscall name="rseq" number="365"/>
@@ -392,42 +392,42 @@
   <syscall name="clock_nanosleep_time64" number="407"/>
   <syscall name="timer_gettime64" number="408"/>
   <syscall name="timer_settime64" number="409"/>
-  <syscall name="timerfd_gettime64" number="410"/>
-  <syscall name="timerfd_settime64" number="411"/>
-  <syscall name="utimensat_time64" number="412"/>
-  <syscall name="pselect6_time64" number="413"/>
-  <syscall name="ppoll_time64" number="414"/>
+  <syscall name="timerfd_gettime64" number="410" groups="descriptor"/>
+  <syscall name="timerfd_settime64" number="411" groups="descriptor"/>
+  <syscall name="utimensat_time64" number="412" groups="descriptor,file"/>
+  <syscall name="pselect6_time64" number="413" groups="descriptor"/>
+  <syscall name="ppoll_time64" number="414" groups="descriptor"/>
   <syscall name="io_pgetevents_time64" number="416"/>
-  <syscall name="recvmmsg_time64" number="417"/>
-  <syscall name="mq_timedsend_time64" number="418"/>
-  <syscall name="mq_timedreceive_time64" number="419"/>
-  <syscall name="semtimedop_time64" number="420"/>
-  <syscall name="rt_sigtimedwait_time64" number="421"/>
+  <syscall name="recvmmsg_time64" number="417" groups="network"/>
+  <syscall name="mq_timedsend_time64" number="418" groups="descriptor"/>
+  <syscall name="mq_timedreceive_time64" number="419" groups="descriptor"/>
+  <syscall name="semtimedop_time64" number="420" groups="ipc"/>
+  <syscall name="rt_sigtimedwait_time64" number="421" groups="signal"/>
   <syscall name="futex_time64" number="422"/>
   <syscall name="sched_rr_get_interval_time64" number="423"/>
-  <syscall name="pidfd_send_signal" number="424"/>
-  <syscall name="io_uring_setup" number="425"/>
-  <syscall name="io_uring_enter" number="426"/>
-  <syscall name="io_uring_register" number="427"/>
-  <syscall name="open_tree" number="428"/>
-  <syscall name="move_mount" number="429"/>
-  <syscall name="fsopen" number="430"/>
-  <syscall name="fsconfig" number="431"/>
-  <syscall name="fsmount" number="432"/>
-  <syscall name="fspick" number="433"/>
-  <syscall name="pidfd_open" number="434"/>
+  <syscall name="pidfd_send_signal" number="424" groups="descriptor,signal,process"/>
+  <syscall name="io_uring_setup" number="425" groups="descriptor"/>
+  <syscall name="io_uring_enter" number="426" groups="descriptor,signal"/>
+  <syscall name="io_uring_register" number="427" groups="descriptor,memory"/>
+  <syscall name="open_tree" number="428" groups="descriptor,file"/>
+  <syscall name="move_mount" number="429" groups="descriptor,file"/>
+  <syscall name="fsopen" number="430" groups="descriptor"/>
+  <syscall name="fsconfig" number="431" groups="descriptor,file"/>
+  <syscall name="fsmount" number="432" groups="descriptor"/>
+  <syscall name="fspick" number="433" groups="descriptor,file"/>
+  <syscall name="pidfd_open" number="434" groups="descriptor"/>
   <syscall name="close_range" number="436"/>
-  <syscall name="openat2" number="437"/>
-  <syscall name="pidfd_getfd" number="438"/>
-  <syscall name="faccessat2" number="439"/>
-  <syscall name="process_madvise" number="440"/>
-  <syscall name="epoll_pwait2" number="441"/>
-  <syscall name="mount_setattr" number="442"/>
-  <syscall name="quotactl_fd" number="443"/>
-  <syscall name="landlock_create_ruleset" number="444"/>
-  <syscall name="landlock_add_rule" number="445"/>
-  <syscall name="landlock_restrict_self" number="446"/>
-  <syscall name="process_mrelease" number="448"/>
+  <syscall name="openat2" number="437" groups="descriptor,file"/>
+  <syscall name="pidfd_getfd" number="438" groups="descriptor"/>
+  <syscall name="faccessat2" number="439" groups="descriptor,file"/>
+  <syscall name="process_madvise" number="440" groups="descriptor"/>
+  <syscall name="epoll_pwait2" number="441" groups="descriptor"/>
+  <syscall name="mount_setattr" number="442" groups="descriptor,file"/>
+  <syscall name="quotactl_fd" number="443" groups="descriptor"/>
+  <syscall name="landlock_create_ruleset" number="444" groups="descriptor"/>
+  <syscall name="landlock_add_rule" number="445" groups="descriptor"/>
+  <syscall name="landlock_restrict_self" number="446" groups="descriptor"/>
+  <syscall name="process_mrelease" number="448" groups="descriptor"/>
   <syscall name="futex_waitv" number="449"/>
-  <syscall name="set_mempolicy_home_node" number="450"/>
+  <syscall name="set_mempolicy_home_node" number="450" groups="memory"/>
 </syscalls_info>
diff --git a/gdb/syscalls/sparc64-linux.xml b/gdb/syscalls/sparc64-linux.xml
index d90f0d961ed..51371827fed 100644
--- a/gdb/syscalls/sparc64-linux.xml
+++ b/gdb/syscalls/sparc64-linux.xml
@@ -45,7 +45,7 @@
   <syscall name="access" number="33" groups="file"/>
   <syscall name="nice" number="34"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="kill" number="37" groups="signal,process"/>
   <syscall name="stat" number="38" groups="file"/>
   <syscall name="sendfile" number="39" groups="descriptor,network"/>
   <syscall name="lstat" number="40" groups="file"/>
@@ -101,7 +101,7 @@
   <syscall name="rt_sigprocmask" number="103" groups="signal"/>
   <syscall name="rt_sigpending" number="104" groups="signal"/>
   <syscall name="rt_sigtimedwait" number="105" groups="signal"/>
-  <syscall name="rt_sigqueueinfo" number="106" groups="signal"/>
+  <syscall name="rt_sigqueueinfo" number="106" groups="signal,process"/>
   <syscall name="rt_sigsuspend" number="107" groups="signal"/>
   <syscall name="setresuid" number="108"/>
   <syscall name="getresuid" number="109"/>
@@ -145,7 +145,7 @@
   <syscall name="pciconfig_write" number="149"/>
   <syscall name="getsockname" number="150" groups="network"/>
   <syscall name="inotify_init" number="151" groups="descriptor"/>
-  <syscall name="inotify_add_watch" number="152" groups="descriptor"/>
+  <syscall name="inotify_add_watch" number="152" groups="descriptor,file"/>
   <syscall name="poll" number="153" groups="descriptor"/>
   <syscall name="getdents64" number="154" groups="descriptor"/>
   <syscall name="inotify_rm_watch" number="156" groups="descriptor"/>
@@ -179,7 +179,7 @@
   <syscall name="query_module" number="184"/>
   <syscall name="setpgid" number="185"/>
   <syscall name="fremovexattr" number="186" groups="descriptor"/>
-  <syscall name="tkill" number="187" groups="signal"/>
+  <syscall name="tkill" number="187" groups="signal,process"/>
   <syscall name="exit_group" number="188" groups="process"/>
   <syscall name="uname" number="189"/>
   <syscall name="init_module" number="190"/>
@@ -203,7 +203,7 @@
   <syscall name="lookup_dcookie" number="208"/>
   <syscall name="fadvise64" number="209" groups="descriptor"/>
   <syscall name="fadvise64_64" number="210" groups="descriptor"/>
-  <syscall name="tgkill" number="211" groups="signal"/>
+  <syscall name="tgkill" number="211" groups="signal,process"/>
   <syscall name="waitpid" number="212" groups="process"/>
   <syscall name="swapoff" number="213" groups="file"/>
   <syscall name="sysinfo" number="214"/>
@@ -259,17 +259,17 @@
   <syscall name="timer_delete" number="265"/>
   <syscall name="timer_create" number="266"/>
   <syscall name="vserver" number="267"/>
-  <syscall name="io_setup" number="268"/>
-  <syscall name="io_destroy" number="269"/>
+  <syscall name="io_setup" number="268" groups="memory"/>
+  <syscall name="io_destroy" number="269" groups="memory"/>
   <syscall name="io_submit" number="270"/>
   <syscall name="io_cancel" number="271"/>
   <syscall name="io_getevents" number="272"/>
-  <syscall name="mq_open" number="273"/>
+  <syscall name="mq_open" number="273" groups="descriptor"/>
   <syscall name="mq_unlink" number="274"/>
-  <syscall name="mq_timedsend" number="275"/>
-  <syscall name="mq_timedreceive" number="276"/>
-  <syscall name="mq_notify" number="277"/>
-  <syscall name="mq_getsetattr" number="278"/>
+  <syscall name="mq_timedsend" number="275" groups="descriptor"/>
+  <syscall name="mq_timedreceive" number="276" groups="descriptor"/>
+  <syscall name="mq_notify" number="277" groups="descriptor"/>
+  <syscall name="mq_getsetattr" number="278" groups="descriptor"/>
   <syscall name="waitid" number="279" groups="process"/>
   <syscall name="tee" number="280" groups="descriptor"/>
   <syscall name="add_key" number="281"/>
@@ -290,7 +290,7 @@
   <syscall name="faccessat" number="296" groups="descriptor,file"/>
   <syscall name="pselect6" number="297" groups="descriptor"/>
   <syscall name="ppoll" number="298" groups="descriptor"/>
-  <syscall name="unshare" number="299" groups="process"/>
+  <syscall name="unshare" number="299"/>
   <syscall name="set_robust_list" number="300"/>
   <syscall name="get_robust_list" number="301"/>
   <syscall name="migrate_pages" number="302" groups="memory"/>
@@ -336,24 +336,24 @@
   <syscall name="finit_module" number="342" groups="descriptor"/>
   <syscall name="sched_setattr" number="343"/>
   <syscall name="sched_getattr" number="344"/>
-  <syscall name="renameat2" number="345"/>
+  <syscall name="renameat2" number="345" groups="descriptor,file"/>
   <syscall name="seccomp" number="346"/>
   <syscall name="getrandom" number="347"/>
-  <syscall name="memfd_create" number="348"/>
-  <syscall name="bpf" number="349"/>
-  <syscall name="execveat" number="350"/>
+  <syscall name="memfd_create" number="348" groups="descriptor"/>
+  <syscall name="bpf" number="349" groups="descriptor"/>
+  <syscall name="execveat" number="350" groups="descriptor,file,process"/>
   <syscall name="membarrier" number="351"/>
-  <syscall name="userfaultfd" number="352"/>
+  <syscall name="userfaultfd" number="352" groups="descriptor"/>
   <syscall name="bind" number="353" groups="network"/>
   <syscall name="listen" number="354" groups="network"/>
   <syscall name="setsockopt" number="355" groups="network"/>
-  <syscall name="mlock2" number="356"/>
-  <syscall name="copy_file_range" number="357"/>
-  <syscall name="preadv2" number="358"/>
-  <syscall name="pwritev2" number="359"/>
-  <syscall name="statx" number="360"/>
+  <syscall name="mlock2" number="356" groups="memory"/>
+  <syscall name="copy_file_range" number="357" groups="descriptor"/>
+  <syscall name="preadv2" number="358" groups="descriptor"/>
+  <syscall name="pwritev2" number="359" groups="descriptor"/>
+  <syscall name="statx" number="360" groups="descriptor,file"/>
   <syscall name="io_pgetevents" number="361"/>
-  <syscall name="pkey_mprotect" number="362"/>
+  <syscall name="pkey_mprotect" number="362" groups="memory"/>
   <syscall name="pkey_alloc" number="363"/>
   <syscall name="pkey_free" number="364"/>
   <syscall name="rseq" number="365"/>
@@ -368,29 +368,29 @@
   <syscall name="msgsnd" number="400" groups="ipc"/>
   <syscall name="msgrcv" number="401" groups="ipc"/>
   <syscall name="msgctl" number="402" groups="ipc"/>
-  <syscall name="pidfd_send_signal" number="424"/>
-  <syscall name="io_uring_setup" number="425"/>
-  <syscall name="io_uring_enter" number="426"/>
-  <syscall name="io_uring_register" number="427"/>
-  <syscall name="open_tree" number="428"/>
-  <syscall name="move_mount" number="429"/>
-  <syscall name="fsopen" number="430"/>
-  <syscall name="fsconfig" number="431"/>
-  <syscall name="fsmount" number="432"/>
-  <syscall name="fspick" number="433"/>
-  <syscall name="pidfd_open" number="434"/>
+  <syscall name="pidfd_send_signal" number="424" groups="descriptor,signal,process"/>
+  <syscall name="io_uring_setup" number="425" groups="descriptor"/>
+  <syscall name="io_uring_enter" number="426" groups="descriptor,signal"/>
+  <syscall name="io_uring_register" number="427" groups="descriptor,memory"/>
+  <syscall name="open_tree" number="428" groups="descriptor,file"/>
+  <syscall name="move_mount" number="429" groups="descriptor,file"/>
+  <syscall name="fsopen" number="430" groups="descriptor"/>
+  <syscall name="fsconfig" number="431" groups="descriptor,file"/>
+  <syscall name="fsmount" number="432" groups="descriptor"/>
+  <syscall name="fspick" number="433" groups="descriptor,file"/>
+  <syscall name="pidfd_open" number="434" groups="descriptor"/>
   <syscall name="close_range" number="436"/>
-  <syscall name="openat2" number="437"/>
-  <syscall name="pidfd_getfd" number="438"/>
-  <syscall name="faccessat2" number="439"/>
-  <syscall name="process_madvise" number="440"/>
-  <syscall name="epoll_pwait2" number="441"/>
-  <syscall name="mount_setattr" number="442"/>
-  <syscall name="quotactl_fd" number="443"/>
-  <syscall name="landlock_create_ruleset" number="444"/>
-  <syscall name="landlock_add_rule" number="445"/>
-  <syscall name="landlock_restrict_self" number="446"/>
-  <syscall name="process_mrelease" number="448"/>
+  <syscall name="openat2" number="437" groups="descriptor,file"/>
+  <syscall name="pidfd_getfd" number="438" groups="descriptor"/>
+  <syscall name="faccessat2" number="439" groups="descriptor,file"/>
+  <syscall name="process_madvise" number="440" groups="descriptor"/>
+  <syscall name="epoll_pwait2" number="441" groups="descriptor"/>
+  <syscall name="mount_setattr" number="442" groups="descriptor,file"/>
+  <syscall name="quotactl_fd" number="443" groups="descriptor"/>
+  <syscall name="landlock_create_ruleset" number="444" groups="descriptor"/>
+  <syscall name="landlock_add_rule" number="445" groups="descriptor"/>
+  <syscall name="landlock_restrict_self" number="446" groups="descriptor"/>
+  <syscall name="process_mrelease" number="448" groups="descriptor"/>
   <syscall name="futex_waitv" number="449"/>
-  <syscall name="set_mempolicy_home_node" number="450"/>
+  <syscall name="set_mempolicy_home_node" number="450" groups="memory"/>
 </syscalls_info>
-- 
2.36.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (groups) from strace sources
  2023-02-24 23:26 ` [PATCH 1/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (groups) " Pedro Alves
@ 2023-02-25  3:00   ` Simon Marchi
  2023-02-27 15:04     ` Pedro Alves
  0 siblings, 1 reply; 7+ messages in thread
From: Simon Marchi @ 2023-02-25  3:00 UTC (permalink / raw)
  To: Pedro Alves, gdb-patches



On 2/24/23 18:26, Pedro Alves wrote:
> I noticed that "catch syscall group:process" doesn't catch clone3,
> while it does catch clone.
> 
> The catch syscall group information is recorded in the
> gdb/syscalls/linux-defaults.xml.in file, which says:
> 
>   <!-- The group field information was based on strace.  -->
> 
> So I looked at the strace sources, to confirm that clone3 is in fact
> recorded in the "process" group there too, and to check what other
> syscalls might be missing groups.
> 
> After some digging, I found that strace records the group info in C
> arrays, with entries like:
> ...
> [ 61] = { 4,	TP,		SEN(wait4),			"wait4"			},
> [ 62] = { 2,	TS|TP,		SEN(kill),			"kill"			},
> [ 63] = { 1,	0,		SEN(uname),			"uname"			},
> ...
> 
> You can see the current master's table for Linux x86-64 here:
> 
>   https://github.com/strace/strace/blob/e88e5e9ae6da68f22d15f9be3193b1412ac9aa02/src/linux/x86_64/syscallent.h
> 
> The column with TS|TP above is what defines each syscall's groups.  So
> I wrote a script that extracts this information and generates
> linux-defaults.xml.in.

Thanks, that LGTM.

I think the filename passed around is not actually used, so you can do:

---

diff --git a/gdb/syscalls/update-linux-defaults.sh b/gdb/syscalls/update-linux-defaults.sh
index 2c001aa3b8a9..bf74f1e321a8 100755
--- a/gdb/syscalls/update-linux-defaults.sh
+++ b/gdb/syscalls/update-linux-defaults.sh
@@ -35,8 +35,6 @@ fi
 
 pre ()
 {
-    f="$1"
-
     year=$(date +%Y)
 
     cat <<EOF
@@ -61,9 +59,7 @@ post ()
 
 generate ()
 {
-    f="$1"
-
-    pre "$f"
+    pre
 
     grep -rn -E "T[A-Z][,|]" "$d/src/linux/" \
 	| sed -e 's/\(T[A-Z][,|].*\)/\x03&/' -e 's/.*\x03//' \
@@ -92,4 +88,4 @@ generate ()
 f=linux-defaults.xml.in
 
 echo "Generating $f"
-generate "$t" > "$f"
+generate > "$f"

---

I was tipped off by this shellcheck warning:

In update-linux-defaults.sh line 95:
generate "$t" > "$f"
          ^-- SC2154 (warning): t is referenced but not assigned.

Simon

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (syscall groups) from strace sources
  2023-02-24 23:26 [PATCH 0/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (syscall groups) from strace sources Pedro Alves
  2023-02-24 23:26 ` [PATCH 1/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (groups) " Pedro Alves
  2023-02-24 23:26 ` [PATCH 2/2] Regenerate Linux syscall group info Pedro Alves
@ 2023-02-25  9:31 ` Tom de Vries
  2023-02-27 14:53   ` Pedro Alves
  2 siblings, 1 reply; 7+ messages in thread
From: Tom de Vries @ 2023-02-25  9:31 UTC (permalink / raw)
  To: Pedro Alves, gdb-patches

On 2/25/23 00:26, Pedro Alves wrote:
> While working on the step-over-thread-clone/exit series, I noticed
> that one of the new tests was failing.  The test does "catch syscall
> clone", and expects that pthread_create calls clone.  Turns out that
> on the glibc shipped with Ubuntu 22.04, pthread_create calls clone3,
> not clone.  To make the test cope with that, I thought of switching it
> to "catch syscall group:process".  Surprisingly, that catches "clone",
> but not "clone3".
> 
> This series fixes that, by adding a script that extracts the syscall
> group info out the strace sources.
> 

If I understand correctly, this is orthogonal to update-linux-from-src.sh ?

[ FWIW, i've just ran update-linux-from-src.sh with linux kernel sources 
v6.2, and there where no changes. ]

Thanks,
- Tom

> Pedro Alves (2):
>    Autogenerate gdb/syscalls/linux-defaults.xml.in (groups) from strace
>      sources
>    Regenerate Linux syscall group info
> 
>   gdb/syscalls/aarch64-linux.xml        |  26 +-
>   gdb/syscalls/amd64-linux.xml          | 106 ++---
>   gdb/syscalls/arm-linux.xml            |  26 +-
>   gdb/syscalls/bfin-linux.xml           |  26 +-
>   gdb/syscalls/i386-linux.xml           | 124 +++---
>   gdb/syscalls/linux-defaults.xml.in    | 545 ++++++++++++++++----------
>   gdb/syscalls/mips-n32-linux.xml       | 122 +++---
>   gdb/syscalls/mips-n64-linux.xml       | 100 ++---
>   gdb/syscalls/mips-o32-linux.xml       | 122 +++---
>   gdb/syscalls/ppc-linux.xml            | 124 +++---
>   gdb/syscalls/ppc64-linux.xml          | 104 ++---
>   gdb/syscalls/s390-linux.xml           | 122 +++---
>   gdb/syscalls/s390x-linux.xml          | 102 ++---
>   gdb/syscalls/sparc-linux.xml          | 114 +++---
>   gdb/syscalls/sparc64-linux.xml        |  94 ++---
>   gdb/syscalls/update-linux-defaults.sh |  95 +++++
>   16 files changed, 1096 insertions(+), 856 deletions(-)
>   create mode 100755 gdb/syscalls/update-linux-defaults.sh
> 
> 
> base-commit: 2e977d9901393ea1bacbe1896af0929e968bc811


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (syscall groups) from strace sources
  2023-02-25  9:31 ` [PATCH 0/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (syscall groups) from strace sources Tom de Vries
@ 2023-02-27 14:53   ` Pedro Alves
  0 siblings, 0 replies; 7+ messages in thread
From: Pedro Alves @ 2023-02-27 14:53 UTC (permalink / raw)
  To: Tom de Vries, gdb-patches

On 2023-02-25 9:31 a.m., Tom de Vries wrote:
> On 2/25/23 00:26, Pedro Alves wrote:
>> While working on the step-over-thread-clone/exit series, I noticed
>> that one of the new tests was failing.  The test does "catch syscall
>> clone", and expects that pthread_create calls clone.  Turns out that
>> on the glibc shipped with Ubuntu 22.04, pthread_create calls clone3,
>> not clone.  To make the test cope with that, I thought of switching it
>> to "catch syscall group:process".  Surprisingly, that catches "clone",
>> but not "clone3".
>>
>> This series fixes that, by adding a script that extracts the syscall
>> group info out the strace sources.
>>
> 
> If I understand correctly, this is orthogonal to update-linux-from-src.sh ?

Right.  This generates the linux-defaults.xml.in file, which is not generated
by update-linux-from-src.sh.  The groups info is not found in the kernel.
linux-defaults.xml.in maps between syscall names and groups.  The arch xml.in files
map syscall number to name.  The makefile combines each arch xml.in with
linux-defaults.xml.in generating a final .xml file with maps the number to
name, and to groups.

> [ FWIW, i've just ran update-linux-from-src.sh with linux kernel sources v6.2, and there where no changes. ]

Great, I was wondering whether we needed to re-run that with a recent kernel.  Thanks for
taking care of it.

Pedro Alves

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (groups) from strace sources
  2023-02-25  3:00   ` Simon Marchi
@ 2023-02-27 15:04     ` Pedro Alves
  0 siblings, 0 replies; 7+ messages in thread
From: Pedro Alves @ 2023-02-27 15:04 UTC (permalink / raw)
  To: Simon Marchi, gdb-patches

On 2023-02-25 3:00 a.m., Simon Marchi wrote:
> 
> 
> On 2/24/23 18:26, Pedro Alves wrote:
>> I noticed that "catch syscall group:process" doesn't catch clone3,
>> while it does catch clone.
>>
>> The catch syscall group information is recorded in the
>> gdb/syscalls/linux-defaults.xml.in file, which says:
>>
>>   <!-- The group field information was based on strace.  -->
>>
>> So I looked at the strace sources, to confirm that clone3 is in fact
>> recorded in the "process" group there too, and to check what other
>> syscalls might be missing groups.
>>
>> After some digging, I found that strace records the group info in C
>> arrays, with entries like:
>> ...
>> [ 61] = { 4,	TP,		SEN(wait4),			"wait4"			},
>> [ 62] = { 2,	TS|TP,		SEN(kill),			"kill"			},
>> [ 63] = { 1,	0,		SEN(uname),			"uname"			},
>> ...
>>
>> You can see the current master's table for Linux x86-64 here:
>>
>>   https://github.com/strace/strace/blob/e88e5e9ae6da68f22d15f9be3193b1412ac9aa02/src/linux/x86_64/syscallent.h
>>
>> The column with TS|TP above is what defines each syscall's groups.  So
>> I wrote a script that extracts this information and generates
>> linux-defaults.xml.in.
> 
> Thanks, that LGTM.
> 
> I think the filename passed around is not actually used, so you can do:
> 

Thanks, I've done that, and pushed the series.

> 
> I was tipped off by this shellcheck warning:
> 
> In update-linux-defaults.sh line 95:
> generate "$t" > "$f"
>           ^-- SC2154 (warning): t is referenced but not assigned.
> 

Thanks for that.  For some reason I forgot to run it.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-02-27 15:04 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-24 23:26 [PATCH 0/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (syscall groups) from strace sources Pedro Alves
2023-02-24 23:26 ` [PATCH 1/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (groups) " Pedro Alves
2023-02-25  3:00   ` Simon Marchi
2023-02-27 15:04     ` Pedro Alves
2023-02-24 23:26 ` [PATCH 2/2] Regenerate Linux syscall group info Pedro Alves
2023-02-25  9:31 ` [PATCH 0/2] Autogenerate gdb/syscalls/linux-defaults.xml.in (syscall groups) from strace sources Tom de Vries
2023-02-27 14:53   ` Pedro Alves

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).