* [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 an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.