Upstream: https://github.com/makedumpfile/makedumpfile.git Conflict: none Resolves: RHEL-88006 Resolves: RHEL-93694 commit 65bf4c9ef0fd0cbf2fb99b60e15b00d984b391b8 Author: Tao Liu <ltao@redhat.com> Date: Wed Jun 25 14:23:44 2025 +1200 [PATCH v2] Fix a data race in multi-threading mode (--num-threads=N) A vmcore corrupt issue has been noticed in powerpc arch [1]. It can be reproduced with upstream makedumpfile. When analyzing the corrupt vmcore using crash, the following error message will output: crash: compressed kdump: uncompress failed: 0 crash: read error: kernel virtual address: c0001e2d2fe48000 type: "hardirq thread_union" crash: cannot read hardirq_ctx[930] at c0001e2d2fe48000 crash: compressed kdump: uncompress failed: 0 If the vmcore is generated without num-threads option, then no such errors are noticed. With --num-threads=N enabled, there will be N sub-threads created. All sub-threads are producers which responsible for mm page processing, e.g. compression. The main thread is the consumer which responsible for writing the compressed data into file. page_flag_buf->ready is used to sync main and sub-threads. When a sub-thread finishes page processing, it will set ready flag to be FLAG_READY. In the meantime, main thread looply check all threads of the ready flags, and break the loop when find FLAG_READY. page_flag_buf->ready is read/write by main/sub-threads simultaneously, but it is unprotected and unsafe. I have tested both mutex and atomic_rw can fix this issue. This patch takes atomic_rw for its simplicity. [1]: https://github.com/makedumpfile/makedumpfile/issues/15 Resolves: https://github.com/makedumpfile/makedumpfile/issues/15 Tested-by: Sourabh Jain <sourabhjain@linux.ibm.com> Signed-off-by: Tao Liu <ltao@redhat.com> Signed-off-by: Tao Liu <ltao@redhat.com> |
||
|---|---|---|
| .gitignore | ||
| 0001-PATCH-v2-Fix-a-data-race-in-multi-threading-mode-num.patch | ||
| gating.yaml | ||
| makedumpfile.spec | ||
| README.md | ||
| sources | ||
makedumpfile
The makedumpfile package