在 7/4/2016 4:48 AM, sunnydrake 写道:
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.
If you can provide a full kernel log with ivrs_ioapic[7]=00:14.0
ivrs_ioapic[8]=00:00.1, that is better.
I checked your crash log, and find some things related to i8042 maybe
wrong, it is ps2 relation driver, is it necessary in your system? can
you disable this i8042 firsty to check if your issue is reasoned from it?
[ 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