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

Re: [Xen-devel] Re: Fire-wire passthrough with Linux pv-ops (2.6.31.1)


  • To: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
  • From: "Mr. Teo En Ming (Zhang Enming)" <space.time.universe@xxxxxxxxx>
  • Date: Mon, 2 Nov 2009 23:19:36 +0800
  • Cc: space.time.universe@xxxxxxxxx, Jeremy Fitzhardinge <jeremy@xxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx, "Han, Weidong" <weidong.han@xxxxxxxxx>
  • Delivery-date: Mon, 02 Nov 2009 07:20:31 -0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=Bcnm11CKCjO81VYNB7qdERAOY9hCdYBTJLpejLiaF+gWN+85AVLLGbOux7BoFb6JW3 y1NUCJQBAxD+8g2em0OdGunB/Sw7EjRhQKNoebA2qmtvt2bxIeQJr45/TADzYH80OC2B Vqm+neXr9VwoNUsheByJQp3gqqRDlFTEApbfg=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Hi Konrad,

>It looks as if they are were already loaded during bootup. >If you want to
>re-load them, first do 'rmmod' for all of the modules >associated with the card.

>But looking at your 'dmesg' output it looks as if it was >loaded correctly?

The kernel modules for the firewire controller were not loaded during bootup inside Slackware HVM domU. I believe there was an attempt to load the kernel modules for the firewire controller during bootup but failed with invalid argument.

>Wow. IRQ 36? Hmm, well mmaybe that is OK since you >are running
>under QEMU as HVM guest.

>Can you provide the lspci -vv output of the Dom0 and >DomU, please?

lspci -vvv of my firewire controller in Dom0:

02:01.0 FireWire (IEEE 1394): Agere Systems FW322/323 (rev 70) (prog-if 10 [OHCI])
    Subsystem: Intel Corporation Device 1003
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 32 (3000ns min, 6000ns max), Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 22
    Region 0: Memory at d3801000 (32-bit, non-prefetchable) [size=4K]
    Region 1: Memory at d3800000 (32-bit, non-prefetchable) [size=256]
    Capabilities: [44] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME+
    Kernel driver in use: firewire_ohci
    Kernel modules: firewire-ohci

>Hmmm.. I think that message is misleading. The code >shows that it
>failed to bind the PCI card (02:01:0) to an interrupt and >disabled
>the card. Then it prints the 'registered succesfully!' which is >incorrect.

>Can you provide the output of:
> - lspci -vvv (from Dom0)

Provided above.

> - lspci -vvv (from DomU)

00:05.0 FireWire (IEEE 1394): Agere Systems FW322/323 (rev 70) (prog-if 10 [OHCI])
    Subsystem: Intel Corporation Device 1003
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+
    Latency: 128 (3000ns min, 6000ns max)
    Interrupt: pin A routed to IRQ 36
    Region 0: Memory at e3001000 (32-bit, non-prefetchable) [size=4K]
    Region 1: Memory at e3002000 (32-bit, non-prefetchable) [size=4K]
    Capabilities: [44] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
    Kernel driver in use: ohci1394
    Kernel modules: ohci1394


