qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 17/36] plugins: force slow path when plugins instrument me


From: Richard Henderson
Subject: Re: [PATCH v3 17/36] plugins: force slow path when plugins instrument memory ops
Date: Wed, 28 Jun 2023 10:40:24 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0

On 6/27/23 18:09, Alex Bennée wrote:
The lack of SVE memory instrumentation has been an omission in plugin
handling since it was introduced. Fortunately we can utilise the
probe_* functions to force all all memory access to follow the slow
path. We do this by checking the access type and presence of plugin
memory callbacks and if set return the TLB_MMIO flag.

We have to jump through a few hoops in user mode to re-use the flag
but it was the desired effect:

  ./qemu-system-aarch64 -display none -serial mon:stdio \
    -M virt -cpu max -semihosting-config enable=on \
    -kernel ./tests/tcg/aarch64-softmmu/memory-sve \
    -plugin ./contrib/plugins/libexeclog.so,ifilter=st1w,afilter=0x40001808 -d 
plugin

gives (disas doesn't currently understand st1w):

   0, 0x40001808, 0xe54342a0, ".byte 0xa0, 0x42, 0x43, 0xe5", store, 
0x40213010, RAM, store, 0x40213014, RAM, store, 0x40213018, RAM

And for user-mode:

   ./qemu-aarch64 \
     -plugin contrib/plugins/libexeclog.so,afilter=0x4007c0 \
     -d plugin \
     ./tests/tcg/aarch64-linux-user/sha512-sve

gives:

   1..10
   ok 1 - do_test(&tests[i])
   0, 0x4007c0, 0xa4004b80, ".byte 0x80, 0x4b, 0x00, 0xa4", load, 0x5500800370, 
load, 0x5500800371, load, 0x5500800372, load, 0x5500800373, load, 0x5500800374, load, 
0x5500800375, load, 0x5500800376, load, 0x5500800377, load, 0x5500800378, load, 
0x5500800379, load, 0x550080037a, load, 0x550080037b, load, 0x550080037c, load, 
0x550080037d, load, 0x550080037e, load, 0x550080037f, load, 0x5500800380, load, 
0x5500800381, load, 0x5500800382, load, 0x5500800383, load, 0x5500800384, load, 
0x5500800385, load, 0x5500800386, lo
   ad, 0x5500800387, load, 0x5500800388, load, 0x5500800389, load, 
0x550080038a, load, 0x550080038b, load, 0x550080038c, load, 0x550080038d, load, 
0x550080038e, load, 0x550080038f, load, 0x5500800390, load, 0x5500800391, load, 
0x5500800392, load, 0x5500800393, load, 0x5500800394, load, 0x5500800395, load, 
0x5500800396, load, 0x5500800397, load, 0x5500800398, load, 0x5500800399, load, 
0x550080039a, load, 0x550080039b, load, 0x550080039c, load, 0x550080039d, load, 
0x550080039e, load, 0x550080039f, load, 0x55008003a0, load, 0x55008003a1, load, 
0x55008003a2, load, 0x55008003a3, load, 0x55008003a4, load, 0x55008003a5, load, 
0x55008003a6, load, 0x55008003a7, load, 0x55008003a8, load, 0x55008003a9, load, 
0x55008003aa, load, 0x55008003ab, load, 0x55008003ac, load, 0x55008003ad, load, 
0x55008003ae, load, 0x55008003af

(4007c0 is the ld1b in the sha512-sve)

Signed-off-by: Alex Bennée<alex.bennee@linaro.org>
Reviewed-by: Richard Henderson<richard.henderson@linaro.org>
Cc: Robert Henry<robhenry@microsoft.com>
Cc: Aaron Lindsay<aaron@os.amperecomputing.com>

---
v2
  - allow TLB_MMIO to appear in user-mode probe_access
v3
  - checkpatch cleanups
---

I thought we dropped this patch until we could do something with TLB accesses.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]