I've done some bug fixes as follows.
1. correct the size calculation of MSI Capability Structure in
pt_msi_size_init(). The next capability might be hidden due to wrong
large size of MSI.
2. modify the decision logic for determining unused Exp ROM BAR in
pt_bar_reg_parse(). Use PCIIORegion table instead of parsing
BAR itself.
3. bug fix on .size_init func for PCI Express Capability Structure
in pt_emu_reg_grp_tbl[].
(pt_vendor_size_init ---> pt_reg_grp_size_init)
4. small bug fix on the decision logic for checking unused BAR in
pt_pci_write_config().
5. add printf message to show overlapped device in pt_chk_bar_overlap().
6. modify pt_bar_mapping() to prevent guest software mapping memory
resource to 00000000h
7. modify pt_bar_mapping() to map resource even if overlapping is
detected.
I've tested my patch with CentOS 5.1 and PCI/PCIe NIC. Without
"pci=nomsi", guest OS can use the assigned NIC and can communicate
with external machine.
Additionally I assigned UHCI Controller to guest domain. Guest OS can
use USB-HDD and USB-Mouse.
Could you test the patch?
I am going to remove list.h and enable MSI.
Thanks.
Signed-off-by: Yuji Shimada <shimada-yxb@xxxxxxxxxxxxxxx>
--
Yuji Shimada
On Mon, 30 Jun 2008 17:29:38 +0800
"Cui, Dexuan" <dexuan.cui@xxxxxxxxx> wrote:
> I'm using x86_64 c/s 17888: 6ace85eb96c0, and assigning a 82541PI Gigabit
> Etherer NIC to guest.
> I also tried "pci=nomsi" for Dom0, and the issus is still there.
> When the issue happens, eth0 doesn't occur in /proc/interrupt though the
> device driver module is loaded.
> The issue doesn't happen every time. Really strange...
>
> Thanks,
> -- Dexuan
>
>
> -----Original Message-----
> From: Yuji Shimada [mailto:shimada-yxb@xxxxxxxxxxxxxxx]
> Sent: 2008夏・花可30科苛 16:15
> To: Cui, Dexuan
> Cc: Ian Jackson; xen-devel@xxxxxxxxxxxxxxxxxxx; Dong, Eddie; Keir Fraser
> Subject: Re: [Xen-devel] [PATCH][RFC] Support more Capability
> StructuresandDevice Specific
>
> Hi Dexuan,
>
> I've tested my patch with CentOS 5.1 and PCI/PCIe NIC. In my test
> environment (with "pci=nomsi" set for Dom0 boot parameter), guest
> OS can use the assigned NIC and can communicate with external machine.
>
> Does guest OS recieve interrupt? You can check via /proc/interrupts.
>
> Thanks.
>
> --
> Yuji Shimada
>
> > Hi Yuji,
> > I looked at the patch. It seems pretty good.
> > Except for the (temporary) absence of MSI/MSI-X stuff, looks the
> > passthrough policy in the patch is almost the same as what is discussed in
> > the PDF file Eddie posted.
> >
> > I also made some tests against the patch, and found there may be some
> > unstable issues:
> > I.e., when I boot a 32e RHEL5u1 (I add the "pci=nomsi" parameter)), it can
> > easily (30%~80% probable) stay for a very long (i.e., >40s) at "Starting
> > udev:", and after I login in shell, the NIC seems not present (the guest
> > has no network available), but "lspci" shows the NIC is there.
> > If I use the Qemu without your patch, the issue disappears at once, and NIC
> > in guest works well.
> >
> > I haven't found issue in your patch yet. :)
> >
> > Thanks,
> > -- Dexuan
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
pci_config_passthrough-080702-02.patch
Description: Binary data
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|