On 2024/01/02 20:02, Vitaliy Makkoveev wrote:
> 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?
Given that it took a month to crash, how long do you think I'd need to
run before I could say whether it helps?
> ===================================================================
> 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;
>