[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH 11/21] ioport: insert event_tap_ioport() to iopo
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] Re: [PATCH 11/21] ioport: insert event_tap_ioport() to ioport_write(). |
Date: |
Thu, 16 Dec 2010 11:54:18 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, Dec 16, 2010 at 06:50:04PM +0900, Yoshiaki Tamura wrote:
> 2010/12/16 Michael S. Tsirkin <address@hidden>:
> > On Thu, Dec 16, 2010 at 04:37:41PM +0900, Yoshiaki Tamura wrote:
> >> 2010/11/28 Yoshiaki Tamura <address@hidden>:
> >> > 2010/11/28 Michael S. Tsirkin <address@hidden>:
> >> >> 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 <address@hidden>
> >> >>
> >> >> 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 address@hidden
> >> >>> 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 address@hidden
> >> >> 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 address@hidden
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >