Christian Brauner
cbrauner.bsky.social
Christian Brauner
@cbrauner.bsky.social
Maintains #Linux #kernel stuff.
#systemd, #LXC, #LXD and a few other things.
Reposted by Christian Brauner
A reminder that the All Systems Go! 2025 CFP closes on June 13th. Submit your talk about foundational user-space Linux technologies before the deadline to be considered.
👉 cfp.all-systems-go.io/all-systems-...
All Systems Go! 2025
Schedule, talks and talk submissions for All Systems Go! 2025
cfp.all-systems-go.io
May 21, 2025 at 4:26 PM
I feel like #Android would be a prime candidate to rely on SO_PEERPIDFD in their bluetooth stack. And if they don't, they probably should.
(1) Are developers aware that Bluetooth sockets even support SO_PEERPIDFD?
(2) Is this useful for Bluetooth user space implementations?/Is this already used?
(3) Is it useful to also enable SO_PEERPIDFD for reaped peers for Bluetooth sockets?
April 28, 2025 at 9:12 AM
6/n

And even if the current crashing thread isn't the actual thread-group leader we know that the thread-group leader cannot be reaped until all of its subthreads have exited.
April 27, 2025 at 8:42 PM
5/n

We're installing a pidfd for the thread-group leader even if a subthread is calling do_coredump(). We know that task linkage hasn't been removed yet.
April 27, 2025 at 8:42 PM
4/n

Since usermode helpers are either children of the system_unbound_wq
workqueue or kthreadd we know that the file descriptor table is empty and can thus always use three as the file descriptor number.
April 27, 2025 at 8:40 PM
3/n

When the usermode helper process is forked we install a pidfd file descriptor three into the usermode helper's file descriptor table so it's available to the exec'd program.
April 27, 2025 at 8:39 PM
2/n

There are tricky race-windows that cannot be easily closed by userspace. There's various ways like looking at the start time of a process to make sure that the usermode helper process is started
after the crashing process but it's all very very brittle and fraught with peril.
April 27, 2025 at 8:38 PM
1/n

Oh yeah, I already mentioned this a while ago but I also added support for pidfds in Linux coredumps.

/proc/sys/kernel/core_pattern has been extended so userspace can instruct the kernel to install a pidfd for the
crashing process into the usermode helper process, e.g., systemd-coredump.
April 27, 2025 at 8:32 PM
So a while ago we did pidfds for AF_UNIX sockets. Alexandr Mikahlitsyn did all of the heavy lifting. Specifically we added SO_PEERPIDFD and SCM_PIDFD. They are analogues to SCM_PEERCRED and SCM_CREDENTIALS.
April 27, 2025 at 8:22 PM
Picked back up the work for VFS {g,u}id squashing. IOW, mapping all {g,u}ids down to a single {g,u}id.

web.git.kernel.org/pub/scm/linu...
kernel/git/vfs/vfs.git - VFS tree
web.git.kernel.org
March 11, 2025 at 8:31 PM
util-linux has merged support for statmount() and listmount() to list mounts:
github.com/util-linux/u...

This should be a nice performance improvement.

See brauner.io/2024/12/16/l... for some details on listmount() and statmount().

#linux #kernel
libmount statmount support by karelzak · Pull Request #3092 · util-linux/util-linux
Plan: use statmount() in libmnt_fs fill libmnt_table by listmount() on-demand read nodes from kernel by listmount() in mnt_table_next_fs() loops (mnt_table_next_lsmnt() as backend) allocate/sh...
github.com
January 10, 2025 at 3:49 PM
I'm organizing the #containers and #kernel devrooms at FOSDEM 2025 with the usual suspects.

containers: fosdem.org/2025/schedul...

kernel: fosdem.org/2025/schedul...

See you in Brussels!
FOSDEM 2025 - Containers
fosdem.org
December 28, 2024 at 2:25 PM
I've written a post that shows how to list all mounts in all mount namespaces (all mounts on the system) using new apis we added to the #vfs last year.

brauner.io/2024/12/16/l...

#kernel #linux #vfs
Listing all mounts in all mount namespaces
Introduction
brauner.io
December 16, 2024 at 10:32 PM