Bug 847722
| Summary: | backport: KVM: fix race with level interrupts | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Michael S. Tsirkin <mst> |
| Component: | kernel | Assignee: | Michael S. Tsirkin <mst> |
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 6.4 | CC: | areis, chayang, jcpunk, juzhang, michen, qiguo, qzhang, rhod, xfu |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | kernel-2.6.32-335.el6 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2013-02-21 06:46:18 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux release for currently deployed products. This request is not yet committed for inclusion in a release. clarification: to cause more than 1 source id to be used for the same GSI, one needs to create a setup where an assigned device and one other device use level interrupts and share an IRQ line in guest. (In reply to comment #7) > clarification: to cause more than 1 source id to be used for the same > GSI, one needs to create a setup where an assigned device and one other > device use level interrupts and share an IRQ line in guest. Hi, Michael Before we start to functional(device assignment) testing, need to double confirm to you. KVM qe will set up the following environment, any mistake, please fix me. 1. Need to find two pci device that share one IRQ value in host via issue the command "cat /proc/interrupts" 2. Pass-through these two pci device to guest. 3. Do the device assignment testing. 4. We assume this brew works fine if we pass all device assignment test cases. Best Regards & Thanks, Junyi 1/2 is not what is intended. Instead: 1. boot guest with msi disabled 2. select an assigned device in host and hot-add to guest change pci slot used in guest until find one where irq line in guest is shared with another device in guest (can be another assigned device). 3/4 are correct (In reply to comment #9) > 1/2 is not what is intended. Instead: > > 1. boot guest with msi disabled Ok, I will append pci=nomsi in guest kernel line to disable msi in guest. > > 2. select an assigned device in host and hot-add to guest > change pci slot used in guest until find one where irq line > in guest is shared with another device in guest (can be another > assigned device). Any much quicker method to let two device share one irq value in guest? only one way by changing the pci slot until find two device share one irq? > > > > 3/4 are correct Best Regards & Thanks, Junyi I think if you select 2 slots that are 4 apart then they share an interrupt. For example slots 2 and 6. But pls verify using lspci in guest. (In reply to comment #11) > I think if you select 2 slots that are 4 apart then they share > an interrupt. For example slots 2 and 6. > But pls verify using lspci in guest. Thanks, still have question. Just have a quick check in the host and find the irq value is inconsistent between "cat /proc/interrupts" and "lspci -vvv -s", take the host eth0 for example, any mistake, please fix me. 1. check the eth0 irq value via "cat /proc/interrupts", the irq value is 35. 35: 0 0 0 0 IR-PCI-MSI-edge eth0 2. check the eth0 irq value via "lspci -vvv -s 03:00.0", the irq value is 18. 2.1 #ethtool -i eth0 driver: igb version: 3.2.10-k firmware-version: 1.2-1 bus-info: 0000:03:00.0 2.2 #lspci -vvv -s 03:00.0 03:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) Subsystem: Intel Corporation Gigabit ET2 Quad Port Server Adapter Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 18 Best Regards & Thanks, Junyi Hi, Michael Would you please review comment12 and explain why the irq value is inconsistent between "cat /proc/interrupts" and "lspci -vvv -s"? Best Regards & Thanks, Junyi this I think is because you are using msi. (In reply to comment #14) > this I think is because you are using msi. Yes, the host uses msi as interrupt mechanism, kvm qe would very appreciate if you can explain with details why the irq value is inconsistent between "cat /proc/interrupts" and "lspci -vvv -s" by using msi, thanks. Best Regards & Thanks, Junyi what lspci shows is the IRQ assigned to the interrupt PIN
by BIOS at the ioapic.
I think you clipped some output, if you look below you will see
something like:
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee0f00c Data: 4161
which would tell you that MSI is enabled so interrupt pin is unused.
what /proc/interrupts shows is the interrupt actually used by driver
which is an MSI vector.
level interrupt is unused in this setup, if you see something like
this in guest it's not a good test for this bz.
(In reply to comment #16) > what lspci shows is the IRQ assigned to the interrupt PIN > by BIOS at the ioapic. > I think you clipped some output, if you look below you will see Yes, I just pasted snip of output. > something like: > > Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit- > Address: fee0f00c Data: 4161 > > which would tell you that MSI is enabled so interrupt pin is unused. > > what /proc/interrupts shows is the interrupt actually used by driver > which is an MSI vector. > level interrupt is unused in this setup, if you see something like > this in guest it's not a good test for this bz. Clear now, thanks. Firstly, kvm qe will check whether the msi is disabled and check the two device's irq value via lspci in guest. Best Regards, Junyi Patch(es) available on kernel-2.6.32-335.el6 verify this bug with kernel-2.6.32-348.el6.x86_64 1. Host qemu-kvm version and guest kernel build Host qemu-kvm:qemu-kvm-0.12.1.2-2.346.el6.test.x86_64 Guest kernel version:kernel-2.6.32-348.el6.x86_64 2. The environment in guest 2.1 cli as #/usr/libexec/qemu-kvm ... -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virt-net0,mac=54:52:1a:32:b4:81 -vnc :10 -device pci-assign,host=06:00.1,id=hostdev1 -device pci-assign,host=06:00.0,id=hostdev0 ... 2.2 append pci=nomsi in guest kernel line 2.3 guest#cat /proc/interrupts ..... 10: 6666 0 IO-APIC-fasteoi virtio1, eth236, eth237 11: 769 0 IO-APIC-fasteoi virtio0 ..... # lspci |grep Eth 00:03.0 Ethernet controller: Red Hat, Inc Virtio network device 00:05.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection (rev 01) 00:06.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection (rev 01) # lspci -vvvv -s 00:03.0 00:03.0 Ethernet controller: Red Hat, Inc Virtio network device Subsystem: Red Hat, Inc Device 0001 Physical Slot: 3 Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Interrupt: pin A routed to IRQ 11 Region 0: I/O ports at c020 [size=32] Region 1: Memory at f1010000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at f1020000 [disabled] [size=64K] Capabilities: [40] MSI-X: Enable- Count=3 Masked- Vector table: BAR=1 offset=00000000 PBA: BAR=1 offset=00000800 Kernel driver in use: virtio-pci Kernel modules: virtio_pci # lspci -vvvv -s 00:05.0 00:05.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection (rev 01) Subsystem: Intel Corporation Ethernet Server Adapter X520-2 Physical Slot: 5 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin B routed to IRQ 10 Region 0: Memory at f1080000 (32-bit, non-prefetchable) [size=512K] Region 2: I/O ports at c080 [size=32] Region 4: Memory at f1100000 (32-bit, non-prefetchable) [size=16K] Expansion ROM at f1180000 [disabled] [size=512K] Capabilities: [e0] Vital Product Data Unknown small resource type 00, will not decode more. Capabilities: [a0] Express (v2) Endpoint, MSI 00 DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 256 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 5GT/s, Width x8, ASPM L0s, Latency L0 <1us, L1 <8us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x8, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR-, OBFF Not Supported DevCtl2: Completion Timeout: 65ms to 210ms, TimeoutDis-, LTR-, OBFF Disabled LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [40] Power Management version 3 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [70] MSI-X: Enable- Count=64 Masked- Vector table: BAR=4 offset=00000000 PBA: BAR=4 offset=00002000 Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit- Address: 00000000 Data: 0000 Kernel driver in use: ixgbe Kernel modules: ixgbe # lspci -vvvv -s 00:06.0 00:06.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection (rev 01) Subsystem: Intel Corporation Ethernet Server Adapter X520-2 Physical Slot: 6 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 10 Region 0: Memory at f1200000 (32-bit, non-prefetchable) [size=512K] Region 2: I/O ports at c0a0 [size=32] Region 4: Memory at f1280000 (32-bit, non-prefetchable) [size=16K] Expansion ROM at f1300000 [disabled] [size=512K] Capabilities: [e0] Vital Product Data Unknown small resource type 00, will not decode more. Capabilities: [a0] Express (v2) Endpoint, MSI 00 DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 256 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 5GT/s, Width x8, ASPM L0s, Latency L0 <1us, L1 <8us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x8, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR-, OBFF Not Supported DevCtl2: Completion Timeout: 65ms to 210ms, TimeoutDis-, LTR-, OBFF Disabled LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [40] Power Management version 3 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [70] MSI-X: Enable- Count=64 Masked- Vector table: BAR=4 offset=00000000 PBA: BAR=4 offset=00002000 Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit- Address: 00000000 Data: 0000 Kernel driver in use: ixgbe Kernel modules: ixgbe guest# cat /proc/cmdline ro root=/dev/mapper/vg_guest-lv_root rd_NO_LUKS rd_LVM_LV=vg_guest/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=vg_guest/lv_root crashkernel=128M KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM LANG=en_US.UTF-8 rhgb quiet pci=nomsi So According to these info, the msi is disabled but two device assignment and one virtio emulated nic do not share one irc value! If something wrong in my test? Please correct me if anything wrong. (In reply to comment #23) > verify this bug with kernel-2.6.32-348.el6.x86_64 Re-verify this bug with kernel-2.6.32-348.el6.x86_64 1. Host qemu-kvm version and guest kernel build Host qemu-kvm:qemu-kvm-0.12.1.2-2.346.el6.test.x86_64 Guest kernel version:kernel-2.6.32-348.el6.x86_64 2. The environment in guest 2.1 cli as #/usr/libexec/qemu-kvm ...-netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virt-net0,mac=54:52:1a:32:b4:81,multifunction=on,addr=0x7.0 -device pci-assign,host=06:00.0,id=hostdev0 -device pci-assign,host=06:00.1,id=hostdev1 ... 2.2 append pci=nomsi in guest kernel line 2.3 guest#cat /proc/interrupts ..... 10: 1557 0 IO-APIC-fasteoi virtio1, eth237, eth236 ..... # lspci |grep Eth 00:03.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection (rev 01) 00:05.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection (rev 01) 00:07.0 Ethernet controller: Red Hat, Inc Virtio network device ]# lspci -vvvv -s 00:03.0 00:03.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection (rev 01) Subsystem: Intel Corporation Ethernet Server Adapter X520-2 Physical Slot: 3 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 10 Region 0: Memory at f1080000 (32-bit, non-prefetchable) [size=512K] Region 2: I/O ports at c020 [size=32] Region 4: Memory at f1100000 (32-bit, non-prefetchable) [size=16K] Expansion ROM at f1180000 [disabled] [size=512K] Capabilities: [e0] Vital Product Data Unknown small resource type 00, will not decode more. Capabilities: [a0] Express (v2) Endpoint, MSI 00 DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 256 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 5GT/s, Width x8, ASPM L0s, Latency L0 <1us, L1 <8us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x8, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR-, OBFF Not Supported DevCtl2: Completion Timeout: 65ms to 210ms, TimeoutDis-, LTR-, OBFF Disabled LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [40] Power Management version 3 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [70] MSI-X: Enable- Count=64 Masked- Vector table: BAR=4 offset=00000000 PBA: BAR=4 offset=00002000 Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit- Address: 00000000 Data: 0000 Kernel driver in use: ixgbe Kernel modules: ixgbe # lspci -vvvv -s 00:05.0 00:05.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection (rev 01) Subsystem: Intel Corporation Ethernet Server Adapter X520-2 Physical Slot: 5 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin B routed to IRQ 10 Region 0: Memory at f1280000 (32-bit, non-prefetchable) [size=512K] Region 2: I/O ports at c080 [size=32] Region 4: Memory at f1300000 (32-bit, non-prefetchable) [size=16K] Expansion ROM at f1380000 [disabled] [size=512K] Capabilities: [e0] Vital Product Data Unknown small resource type 00, will not decode more. Capabilities: [a0] Express (v2) Endpoint, MSI 00 DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 256 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 5GT/s, Width x8, ASPM L0s, Latency L0 <1us, L1 <8us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x8, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR-, OBFF Not Supported DevCtl2: Completion Timeout: 65ms to 210ms, TimeoutDis-, LTR-, OBFF Disabled LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [40] Power Management version 3 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [70] MSI-X: Enable- Count=64 Masked- Vector table: BAR=4 offset=00000000 PBA: BAR=4 offset=00002000 Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit- Address: 00000000 Data: 0000 Kernel driver in use: ixgbe Kernel modules: ixgbe # lspci -vvvv -s 00:07.0 00:07.0 Ethernet controller: Red Hat, Inc Virtio network device Subsystem: Red Hat, Inc Device 0001 Physical Slot: 7 Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Interrupt: pin A routed to IRQ 10 Region 0: I/O ports at c0a0 [size=32] Region 1: Memory at f1400000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at f1410000 [disabled] [size=64K] Capabilities: [40] MSI-X: Enable- Count=3 Masked- Vector table: BAR=1 offset=00000000 PBA: BAR=1 offset=00000800 Kernel driver in use: virtio-pci Kernel modules: virtio_pci So according to above, these devices shares one irq NO.10 and the msi is disabled, this bug is fixed with kernel-2.6.32-348.el6.x86_64. correct comment 25. This are two device assignment test run. and make sure device assignment device and virtio-net share 1 irq values and add pci=nomsi to guest kernel line e.g. on guest cat /proc/interrupts 10: 144 0 0 0 IO-APIC-fasteoi virtio1, eth1 11: 73 0 0 0 IO-APIC-fasteoi virtio0, eth2 # ethtool -i eth1 ethtool -i eth1 driver: ixgbe version: 3.9.15-k firmware-version: 0x546c0001 bus-info: 0000:00:06.0 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: no # ethtool -i eth2 ethtool -i eth2 driver: ixgbe version: 3.9.15-k firmware-version: 0x546c0001 bus-info: 0000:00:06.1 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: no according to two test run result above(comment 25) and comment 24, I think this bug is fixed. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHSA-2013-0496.html |
Description of problem: patch 1a577b72475d161b6677c05abe57301362023bb2 KVM: fix race with level interrupts needs to be backported to rhel6 problem description: When more than 1 source id is in use for the same GSI, we have the following race related to handling irq_states race: CPU 0 clears bit 0. CPU 0 read irq_state as 0. CPU 1 sets level to 1. CPU 1 calls kvm_ioapic_set_irq(1). CPU 0 calls kvm_ioapic_set_irq(0). Now ioapic thinks the level is 0 but irq_state is not 0. Fix by performing all irq_states bitmap handling under pic/ioapic lock. This also removes the need for atomics with irq_states handling. Version-Release number of selected component (if applicable): 2.6.32-296 This is theoretical problem, not sure how reproducible it is. To verify I think enough to check that device assignment with level interrupts still works fine.