[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 6/9] ioreq-server: add support for multiple servers
>>> On 07.05.14 at 16:12, <Paul.Durrant@xxxxxxxxxx> wrote: >> -----Original Message----- >> From: Jan Beulich [mailto:JBeulich@xxxxxxxx] >> Sent: 07 May 2014 15:08 >> To: Paul Durrant >> Cc: Ian Campbell; Ian Jackson; Stefano Stabellini; xen-devel@xxxxxxxxxxxxx >> Subject: RE: [PATCH v5 6/9] ioreq-server: add support for multiple servers >> >> >>> On 07.05.14 at 14:37, <Paul.Durrant@xxxxxxxxxx> wrote: >> >> From: Jan Beulich [mailto:JBeulich@xxxxxxxx] >> >> >>> On 07.05.14 at 14:25, <Paul.Durrant@xxxxxxxxxx> wrote: >> >> >> From: Jan Beulich [mailto:JBeulich@xxxxxxxx] >> >> >> >>> On 07.05.14 at 14:06, <Paul.Durrant@xxxxxxxxxx> wrote: >> >> >> >> From: Jan Beulich [mailto:JBeulich@xxxxxxxx] >> >> >> >> >>> On 01.05.14 at 14:08, <paul.durrant@xxxxxxxxxx> wrote: >> >> >> >> > +static int hvm_access_cfc( >> >> >> >> > + int dir, uint32_t port, uint32_t bytes, uint32_t *val) >> >> >> >> > +{ >> >> >> >> > + struct vcpu *curr = current; >> >> >> >> > + struct hvm_domain *hd = &curr->domain->arch.hvm_domain; >> >> >> >> > + int rc; >> >> >> >> > + >> >> >> >> > + BUG_ON(port < 0xcfc); >> >> >> >> > + port -= 0xcfc; >> >> >> >> > + >> >> >> >> > + spin_lock(&hd->pci_lock); >> >> >> >> > + >> >> >> >> > + if ( hd->pci_cf8 & (1 << 31) ) { >> >> >> >> > + /* Fall through to an emulator */ >> >> >> >> > + rc = X86EMUL_UNHANDLEABLE; >> >> >> >> > + } else { >> >> >> >> > + /* Config access disabled */ >> >> >> >> >> >> >> >> Why does this not also get passed through to an emulator? >> >> >> >> >> >> >> > >> >> >> > I was trying to be consistent with QEMU here. It squashes any data >> >> >> accesses >> >> >> > if cf8 has the top bit set. >> >> >> >> >> >> But afaict with that dropped the entire function can go away. >> >> >> >> >> > >> >> > Yes, it can. Do you not think it would be a good idea to be consistent >> with >> >> > QEMU though? >> >> >> >> By removing the function you're going to be consistent with qemu, >> >> because you're going to have qemu supply the data. >> >> >> > >> > Yes, true, in select_ioreq_server() I could just pass cfc accesses to the >> > default emulator if cf8 has the top bit set. >> >> I continue to fail to see why you make this dependent on the value >> of the top bit - just have any accesses to port 0xCFC be handled by >> the emulator responsible for the respective device. > > Because, according to what I read, unless cf8 has the top bit set, a > subsequent access to cfc should not be treated as a config cycle. Oh, right, I mis-read your previous comment. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |