target/i386/tcg/sysemu/excp_helper.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
The probe_access_full_mmu function was designed for this purpose,
and does not report the memory operation event to plugins.
Cc: qemu-stable@nongnu.org
Fixes: 6d03226b422 ("plugins: force slow path when plugins instrument memory ops")
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/i386/tcg/sysemu/excp_helper.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/target/i386/tcg/sysemu/excp_helper.c b/target/i386/tcg/sysemu/excp_helper.c
index 8fb05b1f53..8f4dc08535 100644
--- a/target/i386/tcg/sysemu/excp_helper.c
+++ b/target/i386/tcg/sysemu/excp_helper.c
@@ -62,12 +62,11 @@ typedef struct PTETranslate {
static bool ptw_translate(PTETranslate *inout, hwaddr addr, uint64_t ra)
{
- CPUTLBEntryFull *full;
int flags;
inout->gaddr = addr;
- flags = probe_access_full(inout->env, addr, 0, MMU_DATA_STORE,
- inout->ptw_idx, true, &inout->haddr, &full, ra);
+ flags = probe_access_full_mmu(inout->env, addr, 0, MMU_DATA_STORE,
+ inout->ptw_idx, &inout->haddr, NULL);
if (unlikely(flags & TLB_INVALID_MASK)) {
TranslateFault *err = inout->err;
@@ -429,9 +428,8 @@ do_check_protect_pse36:
CPUTLBEntryFull *full;
int flags, nested_page_size;
- flags = probe_access_full(env, paddr, 0, access_type,
- MMU_NESTED_IDX, true,
- &pte_trans.haddr, &full, 0);
+ flags = probe_access_full_mmu(env, paddr, 0, access_type,
+ MMU_NESTED_IDX, &pte_trans.haddr, &full);
if (unlikely(flags & TLB_INVALID_MASK)) {
*err = (TranslateFault){
.error_code = env->error_code,
--
2.43.0
Richard Henderson <richard.henderson@linaro.org> writes: > The probe_access_full_mmu function was designed for this purpose, > and does not report the memory operation event to plugins. I note the kdoc for probe_access_full_mmu has the wrong title. It might be worth referencing the fault and instrumentation behaviour in the probe_access_full() kdoc as well. > > Cc: qemu-stable@nongnu.org > Fixes: 6d03226b422 ("plugins: force slow path when plugins instrument memory ops") > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > target/i386/tcg/sysemu/excp_helper.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/target/i386/tcg/sysemu/excp_helper.c b/target/i386/tcg/sysemu/excp_helper.c > index 8fb05b1f53..8f4dc08535 100644 > --- a/target/i386/tcg/sysemu/excp_helper.c > +++ b/target/i386/tcg/sysemu/excp_helper.c > @@ -62,12 +62,11 @@ typedef struct PTETranslate { > > static bool ptw_translate(PTETranslate *inout, hwaddr addr, uint64_t ra) > { > - CPUTLBEntryFull *full; > int flags; > > inout->gaddr = addr; > - flags = probe_access_full(inout->env, addr, 0, MMU_DATA_STORE, > - inout->ptw_idx, true, &inout->haddr, &full, ra); > + flags = probe_access_full_mmu(inout->env, addr, 0, MMU_DATA_STORE, > + inout->ptw_idx, &inout->haddr, NULL); > > if (unlikely(flags & TLB_INVALID_MASK)) { > TranslateFault *err = inout->err; > @@ -429,9 +428,8 @@ do_check_protect_pse36: > CPUTLBEntryFull *full; > int flags, nested_page_size; > > - flags = probe_access_full(env, paddr, 0, access_type, > - MMU_NESTED_IDX, true, > - &pte_trans.haddr, &full, 0); > + flags = probe_access_full_mmu(env, paddr, 0, access_type, > + MMU_NESTED_IDX, &pte_trans.haddr, &full); > if (unlikely(flags & TLB_INVALID_MASK)) { > *err = (TranslateFault){ > .error_code = env->error_code, -- Alex Bennée Virtualisation Tech Lead @ Linaro
On 8/10/24 21:20, Richard Henderson wrote: > The probe_access_full_mmu function was designed for this purpose, > and does not report the memory operation event to plugins. > > Cc: qemu-stable@nongnu.org > Fixes: 6d03226b422 ("plugins: force slow path when plugins instrument memory ops") > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > target/i386/tcg/sysemu/excp_helper.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/target/i386/tcg/sysemu/excp_helper.c b/target/i386/tcg/sysemu/excp_helper.c > index 8fb05b1f53..8f4dc08535 100644 > --- a/target/i386/tcg/sysemu/excp_helper.c > +++ b/target/i386/tcg/sysemu/excp_helper.c > @@ -62,12 +62,11 @@ typedef struct PTETranslate { > > static bool ptw_translate(PTETranslate *inout, hwaddr addr, uint64_t ra) We can remove the @ra argument; maybe clearer to do it in a separate commit. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
On 10/8/24 20:48, Philippe Mathieu-Daudé wrote: > On 8/10/24 21:20, Richard Henderson wrote: >> The probe_access_full_mmu function was designed for this purpose, >> and does not report the memory operation event to plugins. >> >> Cc: qemu-stable@nongnu.org >> Fixes: 6d03226b422 ("plugins: force slow path when plugins instrument memory ops") >> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> >> --- >> target/i386/tcg/sysemu/excp_helper.c | 10 ++++------ >> 1 file changed, 4 insertions(+), 6 deletions(-) >> >> diff --git a/target/i386/tcg/sysemu/excp_helper.c b/target/i386/tcg/sysemu/excp_helper.c >> index 8fb05b1f53..8f4dc08535 100644 >> --- a/target/i386/tcg/sysemu/excp_helper.c >> +++ b/target/i386/tcg/sysemu/excp_helper.c >> @@ -62,12 +62,11 @@ typedef struct PTETranslate { >> static bool ptw_translate(PTETranslate *inout, hwaddr addr, uint64_t ra) > > We can remove the @ra argument; maybe clearer to do it in a > separate commit. Good idea. > > Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> >
© 2016 - 2024 Red Hat, Inc.