aboutsummaryrefslogtreecommitdiff
path: root/qemu-io.c
diff options
context:
space:
mode:
authorAke Koomsin <ake@igel.co.jp>2022-07-20 20:13:03 +0900
committerJason Wang <jasowang@redhat.com>2022-07-26 16:23:54 +0800
commitdd0ef128669c29734a197ca9195e7ab64e20ba2c (patch)
treef9c197f3e9042dc6bf52eef6254fedae177b0675 /qemu-io.c
parent5288bee45fbd33203b61f8c76e41b15bb5913e6e (diff)
downloadqemu-dd0ef128669c29734a197ca9195e7ab64e20ba2c.zip
qemu-dd0ef128669c29734a197ca9195e7ab64e20ba2c.tar.gz
qemu-dd0ef128669c29734a197ca9195e7ab64e20ba2c.tar.bz2
e1000e: Fix possible interrupt loss when using MSI
Commit "e1000e: Prevent MSI/MSI-X storms" introduced msi_causes_pending to prevent interrupt storms problem. It was tested with MSI-X. In case of MSI, the guest can rely solely on interrupts to clear ICR. Upon clearing all pending interrupts, msi_causes_pending gets cleared. However, when e1000e_itr_should_postpone() in e1000e_send_msi() returns true, MSI never gets fired by e1000e_intrmgr_on_throttling_timer() because msi_causes_pending is still set. This results in interrupt loss. To prevent this, we need to clear msi_causes_pending when MSI is going to get fired by the throttling timer. The guest can then receive interrupts eventually. Signed-off-by: Ake Koomsin <ake@igel.co.jp> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'qemu-io.c')
0 files changed, 0 insertions, 0 deletions