On Tue, Jan 02, 2024 at 03:45:10PM +0000, Stuart Henderson wrote:
> Badly OCR'd and manually quickly corrected screen capture below
> (tesseract doesn't do _at all_ well with digits and the spleen font),
> originals at
> 
> https://junkpile.org/hv-panic-202401-1.png
> https://junkpile.org/hv-panic-202401-2.png
> https://junkpile.org/hv-panic-202401-3.png
> 
> This is a VM running under hyper-v running 7.4+errata007 (i.e. it _does_
> have the "A network buffer that had to be split at certain length could
> crash the kernel" fix).
> 
> Running postfix, librenms (PHP etc calling snmp tools quite a lot),
> rrdcached.
> 
> Nothing unusual happening at the time of crash. Uptime prior to this
> was 3 weeks 3 days after it was updated to 7.4. (Before that, uptime
> on 7.3 was 5 months +).
> 
> The only slightly unusual thing about this install is that there are two
> hvn(4) virtual nics.
> 

Does this help?

Index: sys/dev/pv/hypervic.c
===================================================================
RCS file: /cvs/src/sys/dev/pv/hypervic.c,v
retrieving revision 1.20
diff -u -p -r1.20 hypervic.c
--- sys/dev/pv/hypervic.c       23 Sep 2023 13:01:12 -0000      1.20
+++ sys/dev/pv/hypervic.c       2 Jan 2024 17:00:24 -0000
@@ -203,13 +203,18 @@ hv_attach_icdevs(struct hv_softc *sc)
 
                dv->dv_ch = ch;
 
-               /*
-                * These services are not performance critical and
-                * do not need batched reading. Furthermore, some
-                * services such as KVP can only handle one message
-                * from the host at a time.
-                */
-               dv->dv_ch->ch_flags &= ~CHF_BATCHED;
+               if (dv->dv_handler == hv_kvp) {
+                       /* XXXSMP: always run through task */
+                       dv->dv_ch->ch_flags |= CHF_BATCHED;
+               } else {
+                       /*
+                        * These services are not performance critical and
+                        * do not need batched reading. Furthermore, some
+                        * services such as KVP can only handle one message
+                        * from the host at a time.
+                        */
+                       dv->dv_ch->ch_flags &= ~CHF_BATCHED;
+               }
 
                if (dv->dv_attach && dv->dv_attach(dv) != 0)
                        continue;

Reply via email to