Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 May 2019 02:24:05 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>, Justin Hibbits <chmeeedalf@gmail.com>
Subject:   970MP PowerMac G5s: What some basic printf's show about vt_upgrade and fhanew_init hang-ups
Message-ID:  <EEF5564B-F155-4A8E-9871-8465C94E5E6A@yahoo.com>

next in thread | raw e-mail | index | archive | help
[Note: I still have Justin's requested loop change, my
isync additions, and my libc string compare code
change in what I'm working with for head -r347003 .
Also DELAY has the 2 priority-change calls commented
out, per the prior list submittal about controlling
cpu_mp_unleash hang-up behavior.]



In /mnt/usr/src/sys/dev/vt/vt_core.c 's vt_upgrade, when it hangs up,
the first printf below shows but the second one does not:

                callout_init_mtx(&vd->vd_timer, &vd->vd_lock, 0);
printf("vt_upgrade after callout_init_mtx / before sequence leading to =
callout_reset\n");

                /*
                 * Start timer when everything ready.
                 * Note that the operations here are purposefully =
ordered.
                 * We need to ensure vd_timer_armed is non-zero before =
we set
                 * the VDF_ASYNC flag. That prevents this function from
                 * racing with vt_resume_flush_timer() to update the
                 * callout structure.
                 */
                atomic_add_acq_int(&vd->vd_timer_armed, 1);
                vd->vd_flags |=3D VDF_ASYNC;
                callout_reset(&vd->vd_timer, hz / VT_TIMERFREQ, =
vt_timer, vd);
printf("vt_upgrade after callout_reset\n");


In /mnt/usr/src/sys/fs/nfsserver/nfs_fha_new.c 's fhanew_init, when it
hangs up, the first printf below shows but the second one does not:

        sysctl_ctx_init(&softc->sysctl_ctx);
printf("fhanew_init: after sysctl_ctx_init / before SYSCTL_ADD_NODE\n");
        softc->sysctl_tree =3D SYSCTL_ADD_NODE(&softc->sysctl_ctx,
            SYSCTL_STATIC_CHILDREN(_vfs_nfsd), OID_AUTO, "fha", =
CTLFLAG_RD,
            0, "NFS File Handle Affinity (FHA)");
printf("fhanew_init: after SYSCTL_ADD_NODE\n");


Ignoring cpu_mp_unleash, I've not run into other hang-up points
in these or other routines. (cpu_mp_unleash has its own list
submittal about controlling its hang-up behavior.)

At this point I've no clue about controlling the behavior of
the above 2 hang-up points. I've no evidence about if
slb-misses are involved vs. not.


I no longer have the other printf's that I'd added to the 2 routines,
based on only seeing these hang-up points in each of the two (so
far).


=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?EEF5564B-F155-4A8E-9871-8465C94E5E6A>