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)