> - cat /proc/interrupts (from Dom0) _before_ you launch >any guests or
>  call bind any devices to the pcistub/pciback.

           CPU0       CPU1      
  1:          2          0  xen-pirq-ioapic-edge  i8042
  4:          3          0  xen-pirq-ioapic-edge
  8:          1          0  xen-pirq-ioapic-edge  rtc0
  9:          0          0  xen-pirq-ioapic-level  acpi
 12:          4          0  xen-pirq-ioapic-edge  i8042
 16:          0          0  xen-pirq-ioapic-level  uhci_hcd:usb3
 17:          1          0  xen-pirq-ioapic-level
 18:         58          0  xen-pirq-ioapic-level  ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8
 19:     242304          0  xen-pirq-ioapic-level  ata_piix, ata_piix, uhci_hcd:usb7
 21:          0          0  xen-pirq-ioapic-level  uhci_hcd:usb4
 22:     387742          0  xen-pirq-ioapic-level  HDA Intel, firewire_ohci
 23:     252475          0  xen-pirq-ioapic-level  ehci_hcd:usb2, uhci_hcd:usb6
 24:      97835          0   xen-dyn-virq      timer0
 25:     780164          0   xen-dyn-ipi       resched0
 26:          0          0   xen-dyn-ipi       callfunc0
 27:          0          0   xen-dyn-virq      debug0
 28:        273          0   xen-dyn-ipi       callfuncsingle0
 29:          0   28539658   xen-dyn-virq      timer1
 30:          0     829152   xen-dyn-ipi       resched1
 31:          0          0   xen-dyn-ipi       callfunc1
 32:          0          0   xen-dyn-virq      debug1
 33:          0        706   xen-dyn-ipi       callfuncsingle1
 34:       3415       3219   xen-dyn-event     xenbus
 36:          0          0   xen-dyn-virq      mce
 38:     439766          0  xen-pirq-msi       peth0
 39:       2010       1905   xen-dyn-event     evtchn:xenstored
 40:          9          0   xen-dyn-event     evtchn:xenstored
NMI:          0          0   Non-maskable interrupts
LOC:          0          0   Local timer interrupts
SPU:          0          0   Spurious interrupts
CNT:          0          0   Performance counter interrupts
PND:          0          0   Performance pending work
RES:     780164     829152   Rescheduling interrupts
CAL:        273        706   Function call interrupts
TLB:          0          0   TLB shootdowns
TRM:          0          0   Thermal event interrupts
THR:          0          0   Threshold APIC interrupts
MCE:          0          0   Machine check exceptions
MCP:         32         32   Machine check polls
ERR:          0
MIS:          0

> - cat /proc/interrupts (from DomU) after you launch it and >try to
>  do stuff with the firewire. For example try to pull videos >from
>  your camera via the firewire port.

I haven't tried to control the camera using the firewire port but here's my /proc/interrupts output.

           CPU0       CPU1      
  0:        132          0   IO-APIC-edge      timer
  1:        134        132   IO-APIC-edge      i8042
  4:          1          0   IO-APIC-edge   
  6:          1          2   IO-APIC-edge      floppy
  7:          0          0   IO-APIC-edge      parport0
  8:          1          0   IO-APIC-edge      rtc0
  9:          0          0   IO-APIC-fasteoi   acpi
 12:        137         86   IO-APIC-edge      i8042
 14:       2492       2500   IO-APIC-edge      ide0
 15:        252        238   IO-APIC-edge      ide1
 32:         63         71   IO-APIC-fasteoi   eth0
 36:          0          0   IO-APIC-fasteoi   ohci1394
NMI:          0          0   Non-maskable interrupts
LOC:     181885     181753   Local timer interrupts
RES:       1994       1700   Rescheduling interrupts
CAL:         18         26   Function call interrupts
TLB:        316        345   TLB shootdowns
TRM:          0          0   Thermal event interrupts
THR:          0          0   Threshold APIC interrupts
SPU:          0          0   Spurious interrupts
ERR:          0
MIS:          0

The kernel modules for the firewire controller in Slackware HVM DomU are unable to load.

root@slackware64-13:~# lsmod | grep 1394
root@slackware64-13:~# modprobe ieee1394
FATAL: Error inserting ieee1394 (/lib/modules/2.6.29.6/kernel/drivers/ieee1394/ieee1394.ko): Invalid argument
root@slackware64-13:~# modprobe ohci1394
FATAL: Error inserting ohci1394 (/lib/modules/2.6.29.6/kernel/drivers/ieee1394/ohci1394.ko): Invalid argument

I am running pv-ops dom0 kernel 2.6.31.5 now. There appears to be some sluggishness/unresponsiveness with this kernel after I have started a HVM guest.

