svn commit: r361967 - head/sys/kern

Kyle Evans kevans at freebsd.org
Wed Jun 17 15:16:06 UTC 2020


On Tue, Jun 9, 2020 at 10:17 AM Mateusz Guzik <mjg at freebsd.org> wrote:
>
> Author: mjg
> Date: Tue Jun  9 15:17:23 2020
> New Revision: 361967
> URL: https://svnweb.freebsd.org/changeset/base/361967
>
> Log:
>   Assert on pg_jobc state.
>
>   Stolen from NetBSD.
>
> Modified:
>   head/sys/kern/kern_proc.c
>
> Modified: head/sys/kern/kern_proc.c
> ==============================================================================
> --- head/sys/kern/kern_proc.c   Tue Jun  9 14:20:16 2020        (r361966)
> +++ head/sys/kern/kern_proc.c   Tue Jun  9 15:17:23 2020        (r361967)
> @@ -751,9 +751,11 @@ pgadjustjobc(struct pgrp *pgrp, int entering)
>  {
>
>         PGRP_LOCK(pgrp);
> -       if (entering)
> +       if (entering) {
> +               MPASS(pgrp->pg_jobc >= 0);
>                 pgrp->pg_jobc++;
> -       else {
> +       } else {
> +               MPASS(pgrp->pg_jobc > 0);
>                 --pgrp->pg_jobc;
>                 if (pgrp->pg_jobc == 0)
>                         orphanpg(pgrp);

We seem to be doing something wrong here, but I'm still working on
reproducing it on a machine that actually has usable swap configured
to get a dump. I've hit one of these asserts just from hitting the
power button to shutoff from within xfce (hitting the latter branch
with pgrp->pg_jobc == 0 IIRC) and another laptop panicked sometime
overnight -- I wasn't able to catch the second one at all, because
it's hooked up to a switch that loses its mind once that laptop
panicks and it had to be rebooted before I could attend to it to
revive network for the other machines on the switch.

Thanks,

Kyle Evans


More information about the svn-src-head mailing list