[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20240922131321.GC9426@redhat.com>
Date: Sun, 22 Sep 2024 15:13:22 +0200
From: Oleg Nesterov <oleg@...hat.com>
To: "qiwu.chen" <qiwuchen55@...il.com>
Cc: corbet@....net, mhocko@...e.com, jani.nikula@...el.com,
akpm@...ux-foundation.org, brauner@...nel.org, paulmck@...nel.org,
linux-doc@...r.kernel.org, "qiwu.chen" <qiwu.chen@...nssion.com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 1/2] panic: add option to dump task maps info in
panic_print
On 09/22, qiwu.chen wrote:
>
> + for_each_vma(vmi, vma) {
> + struct file *file = vma->vm_file;
> + int flags = vma->vm_flags;
> + unsigned long long pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
> + struct anon_vma_name *anon_name = NULL;
> + struct mm_struct *mm = vma->vm_mm;
> + char buf[256] = {0};
> + const char *name = NULL;
> +
> + if (mm)
> + anon_name = anon_vma_name(vma);
> +
> + if (file) {
> + if (anon_name) {
> + snprintf(buf, sizeof(buf), "[anon_shmem:%s]", anon_name->name);
> + name = buf;
> + } else {
> + char *f_path = d_path(file_user_path(file), buf, sizeof(buf));
> +
> + name = IS_ERR(f_path) ? "?" : f_path;
> + }
> + goto print;
> + }
> +
> + if (vma->vm_ops && vma->vm_ops->name) {
> + name = vma->vm_ops->name(vma);
> + if (name)
> + goto print;
> + }
> +
> + name = arch_vma_name(vma);
> + if (!name) {
> + if (mm) {
> + if (vma_is_initial_heap(vma))
> + name = "[heap]";
> + else if (vma_is_initial_stack(vma))
> + name = "[stack]";
> + } else
> + name = "[vdso]";
> +
> + if (anon_name) {
> + snprintf(buf, sizeof(buf), "[anon:%s]", anon_name->name);
> + name = buf;
> + }
> + }
> +
Wouldn't it be better to export/reuse get_vma_name() rather than duplicate
its code ?
Oleg.
Powered by blists - more mailing lists