On Mon, Jan 27, 2020 at 11:04:44AM -0500, Dave Anderson wrote:
----- Original Message -----
>
>
> ----- Original Message -----
> > On Mon, Jan 27, 2020 at 10:17:51AM -0500, Dave Anderson wrote:
> > >
> > >
> > > ----- Original Message -----
> > > > On Mon, Jan 27, 2020 at 09:56:53AM -0500, Dave Anderson wrote:
> > > > >
> > > > >
> > > > > ----- Original Message -----
> > > > > > From: Masayoshi Mizuma <m.mizuma(a)jp.fujitsu.com>
> > > > > >
> > > > > > Fix for aarch64 with Linux v5.0 and later kernels that
> > > > > > contains commit 91fc957c9b1d ("arm64/bpf: don't
allocate
> > > > > > BPF JIT programs in module memory") and the memory
dump
> > > > > > is captured by virsh dump.
> > > > > >
> > > > > > Note: Another two issues remain for the memory dump
captured by
> > > > > > virsh dump with aarch64.
> > > > >
> > > > > I'm confused -- the vmcoreinfo data has been passed to the
KVM host
> > > > > for the virsh dump for quite some time now. Is it not passed
back
> > > > > to the host on aarch64?
> > > >
> > > > The vmcore_data shows that vmcoreinfo size is 0, so I think
vmcoreinfo
> > > > isn't captured by virsh dump.
> > > > Am I missing something...?
> > >
> > > I'm not sure -- are you using "virsh dump --memory-only
..."?
> >
> > Yes, I'm using --memory-only option like as:
> >
> > virsh dump --crash --memory-only <Guest> <Dumpfile>
>
> OK, then that's news to me. We went through this a while ago on x86_64
> because it required the vmcoreinfo "phys_base". It took awhile to get
> it upstream, but now the whole vmcoreinfo note is passed for virsh dump
> to include with the dumpfile. Maybe it's x86_64 only?
Looking back through old bugzillas, google, etc, it does seem to indicate
that the support covers "arm/x86", which I presume covers aarch64. See
kernel commit 2d6d60a3d3eca50bbb20052278cb11dabcf4dff3 titled
"fw_cfg: write vmcoreinfo details".
I see a few old postings from Daisuke that indicate the the vmcoreinfo device
has be registered with a "devices" or "features" file on the host (?)
by
using "virsh edit"? Again, sorry, I'm clueless.
Thanks, I didn't know qemu has '-device vmcoreinfo' option.
It seems that the vmcoreinfo option works for aarch64 as well.
The KASLR issue and the modules_vaddr issue are gone with
vmcoreinfo option. Great!
However, VA_BITS issue still remains the vmcoreinfo doesn't have
'NUMBER(tcr_el1_t1sz)'.
I suppose we can use 'NUMBER(VA_BITS)' instead, so I'll post
another patch later.
BTW, could you merge the patch which I posted today
in case the '-device vmcoreinfo' isn't set to qemu?
https://www.redhat.com/archives/crash-utility/2020-January/msg00010.html
Thanks,
Masa
Anyway, Daisuke should be able fill in the details.
Dave
>
> Dave
>
>
> >
> > - Masa
> >
> > >
> > > Dave
> > >
> > >
> > > >
> > > > ./crash -d1 vmlinux-v5.4 dump.v5.4
> > > > ...
> > > > vmcore_data:
> > > > flags: c0 (KDUMP_LOCAL|KDUMP_ELF64)
> > > > ndfd: 3
> > > > ofp: ffffa5e81588
> > > > header_size: 30896
> > > > num_pt_load_segments: 1
> > > > pt_load_segment[0]:
> > > > file_offset: 78b0
> > > > phys_start: 40000000
> > > > phys_end: 260000000
> > > > zero_fill: 0
> > > > elf_header: 2ed6d4e0
> > > > elf32: 0
> > > > notes32: 0
> > > > load32: 0
> > > > elf64: 2ed6d4e0
> > > > notes64: 2ed6d520
> > > > load64: 2ed6d558
> > > > sect0_64: 0
> > > > nt_prstatus: 2ed6d590
> > > > nt_prpsinfo: 0
> > > > nt_taskstruct: 0
> > > > task_struct: 0
> > > > arch_data1: (unused)
> > > > arch_data2: (unused)
> > > > switch_stack: 0
> > > > page_size: 0
> > > > xen_kdump_data: (unused)
> > > > num_prstatus_notes: 32
> > > > num_qemu_notes: 0
> > > > vmcoreinfo: 0
> > > > size_vmcoreinfo: 0
> > > > nt_prstatus_percpu:
> > > > 000000002ed6d590 000000002ed6d950 000000002ed6dd10
> > > > 000000002ed6e0d0
> > > > 000000002ed6e490 000000002ed6e850 000000002ed6ec10
> > > > 000000002ed6efd0
> > > > 000000002ed6f390 000000002ed6f750 000000002ed6fb10
> > > > 000000002ed6fed0
> > > > 000000002ed70290 000000002ed70650 000000002ed70a10
> > > > 000000002ed70dd0
> > > > 000000002ed71190 000000002ed71550 000000002ed71910
> > > > 000000002ed71cd0
> > > > 000000002ed72090 000000002ed72450 000000002ed72810
> > > > 000000002ed72bd0
> > > > 000000002ed72f90 000000002ed73350 000000002ed73710
> > > > 000000002ed73ad0
> > > > 000000002ed73e90 000000002ed74250 000000002ed74610
> > > > 000000002ed749d0
> > > > nt_qemu_percpu:
> > > > backup_src_start: 0
> > > > backup_src_size: 0
> > > > backup_offset: 0
> > > > ...
> > > >
> > > > Thanks,
> > > > Masa
> > > >
> > > > >
> > > > > Dave
> > > > >
> > > > > I
> > > > > >
> > > > > > 1. KASLR
> > > > > > crash doesn't work in case KASLR is enabled on the
guest.
> > > > > > That is because the memory dump doesn't have
vmcoreinfo, so we
> > > > > > cannot get the relocation position.
> > > > > > I suppose we need to implement calc_kaslr_offset() for
aarch64.
> > > > > > nokaslr with the guest kernel parameter is a
workaround.
> > > > > >
> > > > > > 2. VA_BITS
> > > > > > crash doesn't work in case the guest kernel is v5.4
and later.
> > > > > > That is because the memory dump doesn't have
vmcoreinfo, so we
> > > > > > cannot get vabits_actual.
> > > > > > I think there's no workaround so far...
> > > > > >
> > > > > > Masayoshi Mizuma (1):
> > > > > > arm64: Fix missing offset for modules_vaddr with aarch64
guest
> > > > > > dump
> > > > > >
> > > > > > arm64.c | 2 ++
> > > > > > defs.h | 3 +++
> > > > > > 2 files changed, 5 insertions(+)
> > > > > >
> > > > > > --
> > > > > > 2.18.1
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Crash-utility mailing list
> > > > > > Crash-utility(a)redhat.com
> > > > > >
https://www.redhat.com/mailman/listinfo/crash-utility
> > > > > >
> > > > >
> > > > > --
> > > > > Crash-utility mailing list
> > > > > Crash-utility(a)redhat.com
> > > > >
https://www.redhat.com/mailman/listinfo/crash-utility
> > > > >
> > > >
> > > >
> > >
> >
> >
>
> --
> Crash-utility mailing list
> Crash-utility(a)redhat.com
>
https://www.redhat.com/mailman/listinfo/crash-utility
>