From: Conor Dooley <conor@kernel.org>
To: kvm-riscv@lists.infradead.org
Subject: [PATCH v4 0/8] RISC-V: Apply Zicboz to clear_page
Date: Thu, 09 Feb 2023 17:45:59 -0000 [thread overview]
Message-ID: <Y+UxTBmegHqqHDCQ@spud> (raw)
In-Reply-To: <20230209152628.129914-1-ajones@ventanamicro.com>
Hey Drew,
On Thu, Feb 09, 2023 at 04:26:20PM +0100, Andrew Jones wrote:
> When the Zicboz extension is available we can more rapidly zero naturally
> aligned Zicboz block sized chunks of memory. As pages are always page
> aligned and are larger than any Zicboz block size will be, then
> clear_page() appears to be a good candidate for the extension. While cycle
> count and energy consumption should also be considered, we can be pretty
> certain that implementing clear_page() with the Zicboz extension is a win
> by comparing the new dynamic instruction count with its current count[1].
> Doing so we see that the new count is just over a quarter of the old count
> (see patch4's commit message for more details).
>
> For those of you who reviewed v1[2], you may be looking for the memset()
> patches. As pointed out in v1, and a couple follow-up emails, it's not
> clear that patching memset() is a win yet. When I get a chance to test
> on real hardware with a comprehensive benchmark collection then I can
> post the memset() patches separately (assuming the benchmarks show it's
> worthwhile).
>
> Based on riscv-linux/for-next plus the dependencies listed below.
>
> Dependencies:
> https://lore.kernel.org/all/20230108163356.3063839-1-conor at kernel.org/
> https://lore.kernel.org/all/20230105192610.1940841-1-heiko at sntech.de/
I've had a short (due to FOSDEM) & busy week since we discussed the
automagic dependency collection. I'll try to get to it in the next few
days.
> The patches are also available here
> https://github.com/jones-drew/linux/commits/riscv/zicboz-v4
>
> To test over QEMU this branch may be used to enable Zicboz
> https://gitlab.com/jones-drew/qemu/-/commits/riscv/zicboz
>
> To test running a KVM guest with Zicboz this kvmtool branch may be used
> https://github.com/jones-drew/kvmtool/commits/riscv/zicboz
>
> Thanks,
> drew
>
> [1] I ported the functions under test to userspace and linked them with
> a test program. Then, I ran them under gdb with a script[3] which
> counted instructions by single stepping.
> [2] https://lore.kernel.org/all/20221027130247.31634-1-ajones at ventanamicro.com/
> [3] https://gist.github.com/jones-drew/487791c956ceca8c18adc2847eec9c60
>
> v4:
> - Rebased on latest for-next which allowed dropping one dependency
> - Added "RISC-V: alternatives: Support patching multiple insns in assembly"
> since I needed to use more than one instruction in an ALTERNATIVE call
> from assembly. I can post this patch separately as a fix if desired.
> - Improved the dt-binding patch commit message [Conor]
> - Picked up some tags from Conor and Rob (I kept Conor's a-b on the
> clear_page patch, even though there are several changes to it, because
> I interpreted the a-b as "OK by me to implement a Zicboz clear_page")
Yea, it was a "I am far from qualified to review your implementation,
but I am okay with it existing and the remainder of the patch".
Cheers,
Conor.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/kvm-riscv/attachments/20230209/f2ef3df8/attachment-0001.sig>
WARNING: multiple messages have this Message-ID (diff)
From: Conor Dooley <conor@kernel.org>
To: Andrew Jones <ajones@ventanamicro.com>
Cc: linux-riscv@lists.infradead.org, kvm-riscv@lists.infradead.org,
devicetree@vger.kernel.org,
'Anup Patel ' <apatel@ventanamicro.com>,
'Palmer Dabbelt ' <palmer@dabbelt.com>,
'Paul Walmsley ' <paul.walmsley@sifive.com>,
'Krzysztof Kozlowski ' <krzysztof.kozlowski+dt@linaro.org>,
'Atish Patra ' <atishp@rivosinc.com>,
'Heiko Stuebner ' <heiko@sntech.de>,
'Jisheng Zhang ' <jszhang@kernel.org>,
'Rob Herring ' <robh@kernel.org>,
'Albert Ou ' <aou@eecs.berkeley.edu>,
'Conor Dooley ' <conor.dooley@microchip.com>
Subject: Re: [PATCH v4 0/8] RISC-V: Apply Zicboz to clear_page
Date: Thu, 9 Feb 2023 17:45:48 +0000 [thread overview]
Message-ID: <Y+UxTBmegHqqHDCQ@spud> (raw)
In-Reply-To: <20230209152628.129914-1-ajones@ventanamicro.com>
[-- Attachment #1.1: Type: text/plain, Size: 3031 bytes --]
Hey Drew,
On Thu, Feb 09, 2023 at 04:26:20PM +0100, Andrew Jones wrote:
> When the Zicboz extension is available we can more rapidly zero naturally
> aligned Zicboz block sized chunks of memory. As pages are always page
> aligned and are larger than any Zicboz block size will be, then
> clear_page() appears to be a good candidate for the extension. While cycle
> count and energy consumption should also be considered, we can be pretty
> certain that implementing clear_page() with the Zicboz extension is a win
> by comparing the new dynamic instruction count with its current count[1].
> Doing so we see that the new count is just over a quarter of the old count
> (see patch4's commit message for more details).
>
> For those of you who reviewed v1[2], you may be looking for the memset()
> patches. As pointed out in v1, and a couple follow-up emails, it's not
> clear that patching memset() is a win yet. When I get a chance to test
> on real hardware with a comprehensive benchmark collection then I can
> post the memset() patches separately (assuming the benchmarks show it's
> worthwhile).
>
> Based on riscv-linux/for-next plus the dependencies listed below.
>
> Dependencies:
> https://lore.kernel.org/all/20230108163356.3063839-1-conor@kernel.org/
> https://lore.kernel.org/all/20230105192610.1940841-1-heiko@sntech.de/
I've had a short (due to FOSDEM) & busy week since we discussed the
automagic dependency collection. I'll try to get to it in the next few
days.
> The patches are also available here
> https://github.com/jones-drew/linux/commits/riscv/zicboz-v4
>
> To test over QEMU this branch may be used to enable Zicboz
> https://gitlab.com/jones-drew/qemu/-/commits/riscv/zicboz
>
> To test running a KVM guest with Zicboz this kvmtool branch may be used
> https://github.com/jones-drew/kvmtool/commits/riscv/zicboz
>
> Thanks,
> drew
>
> [1] I ported the functions under test to userspace and linked them with
> a test program. Then, I ran them under gdb with a script[3] which
> counted instructions by single stepping.
> [2] https://lore.kernel.org/all/20221027130247.31634-1-ajones@ventanamicro.com/
> [3] https://gist.github.com/jones-drew/487791c956ceca8c18adc2847eec9c60
>
> v4:
> - Rebased on latest for-next which allowed dropping one dependency
> - Added "RISC-V: alternatives: Support patching multiple insns in assembly"
> since I needed to use more than one instruction in an ALTERNATIVE call
> from assembly. I can post this patch separately as a fix if desired.
> - Improved the dt-binding patch commit message [Conor]
> - Picked up some tags from Conor and Rob (I kept Conor's a-b on the
> clear_page patch, even though there are several changes to it, because
> I interpreted the a-b as "OK by me to implement a Zicboz clear_page")
Yea, it was a "I am far from qualified to review your implementation,
but I am okay with it existing and the remainder of the patch".
Cheers,
Conor.
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
[-- Attachment #2: Type: text/plain, Size: 161 bytes --]
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Conor Dooley <conor@kernel.org>
To: Andrew Jones <ajones@ventanamicro.com>
Cc: linux-riscv@lists.infradead.org, kvm-riscv@lists.infradead.org,
devicetree@vger.kernel.org,
'Anup Patel ' <apatel@ventanamicro.com>,
'Palmer Dabbelt ' <palmer@dabbelt.com>,
'Paul Walmsley ' <paul.walmsley@sifive.com>,
'Krzysztof Kozlowski ' <krzysztof.kozlowski+dt@linaro.org>,
'Atish Patra ' <atishp@rivosinc.com>,
'Heiko Stuebner ' <heiko@sntech.de>,
'Jisheng Zhang ' <jszhang@kernel.org>,
'Rob Herring ' <robh@kernel.org>,
'Albert Ou ' <aou@eecs.berkeley.edu>,
'Conor Dooley ' <conor.dooley@microchip.com>
Subject: Re: [PATCH v4 0/8] RISC-V: Apply Zicboz to clear_page
Date: Thu, 9 Feb 2023 17:45:48 +0000 [thread overview]
Message-ID: <Y+UxTBmegHqqHDCQ@spud> (raw)
In-Reply-To: <20230209152628.129914-1-ajones@ventanamicro.com>
[-- Attachment #1: Type: text/plain, Size: 3031 bytes --]
Hey Drew,
On Thu, Feb 09, 2023 at 04:26:20PM +0100, Andrew Jones wrote:
> When the Zicboz extension is available we can more rapidly zero naturally
> aligned Zicboz block sized chunks of memory. As pages are always page
> aligned and are larger than any Zicboz block size will be, then
> clear_page() appears to be a good candidate for the extension. While cycle
> count and energy consumption should also be considered, we can be pretty
> certain that implementing clear_page() with the Zicboz extension is a win
> by comparing the new dynamic instruction count with its current count[1].
> Doing so we see that the new count is just over a quarter of the old count
> (see patch4's commit message for more details).
>
> For those of you who reviewed v1[2], you may be looking for the memset()
> patches. As pointed out in v1, and a couple follow-up emails, it's not
> clear that patching memset() is a win yet. When I get a chance to test
> on real hardware with a comprehensive benchmark collection then I can
> post the memset() patches separately (assuming the benchmarks show it's
> worthwhile).
>
> Based on riscv-linux/for-next plus the dependencies listed below.
>
> Dependencies:
> https://lore.kernel.org/all/20230108163356.3063839-1-conor@kernel.org/
> https://lore.kernel.org/all/20230105192610.1940841-1-heiko@sntech.de/
I've had a short (due to FOSDEM) & busy week since we discussed the
automagic dependency collection. I'll try to get to it in the next few
days.
> The patches are also available here
> https://github.com/jones-drew/linux/commits/riscv/zicboz-v4
>
> To test over QEMU this branch may be used to enable Zicboz
> https://gitlab.com/jones-drew/qemu/-/commits/riscv/zicboz
>
> To test running a KVM guest with Zicboz this kvmtool branch may be used
> https://github.com/jones-drew/kvmtool/commits/riscv/zicboz
>
> Thanks,
> drew
>
> [1] I ported the functions under test to userspace and linked them with
> a test program. Then, I ran them under gdb with a script[3] which
> counted instructions by single stepping.
> [2] https://lore.kernel.org/all/20221027130247.31634-1-ajones@ventanamicro.com/
> [3] https://gist.github.com/jones-drew/487791c956ceca8c18adc2847eec9c60
>
> v4:
> - Rebased on latest for-next which allowed dropping one dependency
> - Added "RISC-V: alternatives: Support patching multiple insns in assembly"
> since I needed to use more than one instruction in an ALTERNATIVE call
> from assembly. I can post this patch separately as a fix if desired.
> - Improved the dt-binding patch commit message [Conor]
> - Picked up some tags from Conor and Rob (I kept Conor's a-b on the
> clear_page patch, even though there are several changes to it, because
> I interpreted the a-b as "OK by me to implement a Zicboz clear_page")
Yea, it was a "I am far from qualified to review your implementation,
but I am okay with it existing and the remainder of the patch".
Cheers,
Conor.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2023-02-09 17:45 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-09 15:26 [PATCH v4 0/8] RISC-V: Apply Zicboz to clear_page Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 15:26 ` [PATCH v4 1/8] RISC-V: alternatives: Support patching multiple insns in assembly Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 18:02 ` Conor Dooley
2023-02-09 18:03 ` Conor Dooley
2023-02-09 18:02 ` Conor Dooley
2023-02-09 15:26 ` [PATCH v4 2/8] RISC-V: Factor out body of riscv_init_cbom_blocksize loop Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 15:26 ` [PATCH v4 3/8] dt-bindings: riscv: Document cboz-block-size Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 15:26 ` [PATCH v4 4/8] RISC-V: Add Zicboz detection and block size parsing Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 15:26 ` [PATCH v4 5/8] RISC-V: cpufeature: Put vendor_id to work Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 19:04 ` Conor Dooley
2023-02-09 19:05 ` Conor Dooley
2023-02-09 19:04 ` Conor Dooley
2023-02-10 7:58 ` Andrew Jones
2023-02-10 7:58 ` Andrew Jones
2023-02-10 7:58 ` Andrew Jones
2023-02-10 20:29 ` Conor Dooley
2023-02-10 20:29 ` Conor Dooley
2023-02-10 20:29 ` Conor Dooley
2023-02-12 16:26 ` Andrew Jones
2023-02-12 16:26 ` Andrew Jones
2023-02-12 16:26 ` Andrew Jones
2023-02-09 15:26 ` [PATCH v4 6/8] RISC-V: Use Zicboz in clear_page when available Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 19:09 ` Conor Dooley
2023-02-09 19:10 ` Conor Dooley
2023-02-09 19:09 ` Conor Dooley
2023-02-10 8:05 ` Andrew Jones
2023-02-10 8:05 ` Andrew Jones
2023-02-10 8:05 ` Andrew Jones
2023-02-10 9:04 ` Conor Dooley
2023-02-10 9:05 ` Conor Dooley
2023-02-10 9:04 ` Conor Dooley
2023-02-17 10:18 ` Ben Dooks
2023-02-17 10:18 ` Ben Dooks
2023-02-17 10:18 ` Ben Dooks
2023-02-17 10:50 ` Ben Dooks
2023-02-17 10:50 ` Ben Dooks
2023-02-17 10:50 ` Ben Dooks
2023-02-17 12:29 ` Andrew Jones
2023-02-17 12:29 ` Andrew Jones
2023-02-17 12:29 ` Andrew Jones
2023-02-20 18:43 ` Ben Dooks
2023-02-20 18:43 ` Ben Dooks
2023-02-20 18:43 ` Ben Dooks
2023-02-20 19:24 ` Andrew Jones
2023-02-20 19:24 ` Andrew Jones
2023-02-20 19:24 ` Andrew Jones
2023-02-17 12:44 ` Andrew Jones
2023-02-17 12:44 ` Andrew Jones
2023-02-17 12:44 ` Andrew Jones
2023-02-09 15:26 ` [PATCH v4 7/8] RISC-V: KVM: Provide UAPI for Zicboz block size Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 15:26 ` [PATCH v4 8/8] RISC-V: KVM: Expose Zicboz to the guest Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 15:26 ` Andrew Jones
2023-02-09 17:45 ` Conor Dooley [this message]
2023-02-09 17:45 ` [PATCH v4 0/8] RISC-V: Apply Zicboz to clear_page Conor Dooley
2023-02-09 17:45 ` Conor Dooley
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=Y+UxTBmegHqqHDCQ@spud \
--to=conor@kernel.org \
--cc=kvm-riscv@lists.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.