From: "Nicholas Piggin" <npiggin@gmail.com>
To: "BALATON Zoltan" <balaton@eik.bme.hu>
Cc: <qemu-ppc@nongnu.org>, <qemu-devel@nongnu.org>
Subject: Re: [RFC PATCH] target/ppc: Do not set HPTE R/C bits on !guest_visible xlate
Date: Wed, 05 Mar 2025 16:45:06 +1000 [thread overview]
Message-ID: <D884OKIYGHJ4.2NBBKSTCAE7NX@gmail.com> (raw)
In-Reply-To: <caad84f0-d3dc-dd89-14d0-498a9246772b@eik.bme.hu>
On Mon Mar 3, 2025 at 8:58 PM AEST, BALATON Zoltan wrote:
> On Mon, 3 Mar 2025, Nicholas Piggin wrote:
>> Perform !guest_visible memory accesses without modifying R/C bits.
>>
>> It's arguable whether !guest_visible memory accesses should modify
>> R/C bits. i386 seems to set accessed/dirty bit updates for "probe"
>> accesses, but ppc with radix MMU does not. Follow the ppc/radix
>> lead and perform the accesses without updating R/C bits.
>>
>> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
>> ---
>> target/ppc/mmu-hash32.c | 27 ++++++++++++++-------------
>> target/ppc/mmu-hash64.c | 27 ++++++++++++++-------------
>> 2 files changed, 28 insertions(+), 26 deletions(-)
>>
>> diff --git a/target/ppc/mmu-hash32.c b/target/ppc/mmu-hash32.c
>> index 1f791a7f2f7..b8d7f87507b 100644
>> --- a/target/ppc/mmu-hash32.c
>> +++ b/target/ppc/mmu-hash32.c
>> @@ -410,19 +410,20 @@ bool ppc_hash32_xlate(PowerPCCPU *cpu, vaddr eaddr, MMUAccessType access_type,
>> qemu_log_mask(CPU_LOG_MMU, "PTE access granted !\n");
>>
>> /* 8. Update PTE referenced and changed bits if necessary */
>> -
>> - if (!(pte.pte1 & HPTE32_R_R)) {
>> - ppc_hash32_set_r(cpu, pte_offset, pte.pte1);
>> - }
>> - if (!(pte.pte1 & HPTE32_R_C)) {
>> - if (access_type == MMU_DATA_STORE) {
>> - ppc_hash32_set_c(cpu, pte_offset, pte.pte1);
>> - } else {
>> - /*
>> - * Treat the page as read-only for now, so that a later write
>> - * will pass through this function again to set the C bit
>> - */
>> - prot &= ~PAGE_WRITE;
>> + if (guest_visible) {
>
> Are these unlikely() ? Not sure if that makes a difference but if we know
> it may help some compilers.
Yes it probably is. Although we don't tend to use unlikely very much. I
guess we have to start somewhere.
Thanks,
Nick
prev parent reply other threads:[~2025-03-05 6:45 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-03 10:47 [RFC PATCH] target/ppc: Do not set HPTE R/C bits on !guest_visible xlate Nicholas Piggin
2025-03-03 10:58 ` BALATON Zoltan
2025-03-05 6:45 ` Nicholas Piggin [this message]
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=D884OKIYGHJ4.2NBBKSTCAE7NX@gmail.com \
--to=npiggin@gmail.com \
--cc=balaton@eik.bme.hu \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.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.