Thanks for reply.
On 03.07.16 17:26, Wan Zongshun wrote:


在 7/3/2016 8:59 AM, sunnydrake 写道:
[description]
working in kernel 3.9
Oops in current 4.4.0-28,4.7.0-040700rc5
kernel options ivrs_ioapic[7]=00:14.0 ivrs_ioapic[8]=00:00.1 workaround to fix ivrs table
cause kernel Oops on boot
Do you mean "ivrs_ioapic[7]=00:14.0 ivrs_ioapic[8]=00:00.1" are workable at kernel-3.9 but failed in kernel-4.4?
1)yes kernel 3.9 boots ok with ivrs_ioapic[7]=00:14.0 ivrs_ioapic[8]=00:00.1
kernels 4.4 and 4.7 fall to Oops


[bug]
oops:
short oops text
AMD-Vi: Completion_wait loop timed Out
BUG: unable to handle kernel NULL pointer dereference at 000..03e
... irq_pm_install_action+0x1c/0xd0
full oops image text
http://img.ctrlv.in/img/16/07/03/577863055370c.jpg

[additional info]
dmesg|grep AMD-Vi without ivrs_ioapic[8]=00:00.1
This log is from the kernel print without ivrs_ioapic[8]=00:00.1?
Why not provide your kernel log with "ivrs_ioapic[7]=00:14.0 ivrs_ioapic[8]=00:00.1" ?
Full kernel log is better.


2) yes, because with ivrs_ioapic[7]=00:14.0 ivrs_ioapic[8]=00:00.1 kernels are not bootable. Screen of Oops http://img.ctrlv.in/img/16/07/03/577863055370c.jpg (this with params ivrs_ioapic[7]=00:14.0 ivrs_ioapic[8]=00:00.1 ). if you need something another like kdump, i can provide.
[ 0.108566] AMD-Vi: Using IVHD type 0x10
[ 0.108630] AMD-Vi: device: 00:00.2 cap: 0040 seg: 0 flags: 3e info 1300
[    0.108671] AMD-Vi:        mmio-addr: 00000000feb20000
[ 0.108750] AMD-Vi: DEV_SELECT_RANGE_START devid: 00:00.0 flags: 00
[    0.108792] AMD-Vi:   DEV_RANGE_END         devid: 00:00.2
[    0.108834] AMD-Vi:   DEV_SELECT             devid: 00:02.0 flags: 00
[ 0.108875] AMD-Vi: DEV_SELECT_RANGE_START devid: 01:00.0 flags: 00
[    0.108917] AMD-Vi:   DEV_RANGE_END         devid: 01:00.1
[    0.108958] AMD-Vi:   DEV_SELECT             devid: 00:04.0 flags: 00
[    0.108999] AMD-Vi:   DEV_SELECT             devid: 02:00.0 flags: 00
[    0.109041] AMD-Vi:   DEV_SELECT             devid: 00:07.0 flags: 00
[    0.109082] AMD-Vi:   DEV_SELECT             devid: 03:00.0 flags: 00
[    0.109124] AMD-Vi:   DEV_SELECT             devid: 00:11.0 flags: 00
[ 0.109166] AMD-Vi: DEV_SELECT_RANGE_START devid: 00:12.0 flags: 00
[    0.109207] AMD-Vi:   DEV_RANGE_END         devid: 00:12.2
[ 0.109249] AMD-Vi: DEV_SELECT_RANGE_START devid: 00:13.0 flags: 00
[    0.114267] AMD-Vi:   DEV_RANGE_END         devid: 00:13.2
[    0.114308] AMD-Vi:   DEV_SELECT             devid: 00:14.0 flags: d7
[    0.114348] AMD-Vi:   DEV_SELECT             devid: 00:14.2 flags: 00
[    0.114389] AMD-Vi:   DEV_SELECT             devid: 00:14.3 flags: 00
[    0.114429] AMD-Vi:   DEV_SELECT             devid: 00:14.4 flags: 00
[ 0.114471] AMD-Vi: DEV_ALIAS_RANGE devid: 04:00.0 flags: 00 devid_to: 00:14.4
[    0.114519] AMD-Vi:   DEV_RANGE_END         devid: 04:1f.7
[    0.114564] AMD-Vi:   DEV_SELECT             devid: 00:14.5 flags: 00
[    0.114605] AMD-Vi:   DEV_SELECT             devid: 00:15.0 flags: 00
[ 0.114645] AMD-Vi: DEV_SELECT_RANGE_START devid: 05:00.0 flags: 00
[    0.114687] AMD-Vi:   DEV_RANGE_END         devid: 05:00.1
[ 0.114728] AMD-Vi: DEV_SELECT_RANGE_START devid: 00:16.0 flags: 00
[    0.114768] AMD-Vi:   DEV_RANGE_END         devid: 00:16.2
[    0.114840] AMD-Vi:   DEV_SPECIAL(IOAPIC[0])        devid: 00:14.0
[    0.114885] AMD-Vi:   DEV_SPECIAL(HPET[0])        devid: 00:14.0
[    0.114927] AMD-Vi:   DEV_SPECIAL(IOAPIC[255])        devid: 00:00.1
[    0.114969] AMD-Vi: IOAPIC[8] not in IVRS table
Here, it is abnormal, you should add ivrs_ioapic[8]=00:00.1 in boot option, or else if the devices rely on
ivrs_ioapic[8], they will not work.

3) yes this why i used ivrs_ioapic[7]=00:14.0 ivrs_ioapic[8]=00:00.1 in 3.9 kernel to enable interrupt remapping, but on 4.4 and 4.7 this wil cause Oops.
[ 0.115010] AMD-Vi: Disabling interrupt remapping
[    2.994584] AMD-Vi: Completion-Wait loop timed out
[    3.103059] AMD-Vi: Completion-Wait loop timed out
[    3.103145] AMD-Vi: Found IOMMU at 0000:00:00.2 cap 0x40
[    3.103279] AMD-Vi: Lazy IO/TLB flushing enabled
[ 3.993134] AMD-Vi: Event logged [IOTLB_INV_TIMEOUT device=05:00.0 address=0x000000044c6464a0] [ 3.993213] AMD-Vi: Event logged [IOTLB_INV_TIMEOUT device=05:00.0 address=0x000000044c6464c0] [ 5.100622] AMD-Vi: Event logged [IOTLB_INV_TIMEOUT device=05:00.0 address=0x000000044c646500]
05:00.0 device should be dead now.

4) this is second graphics card(ATI R9 380) on second PCI-E i use vfio-pci to bind it early for later use in in virtual machine.

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu



_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to