By the way, can you also help me to solve this problem as well?

http://lists.xensource.com/archives/html/xen-devel/2009-11/msg00044.html

Thank you!

--
Mr. Teo En Ming (Zhang Enming) Dip(Mechatronics) BEng(Hons)(Mechanical Engineering)
Alma Maters:
(1) Singapore Polytechnic
(2) National University of Singapore
My Primary Blog: http://teo-en-ming-aka-zhang-enming.blogspot.com
My Secondary Blog: http://enmingteo.wordpress.com
My Youtube videos: http://www.youtube.com/user/enmingteo
Email: space.time.universe@xxxxxxxxx
Mobile Phone (Starhub Prepaid): +65-8369-2618
Street: Bedok Reservoir Road
Country: Singapore

On Mon, Nov 2, 2009 at 10:13 PM, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> wrote:
On Sun, Nov 01, 2009 at 10:07:41PM +0800, Mr. Teo En Ming (Zhang Enming) wrote:
> Hi All,
>
> I have just installed Slackware64 13.0 64-bit Linux as HVM domU. Please
> refer to
> http://enmingteo.wordpress.com/2009/11/01/picture-tutorial-how-to-setup-slackware64-13-0-hvm-domu-with-xen-3-5-unstable-pv-ops-dom0-kernel-2-6-31-4-in-fedora-11-x86-64-dom0/for
> more details and screenshots.
>
> I have tried to passthrough the firewire controller on Intel DQ45CB
> motherboard to Slackware64 13.0 HVM domU but I can't load the kernel modules
> for it.

It looks as if they are were already loaded during bootup. If you want to
re-load them, first do 'rmmod' for all of the modules associated with the card.

But looking at your 'dmesg' output it looks as if it was loaded correctly?

>
> Please have a look at the following output within Slackware64 13.0 HVM domU.
>
> 00:05.0 FireWire (IEEE 1394): Agere Systems FW322/323 (rev 70) (prog-if 10
> [OHCI])
>     Subsystem: Intel Corporation Device 1003
>     Flags: bus master, medium devsel, latency 128, IRQ 36

Wow. IRQ 36? Hmm, well mmaybe that is OK since you are running
under QEMU as HVM guest.

Can you provide the lspci -vv output of the Dom0 and DomU, please?

>     Memory at e3001000 (32-bit, non-prefetchable) [size=4K]
>     Memory at e3002000 (32-bit, non-prefetchable) [size=4K]
>     Capabilities: [44] Power Management version 2
>     Kernel driver in use: ohci1394
>     Kernel modules: ohci1394

... snup ..
> dm-command: hot insert pass-through pci dev
> register_real_device: Assigning real physical device 02:01.0 ...
> pt_iomul_init: Error: pt_iomul_init can't open file /dev/xen/pci_iomul: No
> such file or directory: 0x2:0x1.0x0
> pt_register_regions: IO region registered (size=0x00001000
> base_addr=0xd3801000)
> pt_register_regions: IO region registered (size=0x00000100
> base_addr=0xd3800000)
> register_real_device: Error: Binding of interrupt failed! rc=-1
> register_real_device: Real physical device 02:01.0 registered successfuly!
> IRQ type = INTx

Hmmm.. I think that message is misleading. The code shows that it
failed to bind the PCI card (02:01:0) to an interrupt and disabled
the card. Then it prints the 'registered succesfully!' which is incorrect.

Can you provide the output of:
 - lspci -vvv (from Dom0)
 - lspci -vvv (from DomU)
 - cat /proc/interrupts (from Dom0) _before_ you launch any guests or
  call bind any devices to the pcistub/pciback.
 - cat /proc/interrupts (from DomU) after you launch it and try to
  do stuff with the firewire. For example try to pull videos from
  your camera via the firewire port.

