Revision tags: v6.17-rc2 |
|
#
8d2b0853 |
| 11-Aug-2025 |
Thomas Zimmermann <tzimmermann@suse.de> |
Merge drm/drm-fixes into drm-misc-fixes
Updating drm-misc-fixes to the state of v6.17-rc1. Begins a new release cycle.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
|
Revision tags: v6.17-rc1 |
|
#
117eab5c |
| 28-Jul-2025 |
Linus Torvalds <torvalds@linux-foundation.org> |
Merge tag 'vfs-6.17-rc1.coredump' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
Pull coredump updates from Christian Brauner: "This contains an extension to the coredump socket and a pro
Merge tag 'vfs-6.17-rc1.coredump' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
Pull coredump updates from Christian Brauner: "This contains an extension to the coredump socket and a proper rework of the coredump code.
- This extends the coredump socket to allow the coredump server to tell the kernel how to process individual coredumps. This allows for fine-grained coredump management. Userspace can decide to just let the kernel write out the coredump, or generate the coredump itself, or just reject it.
* COREDUMP_KERNEL The kernel will write the coredump data to the socket.
* COREDUMP_USERSPACE The kernel will not write coredump data but will indicate to the parent that a coredump has been generated. This is used when userspace generates its own coredumps.
* COREDUMP_REJECT The kernel will skip generating a coredump for this task.
* COREDUMP_WAIT The kernel will prevent the task from exiting until the coredump server has shutdown the socket connection.
The flexible coredump socket can be enabled by using the "@@" prefix instead of the single "@" prefix for the regular coredump socket:
@@/run/systemd/coredump.socket
- Cleanup the coredump code properly while we have to touch it anyway.
Split out each coredump mode in a separate helper so it's easy to grasp what is going on and make the code easier to follow. The core coredump function should now be very trivial to follow"
* tag 'vfs-6.17-rc1.coredump' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (31 commits) cleanup: add a scoped version of CLASS() coredump: add coredump_skip() helper coredump: avoid pointless variable coredump: order auto cleanup variables at the top coredump: add coredump_cleanup() coredump: auto cleanup prepare_creds() cred: add auto cleanup method coredump: directly return coredump: auto cleanup argv coredump: add coredump_write() coredump: use a single helper for the socket coredump: move pipe specific file check into coredump_pipe() coredump: split pipe coredumping into coredump_pipe() coredump: move core_pipe_count to global variable coredump: prepare to simplify exit paths coredump: split file coredumping into coredump_file() coredump: rename do_coredump() to vfs_coredump() selftests/coredump: make sure invalid paths are rejected coredump: validate socket path in coredump_parse() coredump: don't allow ".." in coredump socket path ...
show more ...
|
Revision tags: v6.16, v6.16-rc7, v6.16-rc6, v6.16-rc5, v6.16-rc4, v6.16-rc3, v6.16-rc2, v6.16-rc1 |
|
#
c8e7ce2a |
| 04-Jun-2025 |
Christian Brauner <brauner@kernel.org> |
Merge patch series "coredump: allow for flexible coredump handling"
Christian Brauner <brauner@kernel.org> says:
In addition to the extensive selftests I've already written a (non-production ready)
Merge patch series "coredump: allow for flexible coredump handling"
Christian Brauner <brauner@kernel.org> says:
In addition to the extensive selftests I've already written a (non-production ready) simple Rust coredump server for this in userspace:
https://github.com/brauner/dumdum.git
Extend the coredump socket to allow the coredump server to tell the kernel how to process individual coredumps. This allows for fine-grained coredump management. Userspace can decide to just let the kernel write out the coredump, or generate the coredump itself, or just reject it.
When the crashing task connects to the coredump socket the kernel will send a struct coredump_req to the coredump server. The kernel will set the size member of struct coredump_req allowing the coredump server how much data can be read.
The coredump server uses MSG_PEEK to peek the size of struct coredump_req. If the kernel uses a newer struct coredump_req the coredump server just reads the size it knows and discard any remaining bytes in the buffer. If the kernel uses an older struct coredump_req the coredump server just reads the size the kernel knows.
The returned struct coredump_req will inform the coredump server what features the kernel supports. The coredump_req->mask member is set to the currently know features.
The coredump server may only use features whose bits were raised by the kernel in coredump_req->mask.
In response to a coredump_req from the kernel the coredump server sends a struct coredump_ack to the kernel. The kernel informs the coredump server what version of struct coredump_ack it supports by setting struct coredump_req->size_ack to the size it knows about. The coredump server may only send as many bytes as coredump_req->size_ack indicates (a smaller size is fine of course). The coredump server must set coredump_ack->size accordingly.
The coredump server sets the features it wants to use in struct coredump_ack->mask. Only bits returned in struct coredump_req->mask may be used.
In case an invalid struct coredump_ack is sent to the kernel a non-zero u32 integer is sent indicating the reason for the failure. If it was successful a zero u32 integer is sent.
In the initial version the following features are supported in coredump_{req,ack}->mask:
* COREDUMP_KERNEL The kernel will write the coredump data to the socket.
* COREDUMP_USERSPACE The kernel will not write coredump data but will indicate to the parent that a coredump has been generated. This is used when userspace generates its own coredumps.
* COREDUMP_REJECT The kernel will skip generating a coredump for this task.
* COREDUMP_WAIT The kernel will prevent the task from exiting until the coredump server has shutdown the socket connection.
The flexible coredump socket can be enabled by using the "@@" prefix instead of the single "@" prefix for the regular coredump socket:
@@/run/systemd/coredump.socket
will enable flexible coredump handling. Current kernels already enforce that "@" must be followed by "/" and will reject anything else. So extending this is backward and forward compatible.
Link: https://lore.kernel.org/20250603-work-coredump-socket-protocol-v2-0-05a5f0c18ecc@kernel.org
* patches from https://lore.kernel.org/20250603-work-coredump-socket-protocol-v2-0-05a5f0c18ecc@kernel.org: selftests/coredump: add coredump server selftests tools: add coredump.h header selftests/coredump: cleanup coredump tests selftests/coredump: fix build coredump: allow for flexible coredump handling
Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|
#
be227ba8 |
| 03-Jun-2025 |
Christian Brauner <brauner@kernel.org> |
tools: add coredump.h header
Copy the coredump header so we can rely on it in the selftests.
Link: https://lore.kernel.org/20250603-work-coredump-socket-protocol-v2-4-05a5f0c18ecc@kernel.org Acked-
tools: add coredump.h header
Copy the coredump header so we can rely on it in the selftests.
Link: https://lore.kernel.org/20250603-work-coredump-socket-protocol-v2-4-05a5f0c18ecc@kernel.org Acked-by: Lennart Poettering <lennart@poettering.net> Reviewed-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com> Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|