# Pastebin zydYDez3 --packet received e1000e_rx_receive_iov Received vector of 1 fragments e1000e_irq_set_cause_entry Going to set IRQ cause 0x0, ICR: 0x0 e1000e_irq_set_cause_exit Set IRQ cause 0x80, ICR: 0x80 e1000e_send_msi: causes 0x80, msi_causes_pending 0 e1000e_send_msi: going to send MSI e1000e_irq_rearm_timer Mitigation timer armed for register 0xC4, delay 1024000 ns e1000e_irq_msi_notify MSI notify 0x80 msi_notify:328 e1000e:18 notify vector 0x0 address: 0xfee00000 data: 0x30 --MSI fired, mitigation timer started --packet received e1000e_rx_receive_iov Received vector of 1 fragments e1000e_irq_set_cause_entry Going to set IRQ cause 0x0, ICR: 0x80000080 e1000e_irq_set_cause_exit Set IRQ cause 0x80, ICR: 0x80000080 e1000e_send_msi: causes 0x80, msi_causes_pending 0x80 e1000e_send_msi: not going to send msi --no new cause, ICR already has pending IRQ --guest has started handling irq, ICR gets cleared to 0 at top of handler --packet received e1000e_rx_receive_iov Received vector of 1 fragments e1000e_irq_set_cause_entry Going to set IRQ cause 0x10, ICR: 0x0 e1000e_irq_set_cause_exit Set IRQ cause 0x90, ICR: 0x90 e1000e_send_msi: causes 0x80, msi_causes_pending 0 e1000e_send_msi: going to send MSI e1000e_irq_postponed_by_xitr Interrupt postponed by [E]ITR register 0xc4 e1000e_send_msi: decided to postpone --new cause 0x90 saved in core->msi_causes_pending, msi postponed due to timer --this is the error: it should not have saved the cause into core->msi_causes_pending if the IRQ was not actually queued due to a timer. --4 more packet received e1000e_rx_receive_iov Received vector of 1 fragments e1000e_irq_set_cause_entry Going to set IRQ cause 0x0, ICR: 0x80000090 e1000e_irq_set_cause_exit Set IRQ cause 0x80, ICR: 0x80000090 e1000e_send_msi: causes 0x80, msi_causes_pending 0x80 e1000e_send_msi: not going to send msi e1000e_rx_receive_iov Received vector of 1 fragments e1000e_irq_set_cause_entry Going to set IRQ cause 0x0, ICR: 0x80000090 e1000e_irq_set_cause_exit Set IRQ cause 0x80, ICR: 0x80000090 e1000e_send_msi: causes 0x80, msi_causes_pending 0x80 e1000e_send_msi: not going to send msi e1000e_rx_receive_iov Received vector of 1 fragments e1000e_irq_set_cause_entry Going to set IRQ cause 0x0, ICR: 0x80000090 e1000e_irq_set_cause_exit Set IRQ cause 0x80, ICR: 0x80000090 e1000e_send_msi: causes 0x80, msi_causes_pending 0x80 e1000e_send_msi: not going to send msi e1000e_rx_receive_iov Received vector of 1 fragments e1000e_irq_set_cause_entry Going to set IRQ cause 0x0, ICR: 0x80000090 e1000e_irq_set_cause_exit Set IRQ cause 0x80, ICR: 0x80000090 e1000e_send_msi: causes 0x80, msi_causes_pending 0x80 e1000e_send_msi: not going to send msi --msis not sent due to timer --throttling timer fires e1000e_intrmgr_on_throttling_timer fired e1000e_irq_msi_notify_postponed Sending MSI postponed by ITR e1000e_irq_set_cause_entry Going to set IRQ cause 0x0, ICR: 0x80000090 e1000e_irq_set_cause_exit Set IRQ cause 0x0, ICR: 0x80000090 e1000e_send_msi: causes 0x80, msi_causes_pending 0x80 e1000e_send_msi: not going to send msi --bad state here: core->msi_causes_pending already had 0x80 in it from many packets before, so it decides not to queue a new packet. Timer has now expired and the entire system deadlocks until a new kind of irq pending cause queues (such as a tx packet).