diff options
| author | Christian Brauner <brauner@kernel.org> | 2026-08-20 01:09:28 +0200 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2026-09-22 13:24:59 +0200 |
| commit | af7e6acf00bfc028073b4cea2e9d313703987144 (patch) | |
| tree | f945e6a7b2097f60020ef1595f4eb24ebf1c09f5 /tools/perf/scripts/python/stackcollapse.py | |
| parent | 302b7d6349cfb1d241de70146adfc227f4d81202 (diff) | |
coredump: always chunk writes
Right now dump_emit() is the only coredump helper that writes buffers
larger than a page in one call. For elf notes that can easily blow past
PAGE_SIZE. That's annoying because neither pipes nor af_unix sockets
take such writes in one piece.
If a signal arrives while the writer is waiting they drop a short write.
With the coredump records work coming up that means header and its data
are desynchronized. A write that fits in one pipe buffer or one skb
doesn't suffer from this.
So split all writes up, including elf notes, and cap every write at a
page. The coredump socket already raises sk_sndbuf far enough for a page
to fit a single skb and pipes always work that way.
That means dump_interrupted() is now checked once per page. So a large
coredump stops earlier (good). An empty write no longer issues a
zero-length write. The rlimit core check stays where it was. It
continues refusing whole writes.
Link: https://patch.msgid.link/20260820-work-coredump-sparse-v2-11-ba32dd718c51@kernel.org
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions
