V2 of this patch posted upstream. See
Hi Aditya,
On Thu, Sep 5, 2024 at 7:49 PM Aditya Gupta <adityag(a)linux.ibm.com> wrote:
>
> Hi Tao,
>
> On 05/09/24 03:40, Tao Liu wrote:
> > Hi Aditya,
> >
> > On Wed, Sep 4, 2024 at 10:27 PM Aditya Gupta <adityag(a)linux.ibm.com>
wrote:
> >> Hi Tao,
> >>
> >> Is this a separate independent patch or related to this series ?
> >>
> > This is an independent patch, but discovered when doing a regression
> > test against the stack unwinding patchset. Since we have done the
> > cpumask_t modification in [PATCH v6 10/14], the modification will
> > continue in v7 as well. So I posted it with v7 together.
> >
> > Lianbo suggested that I separate some "less strongly connected with
> > stack unwinding" patches from v7, which formed the part 1 as mentioned
> > in [1]. Part 1 can be merged prior to the rest of part 2 & 3. So I
> > think part 1 is also suitable for the cpumask_t regression patch.
>
> Yes, I agree. We can move 'Fix gdb_interface' patch also as independent.
> It originally was required for the patch series to work, since 'info
> threads' used to break, but now that can go independently.
>
Thanks for your suggestion. Yes, the 'Fix gdb_interface' patch is
already in part 1 which can be merged prior. Let's wait for Lianbo's
comments for this.
Thanks,
Tao Liu
>
> Thanks,
>
> Aditya Gupta
>
> > [1]:
https://www.mail-archive.com/devel@lists.crash-utility.osci.io/msg01079.html
> >
> > Thanks,
> > Tao Liu
> >
> >> - Aditya Gupta
> >>
> >>
> >> On 04/09/24 13:19, Tao Liu wrote:
> >>> There is a regression been found for xen hyper due to the commit:
> >>> f615f8fab7bf ("Fix "irq -a" exceeding the memory range
issue").
> >>>
> >>> The reason is for xen hyper, kt->cpu is not initialized due to
> >>> kernel_init() won't be called. So 0 would be assigned to cpulen
and
> >>> fails the GETBUF().
> >>>
> >>> Before:
> >>> crash> bt -c 2
> >>> bt: zero-size memory allocation! (called from 51f168)
> >>>
> >>> After:
> >>> crash> bt -c 2
> >>> PCPU: 0 VCPU: ffff8300001b8080
> >>> #0 [ffff8300001bfe00] machine_crash_kexec at ffff83000010de72
> >>> #1 [ffff8300001bfe10] do_kexec_op at ffff83000010e3cb
> >>> #2 [ffff8300001bfe50] do_console_io at ffff83000011aff4
> >>> #3 [ffff8300001bfe90] mod_l1_entry at ffff830000129045
> >>> #4 [ffff8300001bfea0] toggle_guest_mode at ffff8300001641bf
> >>> #5 [ffff8300001bfeb0] do_iret at ffff830000164888
> >>> #6 [ffff8300001bff20] syscall_enter at ffff8300001633d2
> >>>
> >>> Since xen hyper will initialize its own cpumask_t, this patch will
reuse
> >>> it for XEN_HYPER_MODE. In addition, this patch won't modify the
similar
> >>> code hunk in generic_get_irq_affinity(), because for xen, there is no
> >>> "irq" cmd, so the regression won't be triggered.
> >>>
> >>> Cc: Sourabh Jain <sourabhjain(a)linux.ibm.com>
> >>> Cc: Hari Bathini <hbathini(a)linux.ibm.com>
> >>> Cc: Mahesh J Salgaonkar <mahesh(a)linux.ibm.com>
> >>> Cc: Naveen N. Rao <naveen.n.rao(a)linux.vnet.ibm.com>
> >>> Cc: Lianbo Jiang <lijiang(a)redhat.com>
> >>> Cc: HAGIO KAZUHITO(萩尾 一仁) <k-hagio-ab(a)nec.com>
> >>> Cc: Tao Liu <ltao(a)redhat.com>
> >>> Cc: Alexey Makhalov <alexey.makhalov(a)broadcom.com>
> >>> Cc: Aditya Gupta <adityag(a)linux.ibm.com>
> >>> Signed-off-by: Tao Liu <ltao(a)redhat.com>
> >>> ---
> >>> tools.c | 6 ++++++
> >>> 1 file changed, 6 insertions(+)
> >>>
> >>> diff --git a/tools.c b/tools.c
> >>> index 2b78b95..dec6e5b 100644
> >>> --- a/tools.c
> >>> +++ b/tools.c
> >>> @@ -16,6 +16,7 @@
> >>> */
> >>>
> >>> #include "defs.h"
> >>> +#include "xen_hyper_defs.h"
> >>> #include <ctype.h>
> >>>
> >>> #ifdef VALGRIND
> >>> @@ -6720,6 +6721,11 @@ get_cpumask_buf(void)
> >>> {
> >>> int cpulen, len_cpumask;
> >>>
> >>> +#ifdef XEN_HYPERVISOR_ARCH
> >>> + if (XEN_HYPER_MODE() && XEN_HYPER_VALID_SIZE(cpumask_t))
> >>> + return (ulong *)GETBUF(XEN_HYPER_SIZE(cpumask_t));
> >>> +#endif
> >>> +
> >>> cpulen = DIV_ROUND_UP(kt->cpus, BITS_PER_LONG) *
sizeof(ulong);
> >>> len_cpumask = STRUCT_SIZE("cpumask_t");
> >>> if (len_cpumask > 0)
>