Alexander Egorenkov
802c7db50e
zfcpdump: fix hsa release for V!=R kernel
...
Since V!=R kernel introduction, HSA memory can be
contained in/spread over more than one ELF LOAD segment of
/proc/vmcore simultaneously. Therefore, the old HSA release logic is no
longer valid because it assumes that HSA memory is fully contained in
exactly one ELF LOAD segment of /proc/vmcore. This resulted in zfcpdump
releasing HSA memory too soon and by that making parts of /proc/vmcore
which cover HSA memory unreadable by user space. To correct this
problem on V!=R kernel, we need first to find all ELF LOAD segments
containing HSA memory, write those /proc/vmcore parts first and only then
release HSA memory. The new HSA release logic must be able to handle
both V!=R and V==R kernels to be backwards compatible.
====================
Tests of V!=R kernel
====================
Output of test run (KASLR on)
=============================
Writing dump:
TRACE: Read: /sys/kernel/debug/zcore/hsa:
TRACE: '2ffff000'
TRACE: ELF LOAD segment: p_offset=0x0000000000009000 p_filesz=0x0000000001cb0000 p_paddr=0x00000002f1e30000 p_vaddr=0x000002c609044000
TRACE: ELF LOAD segment: p_offset=0x0000000001cb9000 p_filesz=0x0000000040000000 p_paddr=0x0000000000000000 p_vaddr=0x000001bd00000000
TRACE: ELF LOAD segment: p_offset=0x0000000041cb9000 p_filesz=0x0000000300000000 p_paddr=0x0000000100000000 p_vaddr=0x000001be00000000
TRACE: Write copy table entry 0: off=0x0000000001cb9000 size=0x000000002ffff000 hsa=1
TRACE: Write copy table entry 1: off=0x0000000000001000 size=0x0000000001cb8000 hsa=0
TRACE: Release HSA memory
TRACE: Write copy table entry 2: off=0x0000000031cb8000 size=0x0000000310001000 hsa=0
TRACE: Write copy table entry 3: off=0x0000000000000000 size=0x0000000000001000 hsa=0
Dump successful
Output of test run (KASLR off)
==============================
Writing dump:
TRACE: Read: /sys/kernel/debug/zcore/hsa:
TRACE: '2ffff000'
TRACE: ELF LOAD segment: p_offset=0x0000000000009000 p_filesz=0x0000000001cb0000 p_paddr=0x0000000000c21000 p_vaddr=0x000003ffe0000000
TRACE: ELF LOAD segment: p_offset=0x0000000001cb9000 p_filesz=0x0000000040000000 p_paddr=0x0000000000000000 p_vaddr=0x000002f200000000
TRACE: ELF LOAD segment: p_offset=0x0000000041cb9000 p_filesz=0x0000000300000000 p_paddr=0x0000000100000000 p_vaddr=0x000002f300000000
TRACE: Write copy table entry 0: off=0x0000000000009000 size=0x0000000001cb0000 hsa=1
TRACE: Write copy table entry 1: off=0x0000000001cb9000 size=0x000000002ffff000 hsa=1
TRACE: Write copy table entry 2: off=0x0000000000001000 size=0x0000000000008000 hsa=0
TRACE: Release HSA memory
TRACE: Write copy table entry 3: off=0x0000000031cb8000 size=0x0000000310001000 hsa=0
TRACE: Write copy table entry 4: off=0x0000000000000000 size=0x0000000000001000 hsa=0
Dump successful
====================
Tests of V==R kernel
====================
Output of test run (KASLR on)
=============================
Writing dump:
TRACE: Read: /sys/kernel/debug/zcore/hsa:
TRACE: '2ffff000'
TRACE: ELF LOAD segment: p_offset=0x0000000000009000 p_filesz=0x0000000000000000 p_paddr=0x0000000000000000 p_vaddr=0x0000000000000000
TRACE: ELF LOAD segment: p_offset=0x0000000000009000 p_filesz=0x0000000040000000 p_paddr=0x0000000000000000 p_vaddr=0x0000000000000000
TRACE: ELF LOAD segment: p_offset=0x0000000040009000 p_filesz=0x0000000300000000 p_paddr=0x0000000100000000 p_vaddr=0x0000000100000000
TRACE: Write copy table entry 0: off=0x0000000000009000 size=0x000000002ffff000 hsa=1
TRACE: Write copy table entry 1: off=0x0000000000001000 size=0x0000000000008000 hsa=0
TRACE: Release HSA memory
TRACE: Write copy table entry 2: off=0x0000000030008000 size=0x0000000310001000 hsa=0
TRACE: Write copy table entry 3: off=0x0000000000000000 size=0x0000000000001000 hsa=0
Dump successful
Output of test run (KASLR off)
==============================
Writing dump:
TRACE: Read: /sys/kernel/debug/zcore/hsa:
TRACE: '2ffff000'
TRACE: ELF LOAD segment: p_offset=0x0000000000009000 p_filesz=0x0000000000000000 p_paddr=0x0000000000000000 p_vaddr=0x0000000000000000
TRACE: ELF LOAD segment: p_offset=0x0000000000009000 p_filesz=0x0000000040000000 p_paddr=0x0000000000000000 p_vaddr=0x0000000000000000
TRACE: ELF LOAD segment: p_offset=0x0000000040009000 p_filesz=0x0000000300000000 p_paddr=0x0000000100000000 p_vaddr=0x0000000100000000
TRACE: Write copy table entry 0: off=0x0000000000009000 size=0x000000002ffff000 hsa=1
TRACE: Write copy table entry 1: off=0x0000000000001000 size=0x0000000000008000 hsa=0
TRACE: Release HSA memory
TRACE: Write copy table entry 2: off=0x0000000030008000 size=0x0000000310001000 hsa=0
TRACE: Write copy table entry 3: off=0x0000000000000000 size=0x0000000000001000 hsa=0
Dump successful
Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Reviewed-by: Mikhail Zaslonko <zaslonko@linux.ibm.com >
Signed-off-by: Steffen Eiden <seiden@linux.ibm.com >
2024-05-27 16:49:54 +02:00
Mikhail Zaslonko
0ed6c1ccde
zfcpdump: Search for zero paddr vmcore load to identify HSA
...
Check for vmcore LOAD segment with zero paddr (instead of zero vaddr) to
identify HSA since physical and virtual addresses can be uncoupled on s390.
Signed-off-by: Mikhail Zaslonko <zaslonko@linux.ibm.com >
Acked-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2024-04-26 15:07:19 +02:00
Alexander Egorenkov
1ae4fd18fe
zfcpdump: reuse SCSI struct definitions from boot_defs.h
...
To remove duplication of definitions.
Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Reviewed-by: Mikhail Zaslonko <zaslonko@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2022-06-20 13:14:04 +02:00
Philipp Rudo
c7fcb457b0
zfcpdump: Make use of __packed macro
...
Make use of the pre-defined __packed macro throughout zfcpdump.
Signed-off-by: Philipp Rudo <prudo@linux.ibm.com >
Reviewed-by: Stefan Haberland <sth@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2019-12-12 18:04:32 +01:00
Philipp Rudo
f02de298c1
zfcpdump: Remove module load
...
The zfcpdump kernel is built without module support. Furthermore the initrd
doesn't contain modprobe. So trying to load modules using modprobe in
zfcpdump userspace doesn't really make sense.
Signed-off-by: Philipp Rudo <prudo@linux.ibm.com >
Reviewed-by: Steffen Maier <maier@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2018-09-04 14:09:24 +02:00
Michael Holzheu
b627b8d8e1
Initial s390-tools-2.0.0 import
...
This commit is based on the s390-tools-1.39.0 version.
Changes on top of s390-tools-1.39.0:
- Add MIT license to all source files
- Add LICENSE file
- Transform REAMDE to README.md (markdown)
- Add AUTHORS.md file
- Add CONTRIBUTING.md file
- Move changelog from README to CHANGELOG.md file
Reviewed-by: Stefan Haberland <sth@linux.vnet.ibm.com >
Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com >
2017-08-21 10:55:40 +02:00