|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 02/11] ioreq: terminate cf8 handling at hypervisor level
> -----Original Message-----
> From: Roger Pau Monne <roger.pau@xxxxxxxxxx>
> Sent: 04 September 2019 08:49
> To: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>
> Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx; Paul Durrant <Paul.Durrant@xxxxxxxxxx>;
> Jan Beulich
> <jbeulich@xxxxxxxx>; Wei Liu <wl@xxxxxxx>
> Subject: Re: [PATCH v2 02/11] ioreq: terminate cf8 handling at hypervisor
> level
>
> On Tue, Sep 03, 2019 at 06:13:59PM +0100, Andrew Cooper wrote:
> > On 03/09/2019 17:14, Roger Pau Monne wrote:
> > > diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
> > > index 692b710b02..69652e1080 100644
> > > --- a/xen/arch/x86/hvm/ioreq.c
> > > +++ b/xen/arch/x86/hvm/ioreq.c
> > > @@ -1015,6 +1015,12 @@ int hvm_map_io_range_to_ioreq_server(struct domain
> > > *d, ioservid_t id,
> > > switch ( type )
> > > {
> > > case XEN_DMOP_IO_RANGE_PORT:
> > > + rc = -EINVAL;
> > > + /* PCI config space accesses are handled internally. */
> > > + if ( start <= 0xcf8 + 8 && 0xcf8 <= end )
> > > + goto out;
> > > + else
> > > + /* fallthrough. */
> >
> > You need to drop the else, or it may still trigger warnings.
>
> Yes, my mistake. The else branch is not needed.
>
> > Furthermore, qemu registers cf8-cff so I think you need some fix-ups
> > there first before throwing errors back here.
>
> The version of QEMU I have doesn't seem to register 0xcf8 or 0xcfc,
> there are no errors on the log and QEMU seems to work just fine.
>
> I always assumed QEMU was getting accesses to cf8/cfc forwarded
> because it was the default device model, and everything not trapped by
> Xen would be forwarded to it. This default device model behaviour was
> removed by Paul some time ago, and now QEMU registers explicitly which
> IO accesses it wants to trap.
Yes, it used to need them to work correctly as a default emulator. However, we
don't generally stop an external emulator from registering ranges that are
handled by emulation directly in Xen (e.g. pmtimer) so I don't think you need
special-case these ports.
Paul
>
> > Finally, this prohibits registering cf9 which may legitimately not be
> > terminated in Xen.
>
> Yes, that should be cf8 - 7 not 8, thanks for catching it! Will update
> on the next version.
>
> Roger.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |