The version that Tony came up with, and I reviewed, doesn't actually work when applied to RAM. It only worked for i/o memory. This was the root cause for
https://lists.gnu.org/archive/html/qemu-devel/2019-09/msg00036.html I tried a couple of different approaches in load/store_helper, but this is the one that didn't affect the normal case -- a simple tlb miss against (non-swapped) ram. This is able to boot the solaris 7 notdirty_mem_ops reproducer til it panics due to no root file system, whereas before it would not make it to the SunOS banner. OpenBIOS for Sparc64 Configuration device id QEMU version 1 machine id 0 kernel cmdline CPUs: 1 x SUNW,UltraSPARC-IIi UUID: 00000000-0000-0000-0000-000000000000 Welcome to OpenBIOS v1.1 built on Aug 25 2019 18:20 Type 'help' for detailed information Trying cdrom:f... Not a bootable ELF image Not a bootable a.out image Loading FCode image... Loaded 5936 bytes entry point is 0x4000 Evaluating FCode... open isn't unique. SunOS Release 5.7 Version Generic_106541-06 [UNIX(R) System V Release 4.0] Copyright (c) 1983-1999, Sun Microsystems, Inc. WARNING: Interrupt not seen after set_features Cannot assemble drivers for root /pci@1f,0/pci@1,1/ide@3/cdrom@2,0:b Cannot mount root on /pci@1f,0/pci@1,1/ide@3/cdrom@2,0:b fstype ufs panic[cpu0]/thread=10404040: vfs_mountroot: cannot mount root skipping system dump - no dump device configured rebooting... BOOTpanic - kernel: prom_reboot: reboot call returned! EXIT 0 > Richard Henderson (3): cputlb: Disable __always_inline__ without optimization cputlb: Replace switches in load/store_helper with callback cputlb: Introduce TLB_BSWAP include/exec/cpu-all.h | 2 + accel/tcg/cputlb.c | 245 ++++++++++++++++++++++------------------- 2 files changed, 131 insertions(+), 116 deletions(-) -- 2.17.1