d43a01db28
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]:
|
||
---|---|---|
.. | ||
accel-blocker.h | ||
accel-ops.h | ||
arch_init.h | ||
balloon.h | ||
block-backend-common.h | ||
block-backend-global-state.h | ||
block-backend-io.h | ||
block-backend.h | ||
block-ram-registrar.h | ||
blockdev.h | ||
cpu-throttle.h | ||
cpu-timers-internal.h | ||
cpu-timers.h | ||
cpus.h | ||
cryptodev-vhost-user.h | ||
cryptodev-vhost.h | ||
cryptodev.h | ||
device_tree.h | ||
dirtylimit.h | ||
dirtyrate.h | ||
dma.h | ||
dump-arch.h | ||
dump.h | ||
event-loop-base.h | ||
hostmem.h | ||
hvf_int.h | ||
hvf.h | ||
hw_accel.h | ||
iothread.h | ||
kvm_int.h | ||
kvm_xen.h | ||
kvm.h | ||
memory_mapping.h | ||
numa.h | ||
nvmm.h | ||
os-posix.h | ||
os-win32.h | ||
qtest.h | ||
replay.h | ||
reset.h | ||
rng-random.h | ||
rng.h | ||
rtc.h | ||
runstate-action.h | ||
runstate.h | ||
seccomp.h | ||
stats.h | ||
sysemu.h | ||
tcg.h | ||
tpm_backend.h | ||
tpm_util.h | ||
tpm.h | ||
vhost-user-backend.h | ||
watchdog.h | ||
whpx.h | ||
xen-mapcache.h | ||
xen.h |