From: Robin Murphy <robin.murphy@arm.com>
To: Reiji Watanabe <reijiw@google.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>,
linux-arm-kernel@lists.infradead.org,
Peter Shier <pshier@google.com>,
Ricardo Koller <ricarkol@google.com>,
Oliver Upton <oupton@google.com>,
Jing Zhang <jingzhangos@google.com>,
Raghavendra Rao Anata <rananta@google.com>
Subject: Re: [PATCH] arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
Date: Tue, 26 Oct 2021 12:22:20 +0100 [thread overview]
Message-ID: <0cd301eb-c2a4-bc90-46b8-cb4d4e25978b@arm.com> (raw)
In-Reply-To: <20211026034844.1393437-1-reijiw@google.com>
On 2021-10-26 04:48, Reiji Watanabe wrote:
> Currently, clear_page() uses DC ZVA instruction unconditionally. But it
> should make sure that DCZID_EL0.DZP, which indicates whether or not use
> of DC ZVA instruction is prohibited, is zero when using the instruction.
> Use stp as memset does instead when DCZID_EL0.DZP == 1.
>
> Signed-off-by: Reiji Watanabe <reijiw@google.com>
> ---
> arch/arm64/lib/clear_page.S | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/arch/arm64/lib/clear_page.S b/arch/arm64/lib/clear_page.S
> index b84b179edba3..7ce1bfa4081c 100644
> --- a/arch/arm64/lib/clear_page.S
> +++ b/arch/arm64/lib/clear_page.S
> @@ -16,6 +16,7 @@
> */
> SYM_FUNC_START_PI(clear_page)
> mrs x1, dczid_el0
> + tbnz x1, #4, 2f /* Branch if DC GVA is prohibited */
> and w1, w1, #0xf
> mov x2, #4
> lsl x1, x2, x1
> @@ -25,5 +26,15 @@ SYM_FUNC_START_PI(clear_page)
> tst x0, #(PAGE_SIZE - 1)
> b.ne 1b
> ret
> +
> +2: mov x1, #(PAGE_SIZE)
> + sub x0, x0, #16 /* Pre-bias. */
Out of curiosity, what's this for? It's not like we need to worry about
PAGE_SIZE or page addresses being misaligned. I don't really see why
we'd need a different condition from the DC ZVA loop.
Robin.
> +3: stp xzr, xzr, [x0, #16]
> + stp xzr, xzr, [x0, #32]
> + stp xzr, xzr, [x0, #48]
> + stp xzr, xzr, [x0, #64]!
> + subs x1, x1, #64
> + b.gt 3b
> + ret
> SYM_FUNC_END_PI(clear_page)
> EXPORT_SYMBOL(clear_page)
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-10-26 11:23 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-26 3:48 [PATCH] arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1 Reiji Watanabe
2021-10-26 9:06 ` Catalin Marinas
2021-10-27 1:35 ` Reiji Watanabe
2021-10-26 11:22 ` Robin Murphy [this message]
2021-10-26 12:23 ` Mark Rutland
2021-10-27 6:44 ` Reiji Watanabe
2021-10-27 11:09 ` Mark Rutland
2021-10-28 1:49 ` Reiji Watanabe
2021-10-28 7:46 ` Will Deacon
2021-10-28 9:03 ` Mark Rutland
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=0cd301eb-c2a4-bc90-46b8-cb4d4e25978b@arm.com \
--to=robin.murphy@arm.com \
--cc=catalin.marinas@arm.com \
--cc=jingzhangos@google.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=maz@kernel.org \
--cc=oupton@google.com \
--cc=pshier@google.com \
--cc=rananta@google.com \
--cc=reijiw@google.com \
--cc=ricarkol@google.com \
--cc=will@kernel.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.