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;