re(4): watchdog timeout and temporally disable MSI interrupt

2022-09-30 Thread Joseph Boese
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

2022-08-07 Thread SASANO Takayoshi
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)