Re: [PATCH v3 4/4] arc: Use generic dump_stack_print_cmdline() implementation

2022-10-10 Thread Helge Deller

On 10/10/22 07:18, Vineet Gupta wrote:

On 8/8/22 06:09, Helge Deller wrote:

The process program name and command line is now shown in generic code
in dump_stack_print_info(), so drop the arc-specific implementation.

Signed-off-by: Helge Deller 


But that info printing was added back in 2018 by e36df28f532f882.
I don't think arc is using show_regs_print_info -> dump_stack_print_info yet.
Or is there a different code path now which calls here ?


Right.
See patches #1 and #2 of this series which added this
info to dump_stack_print_info().



---
  arch/arc/kernel/troubleshoot.c | 24 
  1 file changed, 24 deletions(-)

diff --git a/arch/arc/kernel/troubleshoot.c b/arch/arc/kernel/troubleshoot.c
index 7654c2e42dc0..9807e590ee55 100644
--- a/arch/arc/kernel/troubleshoot.c
+++ b/arch/arc/kernel/troubleshoot.c
@@ -51,29 +51,6 @@ static void print_regs_callee(struct callee_regs *regs)
  regs->r24, regs->r25);
  }

-static void print_task_path_n_nm(struct task_struct *tsk)
-{
-    char *path_nm = NULL;
-    struct mm_struct *mm;
-    struct file *exe_file;
-    char buf[ARC_PATH_MAX];
-
-    mm = get_task_mm(tsk);
-    if (!mm)
-    goto done;
-
-    exe_file = get_mm_exe_file(mm);
-    mmput(mm);
-
-    if (exe_file) {
-    path_nm = file_path(exe_file, buf, ARC_PATH_MAX-1);
-    fput(exe_file);
-    }
-
-done:
-    pr_info("Path: %s\n", !IS_ERR(path_nm) ? path_nm : "?");
-}
-
  static void show_faulting_vma(unsigned long address)
  {
  struct vm_area_struct *vma;
@@ -176,7 +153,6 @@ void show_regs(struct pt_regs *regs)
   */
  preempt_enable();


Maybe we remove preempt* as well now (perhaps as a follow up patch)
since that was added by f731a8e89f8c78 "ARC: show_regs: lockdep:
re-enable preemption" where show_regs -> print_task_path_n_nm ->
mmput was triggering lockdep splat which is supposedly removed.


The patch series was dropped from Andrew's queue, because the kernel
test robot showed some issues:
https://lore.kernel.org/lkml/Yu59QdVpPgnXUnQC@xsang-OptiPlex-9020/
Maybe adding preempt_enable() in my patches would fix that -
sadly I haven't had time to follow up on this yet ...

Helge





-    print_task_path_n_nm(tsk);
  show_regs_print_info(KERN_INFO);

  show_ecr_verbose(regs);



___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc


Re: [PATCH v3 4/4] arc: Use generic dump_stack_print_cmdline() implementation

2022-10-09 Thread Vineet Gupta

On 8/8/22 06:09, Helge Deller wrote:

The process program name and command line is now shown in generic code
in dump_stack_print_info(), so drop the arc-specific implementation.

Signed-off-by: Helge Deller 


But that info printing was added back in 2018 by e36df28f532f882.
I don't think arc is using show_regs_print_info -> dump_stack_print_info 
yet.

Or is there a different code path now which calls here ?


---
  arch/arc/kernel/troubleshoot.c | 24 
  1 file changed, 24 deletions(-)

diff --git a/arch/arc/kernel/troubleshoot.c b/arch/arc/kernel/troubleshoot.c
index 7654c2e42dc0..9807e590ee55 100644
--- a/arch/arc/kernel/troubleshoot.c
+++ b/arch/arc/kernel/troubleshoot.c
@@ -51,29 +51,6 @@ static void print_regs_callee(struct callee_regs *regs)
regs->r24, regs->r25);
  }

-static void print_task_path_n_nm(struct task_struct *tsk)
-{
-   char *path_nm = NULL;
-   struct mm_struct *mm;
-   struct file *exe_file;
-   char buf[ARC_PATH_MAX];
-
-   mm = get_task_mm(tsk);
-   if (!mm)
-   goto done;
-
-   exe_file = get_mm_exe_file(mm);
-   mmput(mm);
-
-   if (exe_file) {
-   path_nm = file_path(exe_file, buf, ARC_PATH_MAX-1);
-   fput(exe_file);
-   }
-
-done:
-   pr_info("Path: %s\n", !IS_ERR(path_nm) ? path_nm : "?");
-}
-
  static void show_faulting_vma(unsigned long address)
  {
struct vm_area_struct *vma;
@@ -176,7 +153,6 @@ void show_regs(struct pt_regs *regs)
 */
preempt_enable();


Maybe we remove preempt* as well now (perhaps as a follow up patch) 
since that was added by f731a8e89f8c78 "ARC: show_regs: lockdep: 
re-enable preemption" where show_regs -> print_task_path_n_nm -> mmput 
was triggering lockdep splat which is supposedly removed.




-   print_task_path_n_nm(tsk);
show_regs_print_info(KERN_INFO);

show_ecr_verbose(regs);
--
2.37.1


___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc



___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc


[PATCH v3 4/4] arc: Use generic dump_stack_print_cmdline() implementation

2022-08-08 Thread Helge Deller
The process program name and command line is now shown in generic code
in dump_stack_print_info(), so drop the arc-specific implementation.

Signed-off-by: Helge Deller 
---
 arch/arc/kernel/troubleshoot.c | 24 
 1 file changed, 24 deletions(-)

diff --git a/arch/arc/kernel/troubleshoot.c b/arch/arc/kernel/troubleshoot.c
index 7654c2e42dc0..9807e590ee55 100644
--- a/arch/arc/kernel/troubleshoot.c
+++ b/arch/arc/kernel/troubleshoot.c
@@ -51,29 +51,6 @@ static void print_regs_callee(struct callee_regs *regs)
regs->r24, regs->r25);
 }

-static void print_task_path_n_nm(struct task_struct *tsk)
-{
-   char *path_nm = NULL;
-   struct mm_struct *mm;
-   struct file *exe_file;
-   char buf[ARC_PATH_MAX];
-
-   mm = get_task_mm(tsk);
-   if (!mm)
-   goto done;
-
-   exe_file = get_mm_exe_file(mm);
-   mmput(mm);
-
-   if (exe_file) {
-   path_nm = file_path(exe_file, buf, ARC_PATH_MAX-1);
-   fput(exe_file);
-   }
-
-done:
-   pr_info("Path: %s\n", !IS_ERR(path_nm) ? path_nm : "?");
-}
-
 static void show_faulting_vma(unsigned long address)
 {
struct vm_area_struct *vma;
@@ -176,7 +153,6 @@ void show_regs(struct pt_regs *regs)
 */
preempt_enable();

-   print_task_path_n_nm(tsk);
show_regs_print_info(KERN_INFO);

show_ecr_verbose(regs);
--
2.37.1


___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc