[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3] target: ppc: Use MSR_HVB bit to get the target endianness

From: Nicholas Piggin
Subject: Re: [PATCH v3] target: ppc: Use MSR_HVB bit to get the target endianness for memory dump
Date: Mon, 29 May 2023 13:42:26 +1000

On Tue May 23, 2023 at 2:02 AM AEST, Narayana Murty N wrote:
> Changes since V2:
> commit message modified as per feedbak from Nicholas Piggin.
> Changes since V1:
> https://lore.kernel.org/qemu-devel/20230420145055.10196-1-nnmlinux@linux.ibm.com/
> The approach to solve the issue was changed based on feedback from
> Fabiano Rosas on patch V1.
> ---
>  target/ppc/arch_dump.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> diff --git a/target/ppc/arch_dump.c b/target/ppc/arch_dump.c
> index f58e6359d5..a8315659d9 100644
> --- a/target/ppc/arch_dump.c
> +++ b/target/ppc/arch_dump.c
> @@ -237,7 +237,7 @@ int cpu_get_dump_info(ArchDumpInfo *info,
>      info->d_machine = PPC_ELF_MACHINE;
>      info->d_class = ELFCLASS;
> -    if (ppc_interrupts_little_endian(cpu, cpu->env.has_hv_mode)) {
> +    if (ppc_interrupts_little_endian(cpu, !!(cpu->env.msr_mask & MSR_HVB))) {
>          info->d_endian = ELFDATA2LSB;
>      } else {
>          info->d_endian = ELFDATA2MSB;

Oh, and now I see it cpu_get_dump_info just picks the first CPU to test
this! So a test that can change at runtime is surely not the right one.
If you use MSR[HV] then if you have a SMP machine that is doing a bunch
of things and you want to dump to debug the system, this will just
randomly give you a wrong-endian dump if CPU0 just happened to be
running some KVM guest.

I know HILE techically does change at runtime, but at least in practice
it is just boot (and maybe kexec or reboot) so that is the least worst
option. Part of the problem is perhaps the tools and commands aren't so
so suited to ppc's bi-endian nature.

But even ignoring all of that, let's say you have all the same endian
host and guest kernels and dump format... If you dump host memory then
you need host kernel and structures to debug guest kernel/image
(assuming crash or the person debugging it is smart enough to make sense
of it). So I don't see how you can sanely use the crash dump of host
memory with the guest kernel. I must still be missing something.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]