2010/12/16 Michael S. Tsirkin <mst@xxxxxxxxxx>: > On Thu, Dec 16, 2010 at 04:37:41PM +0900, Yoshiaki Tamura wrote: >> 2010/11/28 Yoshiaki Tamura <tamura.yoshiaki@xxxxxxxxxxxxx>: >> > 2010/11/28 Michael S. Tsirkin <mst@xxxxxxxxxx>: >> >> On Thu, Nov 25, 2010 at 03:06:50PM +0900, Yoshiaki Tamura wrote: >> >>> Record ioport event to replay it upon failover. >> >>> >> >>> Signed-off-by: Yoshiaki Tamura <tamura.yoshiaki@xxxxxxxxxxxxx> >> >> >> >> Interesting. This will have to be extended to support ioeventfd. >> >> Since each eventfd is really just a binary trigger >> >> it should be enough to read out the fd state. >> > >> > Haven't thought about eventfd yet. Will try doing it in the next >> > spin. >> >> Hi Michael, >> >> I looked into eventfd and realized it's only used with vhost now. > > There are patches on list to use it for block/userspace net. Thanks. Now I understand. In that case, inserting an even-tap function to the following code should be appropriate? int event_notifier_test_and_clear(EventNotifier *e) { uint64_t value; int r = read(e->fd, &value, sizeof(value)); return r == sizeof(value); } > >> However, I >> believe vhost bypass the net layer in qemu, and there is no way for Kemari to >> detect the outputs. To me, it doesn't make sense to extend this patch to >> support eventfd... >> >> Thanks, >> >> Yoshi >> >> > >> > Yoshi >> > >> >> >> >>> --- >> >>> ioport.c | 2 ++ >> >>> 1 files changed, 2 insertions(+), 0 deletions(-) >> >>> >> >>> diff --git a/ioport.c b/ioport.c >> >>> index aa4188a..74aebf5 100644 >> >>> --- a/ioport.c >> >>> +++ b/ioport.c >> >>> @@ -27,6 +27,7 @@ >> >>> >> >>> #include "ioport.h" >> >>> #include "trace.h" >> >>> +#include "event-tap.h" >> >>> >> >>> /***********************************************************/ >> >>> /* IO Port */ >> >>> @@ -76,6 +77,7 @@ static void ioport_write(int index, uint32_t address, uint32_t data) >> >>> default_ioport_writel >> >>> }; >> >>> IOPortWriteFunc *func = ioport_write_table[index][address]; >> >>> + event_tap_ioport(index, address, data); >> >>> if (!func) >> >>> func = default_func[index]; >> >>> func(ioport_opaque[address], address, data); >> >>> -- >> >>> 1.7.1.2 >> >>> >> >>> -- >> >>> To unsubscribe from this list: send the line "unsubscribe kvm" in >> >>> the body of a message to majordomo@xxxxxxxxxxxxxxx >> >>> More majordomo info at http://vger.kernel.org/majordomo-info.html >> >> -- >> >> To unsubscribe from this list: send the line "unsubscribe kvm" in >> >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> >> >> > > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html