> cirrus vga map change while on lfb mode
> pt_iomem_map: e_phys=e3001000 maddr=d3801000 type=0 len=4096 index=0
> first_map=1
> pt_iomem_map: e_phys=e3002000 maddr=d3800000 type=0 len=4096 index=1
> first_map=1
> mapping vram to e0000000 - e0400000
> platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw
> state.
> platform_fixed_ioport: changed ro/rw state of ROM memory area. now is ro
> state.
> *pt_pci_write_config: Warning: Guest attempt to set address to unused Base
> Address Register. [00:05.0][Offset:30h][Length:4]*

It does pass it throught. I believe it is OK during the probing of the
device - but it does not say what the value it tried to write, so it is
unclear what it is doing at that point.

>
> The line immediately above looks very suspicious.
>
> --
> Mr. Teo En Ming (Zhang Enming) Dip(Mechatronics) BEng(Hons)(Mechanical
> Engineering)
> Alma Maters:
> (1) Singapore Polytechnic
> (2) National University of Singapore
> My Primary Blog: http://teo-en-ming-aka-zhang-enming.blogspot.com
> My Secondary Blog: http://enmingteo.wordpress.com
> My Youtube videos: http://www.youtube.com/user/enmingteo
> Email: space.time.universe@xxxxxxxxx
> MSN: teoenming@xxxxxxxxxxx
> Mobile Phone (SingTel): +65-9648-9798
> Mobile Phone (Starhub Prepaid): +65-8369-2618
> Age: 31 (as at 30 Oct 2009)
> Height: 1.78 meters
> Race: Chinese
> Dialect: Hokkien
> Street: Bedok Reservoir Road
> Country: Singapore
>
> On Sat, Oct 24, 2009 at 2:19 AM, Mr. Teo En Ming (Zhang Enming) <
> space.time.universe@xxxxxxxxx> wrote:
>
> > From the screenshots of the device manager in the Win XP Home domU,
> > the OHCI IEEE 1394 firewire controller appears to be working properly.
> > The Windows drivers for the firewire controller reports that the
> > firewire controller is working fine.
> >
> > However, when you connect a firewire-based digital video camera to the
> > firewire port, it is not detected in the Windows virtual machine.
> >
> > I will probably have to find time to install a Linux HVM domU and try
> > to pass through the 1394 controller to it.
> >
> > --
> > Mr. Teo En Ming (Zhang Enming) Dip(Mechatronics) BEng(Hons)(Mechanical
> > Engineering)
> > Alma Maters:
> > (1) Singapore Polytechnic
> > (2) National University of Singapore
> > Blog URL: http://teo-en-ming-aka-zhang-enming.blogspot.com
> > Email: space.time.universe@xxxxxxxxx
> > MSN: teoenming@xxxxxxxxxxx
> > Mobile Phone: +65-9648-9798
> > Street: Bedok Reservoir Road
> > Republic of Singapore
> >
> >
> > On Sat, Oct 24, 2009 at 1:57 AM, Konrad Rzeszutek Wilk
> > <konrad.wilk@xxxxxxxxxx> wrote:
> > > On Sat, Oct 24, 2009 at 01:47:31AM +0800, Mr. Teo En Ming (Zhang Enming)
> > wrote:
> > >> Hi,
> > >>
> > >> Could you help me look at here
> > >>
> > http://lists.xensource.com/archives/html/xen-devel/2009-10/msg01149.html
> > >> and also here
> > http://lists.xensource.com/archives/html/xen-devel/2009-10/msg01134.html
> > >
> > > Its looks to be working from the Dom0 side just fine. I am curious as
> > what is happening
> > > on the Windows driver side. I don't know enough about where Windows
> > drivers put
> > > debug information so I can't suggest where to look there. One suggestion
> > is that
> > > you install Fedora Core 11 as a HVM guest and passthrough your firewire
> > controller to it.
> > > And then include the logs from the Fedora domU - that should give more
> > insight on why
> > > it is not working properly.
> > >
> >

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





_______________________________________________
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®.