[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-devel] [PATCH][RFC] Support more Capability Structures andDevice Specific



Yuji:
        We have a discussion in xen summit for PCI CFGS emulation, are
you in the summit too?
        Here is the slide for the discussion, we can coordinate.
Thx, eddie

Yuji Shimada wrote:
> I am submitting the patch which supports more Capability
> Structures and Device Specific Registers for passthrough
> device. 
> 
> In Xen 3.3 unstable, qemu-dm supports Configuration
> Header, MSI Capability Structure, and MSI-X Capability
> Structure. But qemu-dm does not support PCI Express
> Capability Structure, Device Specific Registers, etc
> (writing them is ignored). 
> 
> To support various I/O devices, I implemented following
> Capability Structures and Device Specific Registers.
> 
>     * Configuration Header Type 0
>         -> emulation.
>            "emulation" does not mean no accessing real
>            I/O device. Access real I/O device, but guest
>            value and real value might be different.
>     * PCI Express Capability Structure
>         -> emulation.
>     * PCI Power Management Capability Structure
>         -> emulation.
>     * Vital Product Data Capability Structure
>         -> emulation (almost passthrough).
>     * Vendor Specific Capability Structure
>         -> emulation (almost passthrough).
>     * Device Specific Register (exclude capability
>         structures) -> passthrough.
>            The device drivers in guest domain are allowed
>            to access Device Specific Register. So various
> I/O device will work. 
> 
> Currently MSI Capability Structure and MSI-X Capability
> Structure is not implemented, and they are hidden from
> guest software. I disabled MSI and MSI-X in qemu-dm
> temporary. I am implementing MSI Capability Structure and
> merging current MSI routines. I will release the patch if
> you agree with me. 
> 
> MSI-X will be after MSI. I will be very happy if anyone
> can help me. 
> 
> Other Capability Structures are hidden from guest
> software. To do this, I change Next Capability Pointer's
> value to point only the Capability Structure that need to
> be exported to guest software (see emulate capabilities
> above). And some Capability Structures are 0 hardwired,
> and others are passthrough. 
> 
> This patch removes "switch" statements for emulation, and
> introduces table based emulation derived from pciback
> driver. You can implement new Capability Structure by
> adding new table. 
> The other advantage of using this table is that you can
> easily change the emulation policy of each field/bit by
> just simply modifying the "emu_mask" value provided in
> each register table. 
> And for only special emulation or interacting with other
> components (like hypervisor), you have to implement
> function corresponding to the register.
> 
> Signed-off-by: Yuji Shimada <shimada-yxb@xxxxxxxxxxxxxxx>

Attachment: Xen - VT-D Enhance.pdf
Description: Xen - VT-D Enhance.pdf

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.