On Thu, Dec 16, 2010 at 06:50:04PM +0900, Yoshiaki Tamura wrote: > 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); > } Possibly. > > > >> However, I > >> believe vhost bypass the net layer in qemu, and there is no way for Kemari to > >> detect the outputs. Then maybe you should check for this combination and either disable vhost-net on the backend when kemari is active or fail. > >> 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