qemu/include/sysemu
Stephen Brennan d43a01db28 dump: Allow directly outputting raw kdump format
The flattened format (currently output by QEMU) is used by makedumpfile
only when it is outputting a vmcore to a file which is not seekable. The
flattened format functions essentially as a set of instructions of the
form "seek to the given offset, then write the given bytes out".

The flattened format can be reconstructed using makedumpfile -R, or
makedumpfile-R.pl, but it is a slow process because it requires copying
the entire vmcore. The flattened format can also be directly read by
crash, but still, it requires a lengthy reassembly phase.

To sum up, the flattened format is not an ideal one: it should only be
used on files which are actually not seekable. This is the exact
strategy which makedumpfile uses, as seen in the implementation of
"write_buffer()" in makedumpfile [1]. However, QEMU has always used the
flattened format. For compatibility it is best not to change the default
output format without warning. So, add a flag to DumpState which changes
the output to use the normal (i.e. raw) format. This flag will be added
to the QMP and HMP commands in the next change.

[1]: f23bb94356/makedumpfile.c (L5008-L5040)

Signed-off-by: Stephen Brennan <stephen.s.brennan@oracle.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
[ Marc-André: replace loff_t with off_t ]
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20230918233233.1431858-3-stephen.s.brennan@oracle.com>
2023-11-02 18:05:02 +04:00
..
accel-blocker.h bulk: Do not declare function prototypes using 'extern' keyword 2023-08-31 19:47:43 +02:00
accel-ops.h gdbstub: move update guest debug to accel ops 2023-03-07 20:44:09 +00:00
arch_init.h
balloon.h
block-backend-common.h block: drain from main loop thread in bdrv_co_yield_to_drain() 2023-05-30 17:32:02 +02:00
block-backend-global-state.h block: Mark bdrv_first_blk() and bdrv_is_root_node() GRAPH_RDLOCK 2023-10-12 16:31:33 +02:00
block-backend-io.h util/defer-call: move defer_call() to util/ 2023-10-31 15:41:42 +01:00
block-backend.h
block-ram-registrar.h
blockdev.h
cpu-throttle.h
cpu-timers-internal.h system: Rename softmmu/ directory as system/ 2023-10-08 21:08:08 +02:00
cpu-timers.h
cpus.h cpus: Remove unused smp_cores/smp_threads declarations 2023-10-12 00:37:39 +03:00
cryptodev-vhost-user.h
cryptodev-vhost.h include/: spelling fixes 2023-09-08 13:08:52 +03:00
cryptodev.h include/: spelling fixes 2023-09-08 13:08:52 +03:00
device_tree.h sysemu/device_tree: Clean up local variable shadowing 2023-09-29 10:07:16 +02:00
dirtylimit.h migration: Extend query-migrate to provide dirty page limit info 2023-07-26 10:55:56 +02:00
dirtyrate.h
dma.h
dump-arch.h
dump.h dump: Allow directly outputting raw kdump format 2023-11-02 18:05:02 +04:00
event-loop-base.h
hostmem.h
hvf_int.h accel: Rename HVF 'struct hvf_vcpu_state' -> AccelCPUState 2023-06-28 14:14:22 +02:00
hvf.h sysemu/kvm: Restrict hvf_get_supported_cpuid() to x86 targets 2023-10-07 19:02:32 +02:00
hw_accel.h accel: Remove HAX accelerator 2023-08-31 19:46:43 +02:00
iothread.h include/: spelling fixes 2023-09-08 13:08:52 +03:00
kvm_int.h kvm: i386: require KVM_CAP_SET_VCPU_EVENTS and KVM_CAP_X86_ROBUST_SINGLESTEP 2023-10-25 19:53:30 +02:00
kvm_xen.h kvm/i386: Add xen-evtchn-max-pirq property 2023-03-01 09:09:22 +00:00
kvm.h kvm: i386: require KVM_CAP_SET_VCPU_EVENTS and KVM_CAP_X86_ROBUST_SINGLESTEP 2023-10-25 19:53:30 +02:00
memory_mapping.h memory: follow Error API guidelines 2023-10-19 23:13:27 +02:00
numa.h
nvmm.h accel: Document generic accelerator headers 2023-06-28 13:55:35 +02:00
os-posix.h os-posix: Clean up global variable shadowing 2023-10-06 13:27:48 +02:00
os-win32.h * only build util/async-teardown.c when system build is requested 2023-09-07 10:29:06 -04:00
qtest.h softmmu/qtest: Move the target-specific pseries RTAS code out of qtest.c 2023-04-20 11:25:32 +02:00
replay.h
reset.h
rng-random.h
rng.h
rtc.h rtc: Use time_t for passing and returning time offsets 2023-08-31 09:45:18 +01:00
runstate-action.h system: Rename softmmu/ directory as system/ 2023-10-08 21:08:08 +02:00
runstate.h softmmu: add means to pass an exit code when requesting a shutdown 2023-10-12 12:32:20 +10:00
seccomp.h
stats.h include/: spelling fixes 2023-09-08 13:08:52 +03:00
sysemu.h softmmu: pass the main loop status to gdb "Wxx" packet 2023-10-12 12:33:24 +10:00
tcg.h accel: Document generic accelerator headers 2023-06-28 13:55:35 +02:00
tpm_backend.h include/: spelling fixes 2023-09-08 13:08:52 +03:00
tpm_util.h
tpm.h sysemu/tpm: Clean up global variable shadowing 2023-10-06 13:27:48 +02:00
vhost-user-backend.h
watchdog.h
whpx.h accel: Document generic accelerator headers 2023-06-28 13:55:35 +02:00
xen-mapcache.h
xen.h accel: Document generic accelerator headers 2023-06-28 13:55:35 +02:00