All of lore.kernel.org
 help / color / mirror / Atom feed
From: SeongJae Park <sj@kernel.org>
To: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: SeongJae Park <sj@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	damon@lists.linux.dev
Subject: Re: [PATCH v2 2/3] mm/damon/paddr: minor refactor of damon_pa_young()
Date: Tue,  7 Mar 2023 18:00:23 +0000	[thread overview]
Message-ID: <20230307180023.152415-1-sj@kernel.org> (raw)
In-Reply-To: <174e75a4-f03c-a542-5f6a-651abb5dec58@huawei.com>

On Tue, 7 Mar 2023 09:22:33 +0800 Kefeng Wang <wangkefeng.wang@huawei.com> wrote:

> 
> 
> On 2023/3/7 5:27, SeongJae Park wrote:
> > Hi Kefeng,
> > 
> > On Mon, 6 Mar 2023 09:56:49 +0800 Kefeng Wang <wangkefeng.wang@huawei.com> wrote:
> > 
> >>
> >>
> >> On 2023/3/6 9:10, Kefeng Wang wrote:
> >>>
> >>>
> >>> On 2023/3/4 2:39, SeongJae Park wrote:
> >>>> Hi Kefeng,
> >>>>
> >>>> On Fri, 3 Mar 2023 16:43:42 +0800 Kefeng Wang
> >>>> <wangkefeng.wang@huawei.com> wrote:
> >>>>
> >>>>> Omit three lines by unified folio_put(), and make code more clear.
> >>>>>
> >>>>> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
> >>>>> ---
> >>>>>    mm/damon/paddr.c | 11 ++++-------
> >>>>>    1 file changed, 4 insertions(+), 7 deletions(-)
> >>>>>
> >>>>> diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c
> >>>>> index 3fda00a0f786..2ef9db0189ca 100644
> >>>>> --- a/mm/damon/paddr.c
> >>>>> +++ b/mm/damon/paddr.c
> >>>>> @@ -130,24 +130,21 @@ static bool damon_pa_young(unsigned long paddr,
> >>>>> unsigned long *folio_sz)
> >>>>>                accessed = false;
> >>>>>            else
> >>>>>                accessed = true;
> >>>>> -        folio_put(folio);
> >>>>>            goto out;
> >>>>
> >>>> Because you moved 'out' label to not include *folio_sz setting,
> >>>> folio_sz will
> >>>> not set in this case.  It should be set.
> >>> oh, it should be fixed.
> >>>>
> >>>>>        }
> >>>>>        need_lock = !folio_test_anon(folio) || folio_test_ksm(folio);
> >>>>> -    if (need_lock && !folio_trylock(folio)) {
> >>>>> -        folio_put(folio);
> >>>>> -        return false;
> >>>>> -    }
> >>
> >> Hi SJ,  apart from above issue, it looks that this branch need the
> >> folio_size() setting, right?
> > 
> > folio_sz is effectively used by caller of damon_pa_young() only if this
> > function returns true, so this branch doesn't need to set folio_sz.
> 
> __damon_pa_check_access() store last_addr, last_accessed and 
> last_folio_sz, even damon_pa_young() return false, the following check 
> still use last_folio_sz,
> 
>    ALIGN_DOWN(last_addr, last_folio_sz) == ALIGN_DOWN(r->sampling_addr, 
> last_folio_sz)
> 
> but last_folio_sz is not up to date, so I think it need to update, and 
> update last_folio_sz is harmless, which could let's unify the return 
> path, correct me if I am wrong.

Ah, you're right.  Thank you for kind explanation.  I was out of my mind for
some reason.  Maybe we could just do 'goto out' in the branch.


Thanks,
SJ

  reply	other threads:[~2023-03-07 18:00 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-03  8:43 [PATCH v2 0/3] mm/damon/paddr: minor code improvement Kefeng Wang
2023-03-03  8:43 ` [PATCH v2 1/3] mm/damon/paddr: minor refactor of damon_pa_pageout() Kefeng Wang
2023-03-03 18:41   ` SeongJae Park
2023-03-03  8:43 ` [PATCH v2 2/3] mm/damon/paddr: minor refactor of damon_pa_young() Kefeng Wang
2023-03-03 18:39   ` SeongJae Park
2023-03-06  1:10     ` Kefeng Wang
2023-03-06  1:56       ` Kefeng Wang
2023-03-06 21:27         ` SeongJae Park
2023-03-07  1:22           ` Kefeng Wang
2023-03-07 18:00             ` SeongJae Park [this message]
2023-03-08  1:03               ` Kefeng Wang
2023-03-03  8:43 ` [PATCH v2 3/3] mm/damon/paddr: minor refactor of damon_pa_mark_accessed_or_deactivate() Kefeng Wang
2023-03-03 18:26   ` SeongJae Park
2023-03-03 18:37     ` SeongJae Park
2023-03-06  1:12       ` Kefeng Wang

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=20230307180023.152415-1-sj@kernel.org \
    --to=sj@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=damon@lists.linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=wangkefeng.wang@huawei.com \
    /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.