All of lore.kernel.org
 help / color / mirror / Atom feed
From: Uladzislau Rezki <urezki@gmail.com>
To: Lorenzo Stoakes <lstoakes@gmail.com>
Cc: "Uladzislau Rezki (Sony)" <urezki@gmail.com>,
	linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
	LKML <linux-kernel@vger.kernel.org>, Baoquan He <bhe@redhat.com>,
	Christoph Hellwig <hch@infradead.org>,
	Matthew Wilcox <willy@infradead.org>,
	Dave Chinner <david@fromorbit.com>,
	Oleksiy Avramchenko <oleksiy.avramchenko@sony.com>
Subject: Re: [PATCH 2/2] mm: vmalloc: Refactor vmalloc_dump_obj() function
Date: Wed, 31 Jan 2024 10:49:17 +0100	[thread overview]
Message-ID: <ZboXnWWxTAk2WKnb@pc636> (raw)
In-Reply-To: <b49d2302-ace3-4306-b18f-70e8d7960111@lucifer.local>

On Tue, Jan 30, 2024 at 06:50:48PM +0000, Lorenzo Stoakes wrote:
> On Wed, Jan 24, 2024 at 07:09:20PM +0100, Uladzislau Rezki (Sony) wrote:
> > This patch tends to simplify the function in question,
> > by removing an extra stack "objp" variable, returning
> > back to an early exit approach if spin_trylock() fails
> > or VA was not found.
> >
> > Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
> > ---
> >  mm/vmalloc.c | 33 +++++++++++++++++----------------
> >  1 file changed, 17 insertions(+), 16 deletions(-)
> >
> > diff --git a/mm/vmalloc.c b/mm/vmalloc.c
> > index b8be601b056d..449f45b0e474 100644
> > --- a/mm/vmalloc.c
> > +++ b/mm/vmalloc.c
> > @@ -4696,34 +4696,35 @@ void pcpu_free_vm_areas(struct vm_struct **vms, int nr_vms)
> >  #ifdef CONFIG_PRINTK
> >  bool vmalloc_dump_obj(void *object)
> >  {
> > -	void *objp = (void *)PAGE_ALIGN((unsigned long)object);
> >  	const void *caller;
> > +	struct vm_struct *vm;
> >  	struct vmap_area *va;
> >  	struct vmap_node *vn;
> >  	unsigned long addr;
> >  	unsigned int nr_pages;
> > -	bool success = false;
> > -
> > -	vn = addr_to_node((unsigned long)objp);
> >
> > -	if (spin_trylock(&vn->busy.lock)) {
> > -		va = __find_vmap_area((unsigned long)objp, &vn->busy.root);
> > +	addr = PAGE_ALIGN((unsigned long) object);
> > +	vn = addr_to_node(addr);
> >
> > -		if (va && va->vm) {
> > -			addr = (unsigned long)va->vm->addr;
> > -			caller = va->vm->caller;
> > -			nr_pages = va->vm->nr_pages;
> > -			success = true;
> > -		}
> > +	if (!spin_trylock(&vn->busy.lock))
> > +		return false;
> >
> > +	va = __find_vmap_area(addr, &vn->busy.root);
> > +	if (!va || !va->vm) {
> >  		spin_unlock(&vn->busy.lock);
> > +		return false;
> >  	}
> >
> > -	if (success)
> > -		pr_cont(" %u-page vmalloc region starting at %#lx allocated at %pS\n",
> > -			nr_pages, addr, caller);
> > +	vm = va->vm;
> > +	addr = (unsigned long) vm->addr;
> 
> Hmm not so nice to reuse addr here for something different, might be nice
> to have separate obj_addr and vm_addr or something. But it's not critical!
> 
> > +	caller = vm->caller;
> > +	nr_pages = vm->nr_pages;
> > +	spin_unlock(&vn->busy.lock);
> >
> > -	return success;
> > +	pr_cont(" %u-page vmalloc region starting at %#lx allocated at %pS\n",
> > +		nr_pages, addr, caller);
> > +
> > +	return true;
> >  }
> >  #endif
> >
> > --
> > 2.39.2
> >
> 
> Other than the nit, which I don't insist on, this is a big improvement so,
> 
> Reviewed-by: Lorenzo Stoakes <lstoakes@gmail.com>
>

Thanks!

--
Uladzislau Rezki


  reply	other threads:[~2024-01-31  9:49 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-24 18:09 [PATCH 1/2] mm: vmalloc: Improve description of vmap node layer Uladzislau Rezki (Sony)
2024-01-24 18:09 ` [PATCH 2/2] mm: vmalloc: Refactor vmalloc_dump_obj() function Uladzislau Rezki (Sony)
2024-01-30 18:50   ` Lorenzo Stoakes
2024-01-31  9:49     ` Uladzislau Rezki [this message]
2024-01-30 18:44 ` [PATCH 1/2] mm: vmalloc: Improve description of vmap node layer Lorenzo Stoakes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZboXnWWxTAk2WKnb@pc636 \
    --to=urezki@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=bhe@redhat.com \
    --cc=david@fromorbit.com \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lstoakes@gmail.com \
    --cc=oleksiy.avramchenko@sony.com \
    --cc=willy@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.