Message ID | 1303729257-9034-13-git-send-email-ohmura.kei@lab.ntt.co.jp |
---|---|
State | New |
Headers | show |
On 2011-04-25 13:00, OHMURA Kei wrote: > From: Yoshiaki Tamura <tamura.yoshiaki@lab.ntt.co.jp> > > Record mmio write event to replay it upon failover. > > Signed-off-by: Yoshiaki Tamura <tamura.yoshiaki@lab.ntt.co.jp> > Signed-off-by: OHMURA Kei <ohmura.kei@lab.ntt.co.jp> > --- > exec.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/exec.c b/exec.c > index c3dc68a..3c3cece 100644 > --- a/exec.c > +++ b/exec.c > @@ -33,6 +33,7 @@ > #include "osdep.h" > #include "kvm.h" > #include "qemu-timer.h" > +#include "event-tap.h" > #if defined(CONFIG_USER_ONLY) > #include <qemu.h> > #include <signal.h> > @@ -3736,6 +3737,9 @@ void cpu_physical_memory_rw(target_phys_addr_t addr, uint8_t *buf, > io_index = (pd >> IO_MEM_SHIFT) & (IO_MEM_NB_ENTRIES - 1); > if (p) > addr1 = (addr & ~TARGET_PAGE_MASK) + p->region_offset; > + > + event_tap_mmio(addr, buf, len); > + You know that this is incomplete? A few devices are calling st*_phys directly, specifically virtio. What kind of mmio should be traced here, device or CPU originated? Or both? Jan
diff --git a/exec.c b/exec.c index c3dc68a..3c3cece 100644 --- a/exec.c +++ b/exec.c @@ -33,6 +33,7 @@ #include "osdep.h" #include "kvm.h" #include "qemu-timer.h" +#include "event-tap.h" #if defined(CONFIG_USER_ONLY) #include <qemu.h> #include <signal.h> @@ -3736,6 +3737,9 @@ void cpu_physical_memory_rw(target_phys_addr_t addr, uint8_t *buf, io_index = (pd >> IO_MEM_SHIFT) & (IO_MEM_NB_ENTRIES - 1); if (p) addr1 = (addr & ~TARGET_PAGE_MASK) + p->region_offset; + + event_tap_mmio(addr, buf, len); + /* XXX: could force cpu_single_env to NULL to avoid potential bugs */ if (l >= 4 && ((addr1 & 3) == 0)) {