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

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

What do you think of Yuji's patch? One thing to consider is that perhaps the
patch should be against the upstream qemu merge now. But I'm not sure that
PCI passthrough is even supported yet in that tree (Ian?).

 -- Keir

On 27/6/08 11:14, "Dong, Eddie" <eddie.dong@xxxxxxxxx> wrote:

> 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>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel

Xen-devel mailing list



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