[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH 1/5] ioreq-server: centralize access to ioreq structures
> -----Original Message----- > From: Matt Wilson [mailto:mswilson@xxxxxxxxx] On Behalf Of Matt Wilson > Sent: 07 February 2014 04:54 > To: Paul Durrant > Cc: xen-devel@xxxxxxxxxxxxx > Subject: Re: [Xen-devel] [RFC PATCH 1/5] ioreq-server: centralize access to > ioreq structures > > On Thu, Jan 30, 2014 at 02:19:46PM +0000, Paul Durrant wrote: > > To simplify creation of the ioreq server abstraction in a > > subsequent patch, this patch centralizes all use of the shared > > ioreq structure and the buffered ioreq ring to the source module > > xen/arch/x86/hvm/hvm.c. > > Also, re-work hvm_send_assist_req() slightly to complete IO > > immediately in the case where there is no emulator (i.e. the shared > > IOREQ ring has not been set). This should handle the case currently > > covered by has_dm in hvmemul_do_io(). > > > > Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx> > > [...] > > > diff --git a/xen/include/asm-x86/hvm/support.h b/xen/include/asm- > x86/hvm/support.h > > index 3529499..b6af3c5 100644 > > --- a/xen/include/asm-x86/hvm/support.h > > +++ b/xen/include/asm-x86/hvm/support.h > > @@ -22,19 +22,10 @@ > > #define __ASM_X86_HVM_SUPPORT_H__ > > > > #include <xen/types.h> > > -#include <public/hvm/ioreq.h> > > #include <xen/sched.h> > > #include <xen/hvm/save.h> > > #include <asm/processor.h> > > > > -static inline ioreq_t *get_ioreq(struct vcpu *v) > > -{ > > - struct domain *d = v->domain; > > - shared_iopage_t *p = d->arch.hvm_domain.ioreq.va; > > - ASSERT((v == current) || spin_is_locked(&d- > >arch.hvm_domain.ioreq.lock)); > > - return p ? &p->vcpu_ioreq[v->vcpu_id] : NULL; > > -} > > - > > #define HVM_DELIVER_NO_ERROR_CODE -1 > > > > #ifndef NDEBUG > > Seems like this breaks nested VMX: > > vvmx.c: In function 'nvmx_switch_guest': > vvmx.c:1403: error: implicit declaration of function 'get_ioreq' > vvmx.c:1403: error: nested extern declaration of 'get_ioreq' > vvmx.c:1403: error: invalid type argument of '->' (have 'int') > Thanks Matt. That'll teach me to rebase just before I post. I tripped across this a couple of days ago myself and I've incorporated another couple of changes in v2 of this patch to fix it. I'll re-post the series once I've done some more testing with a secondary emulator that actually does something :-) Cheers, Paul > --msw _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |