Messages in this thread | | | Date | Sun, 26 Feb 2023 00:47:19 -0600 | From | Glenn Washburn <> | Subject | Re: [PATCH v2 0/2] GDB: Support getting current task struct in UML |
| |
On Thu, 23 Feb 2023 13:14:02 -0800 Andrew Morton <akpm@linux-foundation.org> wrote:
> On Fri, 17 Feb 2023 19:11:52 -0600 Glenn Washburn > <development@efficientek.com> wrote: > > > Added suggestions from Jan. > > > > Glenn > > > > Glenn Washburn (2): > > scripts/gdb: Correct indentation in get_current_task > > scripts/gdb: Support getting current task struct in UML > > > > For some reason I get a bunch of rejects when applying these on top of > the latest patchpile. Please check my end result:
It looks like there was a change from v6.2-rc8 to v6.2 that caused a conflict.
> > def get_current_task(cpu): > task_ptr_type = task_type.get_type().pointer() > > if utils.is_target_arch("x86"): > if gdb.lookup_global_symbol("cpu_tasks"): > # This is a UML kernel, which stores the current task > # differently than other x86 sub architectures > var_ptr = gdb.parse_and_eval("(struct task_struct > *)cpu_tasks[0].task") return var_ptr.dereference()
This is missing the return statement in the second patch.
> else: > var_ptr = gdb.parse_and_eval("¤t_task")
It looks like "current_task" has now been changed to "pcpu_hot.current_task" in v6.2.
Would you like me to resent the series rebased onto v6.2?
Glenn
> return per_cpu(var_ptr, cpu).dereference() > elif utils.is_target_arch("aarch64"): > current_task_addr = gdb.parse_and_eval("$SP_EL0") > if((current_task_addr >> 63) != 0): > current_task = current_task_addr.cast(task_ptr_type) > return current_task.dereference() > else: > raise gdb.GdbError("Sorry, obtaining the current task is > not allowed " "while running in userspace(EL0)") > else: > raise gdb.GdbError("Sorry, obtaining the current task is not > yet " "supported with this arch") > > >
| |