All of lore.kernel.org
 help / color / mirror / Atom feed
From: Catalin Marinas <catalin.marinas@arm.com>
To: Yunfeng Ye <yeyunfeng@huawei.com>
Cc: will@kernel.org, wangkefeng.wang@huawei.com,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, wuxu.wu@huawei.com,
	Hewenliang <hewenliang4@huawei.com>
Subject: Re: [PATCH] arm64: mm: Use asid2idx() and asid feature macro for cleanup
Date: Tue, 7 Dec 2021 10:50:36 +0000	[thread overview]
Message-ID: <Ya88fFJC4Kdjyb+B@arm.com> (raw)
In-Reply-To: <8f4ec1cd-fbb7-10f8-b515-500400308492@huawei.com>

On Tue, Dec 07, 2021 at 10:21:26AM +0800, Yunfeng Ye wrote:
> On 2021/12/7 0:23, Catalin Marinas wrote:
> > On Thu, Oct 28, 2021 at 08:27:23PM +0800, Yunfeng Ye wrote:
> >> @@ -162,7 +162,7 @@ static u64 new_context(struct mm_struct *mm)
> >>  	u64 generation = atomic64_read(&asid_generation);
> >>
> >>  	if (asid != 0) {
> >> -		u64 newasid = generation | (asid & ~ASID_MASK);
> >> +		u64 newasid = generation | asid2idx(asid);
> >>
> >>  		/*
> >>  		 * If our current ASID was active during a rollover, we
> >> @@ -306,7 +306,7 @@ unsigned long arm64_mm_context_get(struct mm_struct *mm)
> >>  out_unlock:
> >>  	raw_spin_unlock_irqrestore(&cpu_asid_lock, flags);
> >>
> >> -	asid &= ~ASID_MASK;
> >> +	asid = asid2idx(asid);
> > 
> > While functionally the code is the same, I don't think this was the
> > intention of asid2idx(). It's meant to provide an index into asid_map,
> > while the ASID_MASK lines isolate the asid number and add a new
> > generation to it.
> 
> The commit 0c8ea531b774 ("arm64: mm: Allocate ASIDs in pairs") introduce the
> asid2idx and idx2asid macro, but these macros is not really useful after the
> commit f88f42f853a8 ("arm64: context: Free up kernel ASIDs if KPTI is not in use").
> 
> I think "(asid & ~ASID_MASK)" can be instead by a macro, it is the same code with
> asid2idx(). Can it be renamed?  (eg, ctxid2asid)

Yes, that would work.

-- 
Catalin

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Catalin Marinas <catalin.marinas@arm.com>
To: Yunfeng Ye <yeyunfeng@huawei.com>
Cc: will@kernel.org, wangkefeng.wang@huawei.com,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, wuxu.wu@huawei.com,
	Hewenliang <hewenliang4@huawei.com>
Subject: Re: [PATCH] arm64: mm: Use asid2idx() and asid feature macro for cleanup
Date: Tue, 7 Dec 2021 10:50:36 +0000	[thread overview]
Message-ID: <Ya88fFJC4Kdjyb+B@arm.com> (raw)
In-Reply-To: <8f4ec1cd-fbb7-10f8-b515-500400308492@huawei.com>

On Tue, Dec 07, 2021 at 10:21:26AM +0800, Yunfeng Ye wrote:
> On 2021/12/7 0:23, Catalin Marinas wrote:
> > On Thu, Oct 28, 2021 at 08:27:23PM +0800, Yunfeng Ye wrote:
> >> @@ -162,7 +162,7 @@ static u64 new_context(struct mm_struct *mm)
> >>  	u64 generation = atomic64_read(&asid_generation);
> >>
> >>  	if (asid != 0) {
> >> -		u64 newasid = generation | (asid & ~ASID_MASK);
> >> +		u64 newasid = generation | asid2idx(asid);
> >>
> >>  		/*
> >>  		 * If our current ASID was active during a rollover, we
> >> @@ -306,7 +306,7 @@ unsigned long arm64_mm_context_get(struct mm_struct *mm)
> >>  out_unlock:
> >>  	raw_spin_unlock_irqrestore(&cpu_asid_lock, flags);
> >>
> >> -	asid &= ~ASID_MASK;
> >> +	asid = asid2idx(asid);
> > 
> > While functionally the code is the same, I don't think this was the
> > intention of asid2idx(). It's meant to provide an index into asid_map,
> > while the ASID_MASK lines isolate the asid number and add a new
> > generation to it.
> 
> The commit 0c8ea531b774 ("arm64: mm: Allocate ASIDs in pairs") introduce the
> asid2idx and idx2asid macro, but these macros is not really useful after the
> commit f88f42f853a8 ("arm64: context: Free up kernel ASIDs if KPTI is not in use").
> 
> I think "(asid & ~ASID_MASK)" can be instead by a macro, it is the same code with
> asid2idx(). Can it be renamed?  (eg, ctxid2asid)

Yes, that would work.

-- 
Catalin

  reply	other threads:[~2021-12-07 10:54 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-28 12:27 [PATCH] arm64: mm: Use asid2idx() and asid feature macro for cleanup Yunfeng Ye
2021-10-28 12:27 ` Yunfeng Ye
2021-12-06 16:23 ` Catalin Marinas
2021-12-06 16:23   ` Catalin Marinas
2021-12-07  2:21   ` Yunfeng Ye
2021-12-07  2:21     ` Yunfeng Ye
2021-12-07 10:50     ` Catalin Marinas [this message]
2021-12-07 10:50       ` Catalin Marinas

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=Ya88fFJC4Kdjyb+B@arm.com \
    --to=catalin.marinas@arm.com \
    --cc=hewenliang4@huawei.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=wangkefeng.wang@huawei.com \
    --cc=will@kernel.org \
    --cc=wuxu.wu@huawei.com \
    --cc=yeyunfeng@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.