* [PATCH 0/2] arch_dump: fix prstatus pid on s390x and ppc @ 2024-06-19 5:00 Omar Sandoval 2024-06-19 5:00 ` [PATCH 1/2] target/s390x/arch_dump: use correct byte order for pid Omar Sandoval ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Omar Sandoval @ 2024-06-19 5:00 UTC (permalink / raw) To: qemu-devel Cc: qemu-s390x, qemu-ppc, Richard Henderson, David Hildenbrand, Ilya Leoshkevich, Thomas Huth, Nicholas Piggin, Daniel Henrique Barboza, linux-debuggers Hello, I maintain drgn [1], a debugger for the Linux kernel. I ran into a quirk of the NT_PRSTATUS note in kernel core dumps [2], so I looked into how QEMU's dump-guest-memory command generates NT_PRSTATUS. I noticed that on most architectures, the note's PID field is set to the CPU ID plus 1. There are two exceptions: on s390x, there's an endianness bug (it's not byte swapped if the host is little endian), and on ppc, it's not set at all (it defaults to zero). They're both easy fixes. Thanks, Omar 1: https://github.com/osandov/drgn 2: https://github.com/osandov/drgn/issues/404 Omar Sandoval (2): target/s390x/arch_dump: use correct byte order for pid target/ppc/arch_dump: set prstatus pid to cpuid target/ppc/arch_dump.c | 21 ++++++++++++--------- target/s390x/arch_dump.c | 2 +- 2 files changed, 13 insertions(+), 10 deletions(-) -- 2.45.2 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] target/s390x/arch_dump: use correct byte order for pid 2024-06-19 5:00 [PATCH 0/2] arch_dump: fix prstatus pid on s390x and ppc Omar Sandoval @ 2024-06-19 5:00 ` Omar Sandoval 2024-06-19 5:57 ` Thomas Huth 2024-06-19 5:00 ` [PATCH 2/2] target/ppc/arch_dump: set prstatus pid to cpuid Omar Sandoval 2024-06-24 6:17 ` [PATCH 0/2] arch_dump: fix prstatus pid on s390x and ppc Thomas Huth 2 siblings, 1 reply; 7+ messages in thread From: Omar Sandoval @ 2024-06-19 5:00 UTC (permalink / raw) To: qemu-devel Cc: qemu-s390x, qemu-ppc, Richard Henderson, David Hildenbrand, Ilya Leoshkevich, Thomas Huth, Nicholas Piggin, Daniel Henrique Barboza, linux-debuggers The pid field of prstatus needs to be big endian like all of the other fields. Fixes: f738f296eaae ("s390x/arch_dump: pass cpuid into notes sections") Signed-off-by: Omar Sandoval <osandov@osandov.com> --- target/s390x/arch_dump.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/s390x/arch_dump.c b/target/s390x/arch_dump.c index 7e8a1b4fc0..029d91d93a 100644 --- a/target/s390x/arch_dump.c +++ b/target/s390x/arch_dump.c @@ -102,7 +102,7 @@ static void s390x_write_elf64_prstatus(Note *note, S390CPU *cpu, int id) regs->acrs[i] = cpu_to_be32(cpu->env.aregs[i]); regs->gprs[i] = cpu_to_be64(cpu->env.regs[i]); } - note->contents.prstatus.pid = id; + note->contents.prstatus.pid = cpu_to_be32(id); } static void s390x_write_elf64_fpregset(Note *note, S390CPU *cpu, int id) -- 2.45.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] target/s390x/arch_dump: use correct byte order for pid 2024-06-19 5:00 ` [PATCH 1/2] target/s390x/arch_dump: use correct byte order for pid Omar Sandoval @ 2024-06-19 5:57 ` Thomas Huth 0 siblings, 0 replies; 7+ messages in thread From: Thomas Huth @ 2024-06-19 5:57 UTC (permalink / raw) To: Omar Sandoval, qemu-devel Cc: qemu-s390x, qemu-ppc, Richard Henderson, David Hildenbrand, Ilya Leoshkevich, Nicholas Piggin, Daniel Henrique Barboza, linux-debuggers, QEMU Trivial On 19/06/2024 07.00, Omar Sandoval wrote: > The pid field of prstatus needs to be big endian like all of the other > fields. > > Fixes: f738f296eaae ("s390x/arch_dump: pass cpuid into notes sections") > Signed-off-by: Omar Sandoval <osandov@osandov.com> > --- > target/s390x/arch_dump.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/s390x/arch_dump.c b/target/s390x/arch_dump.c > index 7e8a1b4fc0..029d91d93a 100644 > --- a/target/s390x/arch_dump.c > +++ b/target/s390x/arch_dump.c > @@ -102,7 +102,7 @@ static void s390x_write_elf64_prstatus(Note *note, S390CPU *cpu, int id) > regs->acrs[i] = cpu_to_be32(cpu->env.aregs[i]); > regs->gprs[i] = cpu_to_be64(cpu->env.regs[i]); > } > - note->contents.prstatus.pid = id; > + note->contents.prstatus.pid = cpu_to_be32(id); > } > > static void s390x_write_elf64_fpregset(Note *note, S390CPU *cpu, int id) Reviewed-by: Thomas Huth <thuth@redhat.com> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/2] target/ppc/arch_dump: set prstatus pid to cpuid 2024-06-19 5:00 [PATCH 0/2] arch_dump: fix prstatus pid on s390x and ppc Omar Sandoval 2024-06-19 5:00 ` [PATCH 1/2] target/s390x/arch_dump: use correct byte order for pid Omar Sandoval @ 2024-06-19 5:00 ` Omar Sandoval 2024-06-19 6:01 ` Thomas Huth 2024-06-24 7:22 ` Harsh Prateek Bora 2024-06-24 6:17 ` [PATCH 0/2] arch_dump: fix prstatus pid on s390x and ppc Thomas Huth 2 siblings, 2 replies; 7+ messages in thread From: Omar Sandoval @ 2024-06-19 5:00 UTC (permalink / raw) To: qemu-devel Cc: qemu-s390x, qemu-ppc, Richard Henderson, David Hildenbrand, Ilya Leoshkevich, Thomas Huth, Nicholas Piggin, Daniel Henrique Barboza, linux-debuggers Every other architecture does this, and debuggers need it to be able to identify which prstatus note corresponds to which CPU. Signed-off-by: Omar Sandoval <osandov@osandov.com> --- target/ppc/arch_dump.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/target/ppc/arch_dump.c b/target/ppc/arch_dump.c index a8315659d9..78b4205319 100644 --- a/target/ppc/arch_dump.c +++ b/target/ppc/arch_dump.c @@ -47,9 +47,11 @@ struct PPCUserRegStruct { } QEMU_PACKED; struct PPCElfPrstatus { - char pad1[112]; + char pad1[32]; + uint32_t pid; + uint8_t pad2[76]; struct PPCUserRegStruct pr_reg; - char pad2[40]; + char pad3[40]; } QEMU_PACKED; @@ -96,7 +98,7 @@ typedef struct NoteFuncArg { DumpState *state; } NoteFuncArg; -static void ppc_write_elf_prstatus(NoteFuncArg *arg, PowerPCCPU *cpu) +static void ppc_write_elf_prstatus(NoteFuncArg *arg, PowerPCCPU *cpu, int id) { int i; reg_t cr; @@ -109,6 +111,7 @@ static void ppc_write_elf_prstatus(NoteFuncArg *arg, PowerPCCPU *cpu) prstatus = ¬e->contents.prstatus; memset(prstatus, 0, sizeof(*prstatus)); + prstatus->pid = cpu_to_dump32(s, id); reg = &prstatus->pr_reg; for (i = 0; i < 32; i++) { @@ -127,7 +130,7 @@ static void ppc_write_elf_prstatus(NoteFuncArg *arg, PowerPCCPU *cpu) reg->ccr = cpu_to_dump_reg(s, cr); } -static void ppc_write_elf_fpregset(NoteFuncArg *arg, PowerPCCPU *cpu) +static void ppc_write_elf_fpregset(NoteFuncArg *arg, PowerPCCPU *cpu, int id) { int i; struct PPCElfFpregset *fpregset; @@ -146,7 +149,7 @@ static void ppc_write_elf_fpregset(NoteFuncArg *arg, PowerPCCPU *cpu) fpregset->fpscr = cpu_to_dump_reg(s, cpu->env.fpscr); } -static void ppc_write_elf_vmxregset(NoteFuncArg *arg, PowerPCCPU *cpu) +static void ppc_write_elf_vmxregset(NoteFuncArg *arg, PowerPCCPU *cpu, int id) { int i; struct PPCElfVmxregset *vmxregset; @@ -178,7 +181,7 @@ static void ppc_write_elf_vmxregset(NoteFuncArg *arg, PowerPCCPU *cpu) vmxregset->vscr.u32[3] = cpu_to_dump32(s, ppc_get_vscr(&cpu->env)); } -static void ppc_write_elf_vsxregset(NoteFuncArg *arg, PowerPCCPU *cpu) +static void ppc_write_elf_vsxregset(NoteFuncArg *arg, PowerPCCPU *cpu, int id) { int i; struct PPCElfVsxregset *vsxregset; @@ -195,7 +198,7 @@ static void ppc_write_elf_vsxregset(NoteFuncArg *arg, PowerPCCPU *cpu) } } -static void ppc_write_elf_speregset(NoteFuncArg *arg, PowerPCCPU *cpu) +static void ppc_write_elf_speregset(NoteFuncArg *arg, PowerPCCPU *cpu, int id) { struct PPCElfSperegset *speregset; Note *note = &arg->note; @@ -211,7 +214,7 @@ static void ppc_write_elf_speregset(NoteFuncArg *arg, PowerPCCPU *cpu) static const struct NoteFuncDescStruct { int contents_size; - void (*note_contents_func)(NoteFuncArg *arg, PowerPCCPU *cpu); + void (*note_contents_func)(NoteFuncArg *arg, PowerPCCPU *cpu, int id); } note_func[] = { {sizeof_field(Note, contents.prstatus), ppc_write_elf_prstatus}, {sizeof_field(Note, contents.fpregset), ppc_write_elf_fpregset}, @@ -282,7 +285,7 @@ static int ppc_write_all_elf_notes(const char *note_name, arg.note.hdr.n_descsz = cpu_to_dump32(s, nf->contents_size); strncpy(arg.note.name, note_name, sizeof(arg.note.name)); - (*nf->note_contents_func)(&arg, cpu); + (*nf->note_contents_func)(&arg, cpu, id); note_size = sizeof(arg.note) - sizeof(arg.note.contents) + nf->contents_size; -- 2.45.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] target/ppc/arch_dump: set prstatus pid to cpuid 2024-06-19 5:00 ` [PATCH 2/2] target/ppc/arch_dump: set prstatus pid to cpuid Omar Sandoval @ 2024-06-19 6:01 ` Thomas Huth 2024-06-24 7:22 ` Harsh Prateek Bora 1 sibling, 0 replies; 7+ messages in thread From: Thomas Huth @ 2024-06-19 6:01 UTC (permalink / raw) To: Omar Sandoval, qemu-devel Cc: qemu-s390x, qemu-ppc, Richard Henderson, David Hildenbrand, Ilya Leoshkevich, Nicholas Piggin, Daniel Henrique Barboza, linux-debuggers, QEMU Trivial On 19/06/2024 07.00, Omar Sandoval wrote: > Every other architecture does this, and debuggers need it to be able to > identify which prstatus note corresponds to which CPU. > > Signed-off-by: Omar Sandoval <osandov@osandov.com> > --- > target/ppc/arch_dump.c | 21 ++++++++++++--------- > 1 file changed, 12 insertions(+), 9 deletions(-) > > diff --git a/target/ppc/arch_dump.c b/target/ppc/arch_dump.c > index a8315659d9..78b4205319 100644 > --- a/target/ppc/arch_dump.c > +++ b/target/ppc/arch_dump.c > @@ -47,9 +47,11 @@ struct PPCUserRegStruct { > } QEMU_PACKED; > > struct PPCElfPrstatus { > - char pad1[112]; > + char pad1[32]; > + uint32_t pid; > + uint8_t pad2[76]; > struct PPCUserRegStruct pr_reg; > - char pad2[40]; > + char pad3[40]; > } QEMU_PACKED; > > > @@ -96,7 +98,7 @@ typedef struct NoteFuncArg { > DumpState *state; > } NoteFuncArg; > > -static void ppc_write_elf_prstatus(NoteFuncArg *arg, PowerPCCPU *cpu) > +static void ppc_write_elf_prstatus(NoteFuncArg *arg, PowerPCCPU *cpu, int id) > { > int i; > reg_t cr; > @@ -109,6 +111,7 @@ static void ppc_write_elf_prstatus(NoteFuncArg *arg, PowerPCCPU *cpu) > > prstatus = ¬e->contents.prstatus; > memset(prstatus, 0, sizeof(*prstatus)); > + prstatus->pid = cpu_to_dump32(s, id); > reg = &prstatus->pr_reg; > > for (i = 0; i < 32; i++) { > @@ -127,7 +130,7 @@ static void ppc_write_elf_prstatus(NoteFuncArg *arg, PowerPCCPU *cpu) > reg->ccr = cpu_to_dump_reg(s, cr); > } > > -static void ppc_write_elf_fpregset(NoteFuncArg *arg, PowerPCCPU *cpu) > +static void ppc_write_elf_fpregset(NoteFuncArg *arg, PowerPCCPU *cpu, int id) > { > int i; > struct PPCElfFpregset *fpregset; > @@ -146,7 +149,7 @@ static void ppc_write_elf_fpregset(NoteFuncArg *arg, PowerPCCPU *cpu) > fpregset->fpscr = cpu_to_dump_reg(s, cpu->env.fpscr); > } > > -static void ppc_write_elf_vmxregset(NoteFuncArg *arg, PowerPCCPU *cpu) > +static void ppc_write_elf_vmxregset(NoteFuncArg *arg, PowerPCCPU *cpu, int id) > { > int i; > struct PPCElfVmxregset *vmxregset; > @@ -178,7 +181,7 @@ static void ppc_write_elf_vmxregset(NoteFuncArg *arg, PowerPCCPU *cpu) > vmxregset->vscr.u32[3] = cpu_to_dump32(s, ppc_get_vscr(&cpu->env)); > } > > -static void ppc_write_elf_vsxregset(NoteFuncArg *arg, PowerPCCPU *cpu) > +static void ppc_write_elf_vsxregset(NoteFuncArg *arg, PowerPCCPU *cpu, int id) > { > int i; > struct PPCElfVsxregset *vsxregset; > @@ -195,7 +198,7 @@ static void ppc_write_elf_vsxregset(NoteFuncArg *arg, PowerPCCPU *cpu) > } > } > > -static void ppc_write_elf_speregset(NoteFuncArg *arg, PowerPCCPU *cpu) > +static void ppc_write_elf_speregset(NoteFuncArg *arg, PowerPCCPU *cpu, int id) > { > struct PPCElfSperegset *speregset; > Note *note = &arg->note; > @@ -211,7 +214,7 @@ static void ppc_write_elf_speregset(NoteFuncArg *arg, PowerPCCPU *cpu) > > static const struct NoteFuncDescStruct { > int contents_size; > - void (*note_contents_func)(NoteFuncArg *arg, PowerPCCPU *cpu); > + void (*note_contents_func)(NoteFuncArg *arg, PowerPCCPU *cpu, int id); > } note_func[] = { > {sizeof_field(Note, contents.prstatus), ppc_write_elf_prstatus}, > {sizeof_field(Note, contents.fpregset), ppc_write_elf_fpregset}, > @@ -282,7 +285,7 @@ static int ppc_write_all_elf_notes(const char *note_name, > arg.note.hdr.n_descsz = cpu_to_dump32(s, nf->contents_size); > strncpy(arg.note.name, note_name, sizeof(arg.note.name)); > > - (*nf->note_contents_func)(&arg, cpu); > + (*nf->note_contents_func)(&arg, cpu, id); > > note_size = > sizeof(arg.note) - sizeof(arg.note.contents) + nf->contents_size; Reviewed-by: Thomas Huth <thuth@redhat.com> ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] target/ppc/arch_dump: set prstatus pid to cpuid 2024-06-19 5:00 ` [PATCH 2/2] target/ppc/arch_dump: set prstatus pid to cpuid Omar Sandoval 2024-06-19 6:01 ` Thomas Huth @ 2024-06-24 7:22 ` Harsh Prateek Bora 1 sibling, 0 replies; 7+ messages in thread From: Harsh Prateek Bora @ 2024-06-24 7:22 UTC (permalink / raw) To: Omar Sandoval, qemu-devel Cc: qemu-s390x, qemu-ppc, Richard Henderson, David Hildenbrand, Ilya Leoshkevich, Thomas Huth, Nicholas Piggin, Daniel Henrique Barboza, linux-debuggers Hi Omar, On 6/19/24 10:30, Omar Sandoval wrote: > Every other architecture does this, and debuggers need it to be able to > identify which prstatus note corresponds to which CPU. > > Signed-off-by: Omar Sandoval <osandov@osandov.com> > --- > target/ppc/arch_dump.c | 21 ++++++++++++--------- > 1 file changed, 12 insertions(+), 9 deletions(-) > > diff --git a/target/ppc/arch_dump.c b/target/ppc/arch_dump.c > index a8315659d9..78b4205319 100644 > --- a/target/ppc/arch_dump.c > +++ b/target/ppc/arch_dump.c > @@ -47,9 +47,11 @@ struct PPCUserRegStruct { > } QEMU_PACKED; > > struct PPCElfPrstatus { > - char pad1[112]; > + char pad1[32]; > + uint32_t pid; > + uint8_t pad2[76]; > struct PPCUserRegStruct pr_reg; > - char pad2[40]; > + char pad3[40]; > } QEMU_PACKED; > Could you please add a comment above the struct providing reference to the spec being referred here for member position across the status bits? With that, Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com> > > @@ -96,7 +98,7 @@ typedef struct NoteFuncArg { > DumpState *state; > } NoteFuncArg; > > -static void ppc_write_elf_prstatus(NoteFuncArg *arg, PowerPCCPU *cpu) > +static void ppc_write_elf_prstatus(NoteFuncArg *arg, PowerPCCPU *cpu, int id) > { > int i; > reg_t cr; > @@ -109,6 +111,7 @@ static void ppc_write_elf_prstatus(NoteFuncArg *arg, PowerPCCPU *cpu) > > prstatus = ¬e->contents.prstatus; > memset(prstatus, 0, sizeof(*prstatus)); > + prstatus->pid = cpu_to_dump32(s, id); > reg = &prstatus->pr_reg; > > for (i = 0; i < 32; i++) { > @@ -127,7 +130,7 @@ static void ppc_write_elf_prstatus(NoteFuncArg *arg, PowerPCCPU *cpu) > reg->ccr = cpu_to_dump_reg(s, cr); > } > > -static void ppc_write_elf_fpregset(NoteFuncArg *arg, PowerPCCPU *cpu) > +static void ppc_write_elf_fpregset(NoteFuncArg *arg, PowerPCCPU *cpu, int id) > { > int i; > struct PPCElfFpregset *fpregset; > @@ -146,7 +149,7 @@ static void ppc_write_elf_fpregset(NoteFuncArg *arg, PowerPCCPU *cpu) > fpregset->fpscr = cpu_to_dump_reg(s, cpu->env.fpscr); > } > > -static void ppc_write_elf_vmxregset(NoteFuncArg *arg, PowerPCCPU *cpu) > +static void ppc_write_elf_vmxregset(NoteFuncArg *arg, PowerPCCPU *cpu, int id) > { > int i; > struct PPCElfVmxregset *vmxregset; > @@ -178,7 +181,7 @@ static void ppc_write_elf_vmxregset(NoteFuncArg *arg, PowerPCCPU *cpu) > vmxregset->vscr.u32[3] = cpu_to_dump32(s, ppc_get_vscr(&cpu->env)); > } > > -static void ppc_write_elf_vsxregset(NoteFuncArg *arg, PowerPCCPU *cpu) > +static void ppc_write_elf_vsxregset(NoteFuncArg *arg, PowerPCCPU *cpu, int id) > { > int i; > struct PPCElfVsxregset *vsxregset; > @@ -195,7 +198,7 @@ static void ppc_write_elf_vsxregset(NoteFuncArg *arg, PowerPCCPU *cpu) > } > } > > -static void ppc_write_elf_speregset(NoteFuncArg *arg, PowerPCCPU *cpu) > +static void ppc_write_elf_speregset(NoteFuncArg *arg, PowerPCCPU *cpu, int id) > { > struct PPCElfSperegset *speregset; > Note *note = &arg->note; > @@ -211,7 +214,7 @@ static void ppc_write_elf_speregset(NoteFuncArg *arg, PowerPCCPU *cpu) > > static const struct NoteFuncDescStruct { > int contents_size; > - void (*note_contents_func)(NoteFuncArg *arg, PowerPCCPU *cpu); > + void (*note_contents_func)(NoteFuncArg *arg, PowerPCCPU *cpu, int id); > } note_func[] = { > {sizeof_field(Note, contents.prstatus), ppc_write_elf_prstatus}, > {sizeof_field(Note, contents.fpregset), ppc_write_elf_fpregset}, > @@ -282,7 +285,7 @@ static int ppc_write_all_elf_notes(const char *note_name, > arg.note.hdr.n_descsz = cpu_to_dump32(s, nf->contents_size); > strncpy(arg.note.name, note_name, sizeof(arg.note.name)); > > - (*nf->note_contents_func)(&arg, cpu); > + (*nf->note_contents_func)(&arg, cpu, id); > > note_size = > sizeof(arg.note) - sizeof(arg.note.contents) + nf->contents_size; ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/2] arch_dump: fix prstatus pid on s390x and ppc 2024-06-19 5:00 [PATCH 0/2] arch_dump: fix prstatus pid on s390x and ppc Omar Sandoval 2024-06-19 5:00 ` [PATCH 1/2] target/s390x/arch_dump: use correct byte order for pid Omar Sandoval 2024-06-19 5:00 ` [PATCH 2/2] target/ppc/arch_dump: set prstatus pid to cpuid Omar Sandoval @ 2024-06-24 6:17 ` Thomas Huth 2 siblings, 0 replies; 7+ messages in thread From: Thomas Huth @ 2024-06-24 6:17 UTC (permalink / raw) To: Omar Sandoval, qemu-devel, Nicholas Piggin, Daniel Henrique Barboza Cc: qemu-s390x, qemu-ppc, Richard Henderson, linux-debuggers, Harsh Prateek Bora, Frédéric Barrat, Glenn Miles On 19/06/2024 07.00, Omar Sandoval wrote: > Hello, > > I maintain drgn [1], a debugger for the Linux kernel. I ran into a quirk > of the NT_PRSTATUS note in kernel core dumps [2], so I looked into how > QEMU's dump-guest-memory command generates NT_PRSTATUS. I noticed that > on most architectures, the note's PID field is set to the CPU ID plus 1. > There are two exceptions: on s390x, there's an endianness bug (it's not > byte swapped if the host is little endian), and on ppc, it's not set at > all (it defaults to zero). They're both easy fixes. > > Thanks, > Omar > > 1: https://github.com/osandov/drgn > 2: https://github.com/osandov/drgn/issues/404 > > Omar Sandoval (2): > target/s390x/arch_dump: use correct byte order for pid > target/ppc/arch_dump: set prstatus pid to cpuid > > target/ppc/arch_dump.c | 21 ++++++++++++--------- > target/s390x/arch_dump.c | 2 +- > 2 files changed, 13 insertions(+), 10 deletions(-) I'm going to pick up patch 1 for my s390x tree ... for the second patch, it would be good if someone of the ppc guys could have a look at it first. Thomas ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-06-24 7:28 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-06-19 5:00 [PATCH 0/2] arch_dump: fix prstatus pid on s390x and ppc Omar Sandoval 2024-06-19 5:00 ` [PATCH 1/2] target/s390x/arch_dump: use correct byte order for pid Omar Sandoval 2024-06-19 5:57 ` Thomas Huth 2024-06-19 5:00 ` [PATCH 2/2] target/ppc/arch_dump: set prstatus pid to cpuid Omar Sandoval 2024-06-19 6:01 ` Thomas Huth 2024-06-24 7:22 ` Harsh Prateek Bora 2024-06-24 6:17 ` [PATCH 0/2] arch_dump: fix prstatus pid on s390x and ppc Thomas Huth
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).