re(4): watchdog timeout and temporally disable MSI interrupt
Thank you so much Mr. Takayoshi for this simple patch as it allowed me to move forward on using OpenBSD as my sys-net qube in QubesOS. I simply had to build and shove if_re_pci.o in the proper directory and do a reorder_kernel. I imagine anyone with an RT8168 chipset trying to run OpenBSD in a Xen guest is seeing this issue. Considering that is the chipset that comes with my Dell Inspiron and ton of other computers it's probably a very common chipset. The venn diagram of people interested in OpenBSD security and QubesOS is probably significant as well. Be great if some fix for this winds up in the next version of OpenBSD as having to roll your own is a bit of pain but again grateful for this patch sir. >List: openbsd-tech >Subject:re(4): watchdog timeout and temporally disable MSI interrupt >From: SASANO Takayoshi >Date: 2022-08-07 11:27:19 >Message-ID: 87zgggway0.wl-uaa () mx5 ! nisiq ! net >Hi, >Sometimes I see "re0: watchdog timeout" message on my amd64 PC. >I suspect this caused by MSI interrupt so I tweaked if_re_pci.c like this: >--- if_re_pci.c~ Sat Mar 12 03:00:48 2022 >+++ if_re_pci.c Sat Jun 11 19:35:17 2022 @@ -159,7 +159,7 @@ } > /* Allocate interrupt */ >-if (pci_intr_map_msi(pa, &ih) == 0) >+if (/*pci_intr_map_msi(pa, &ih) ==*/ 0) > sc->rl_flags |= RL_FLAG_MSI; > else if (pci_intr_map(pa, &ih) != 0) { > printf(": couldn't map interrupt\n"); >After this modify, I do not see "watchdog timeout". >I want to know how many people see this timeout of re(4) and >that is solved by this MSI tweak. >Or, please tell me if there is any other workarounds. >Regards, >-- >SASANO Takayoshi (JG1UAA)
re(4): watchdog timeout and temporally disable MSI interrupt
Hi, Sometimes I see "re0: watchdog timeout" message on my amd64 PC. bios0: ASRock A88M-G/3.1 cpu0: AMD A10-7860K Radeon R7, 12 Compute Cores 4C+8G, 3593.88 MHz re0 at pci3 dev 0 function 0 "Realtek 8168" rev 0x06: RTL8168E/8111E (note: re0 is not A88M-G on-board controller, added PCIe board) I suspect this caused by MSI interrupt so I tweaked if_re_pci.c like this: --- if_re_pci.c~Sat Mar 12 03:00:48 2022 +++ if_re_pci.c Sat Jun 11 19:35:17 2022 @@ -159,7 +159,7 @@ } /* Allocate interrupt */ - if (pci_intr_map_msi(pa, &ih) == 0) + if (/*pci_intr_map_msi(pa, &ih) ==*/ 0) sc->rl_flags |= RL_FLAG_MSI; else if (pci_intr_map(pa, &ih) != 0) { printf(": couldn't map interrupt\n"); After this modify, I do not see "watchdog timeout". I want to know how many people see this timeout of re(4) and that is solved by this MSI tweak. Or, please tell me if there is any other workarounds. Regards, -- SASANO Takayoshi (JG1UAA)