[OpenAFS-devel] RE: OpenAFS with Linux Kernel 2.4.18

Neulinger, Nathan nneul@umr.edu
Wed, 13 Mar 2002 13:28:28 -0600


I added some additional tracing - it never returns from
osi_StopListener.... Haven't gotten any further in than that.=20

Woops, that was wrong StopListener below... It's obviously spinning in
this code:

void osi_StopListener(void)
{
    extern int (*sys_killp)();
    extern int rxk_ListenerPid;

    while (rxk_ListenerPid) {
        (void) (*sys_killp)(rxk_ListenerPid, 9);
        afs_osi_Sleep(&rxk_ListenerPid);
    }
    sock_release(rx_socket);
    rx_socket =3D NULL;
}



-- Nathan

------------------------------------------------------------
Nathan Neulinger                       EMail:  nneul@umr.edu
University of Missouri - Rolla         Phone: (573) 341-4841
Computing Services                       Fax: (573) 341-4216


> -----Original Message-----
> From: Neulinger, Nathan=20
> Sent: Wednesday, March 13, 2002 1:17 PM
> To: Derrick J Brashear
> Cc: openafs-devel@openafs.org
> Subject: [OpenAFS-devel] RE: OpenAFS with Linux Kernel 2.4.18
>=20
>=20
> void osi_linux_unmask() {
>     spin_lock_irq(&rxk_ListenerTask->sigmask_lock);
>     sigemptyset(&rxk_ListenerTask->blocked);
>     recalc_sigpending(rxk_ListenerTask);
>     spin_unlock_irq(&rxk_ListenerTask->sigmask_lock);
> }
>=20
> /* unmask signals in rxk listener */
> void afs_osi_UnmaskRxkSignals(){
> #ifdef AFS_LINUX22_ENV
>     osi_linux_unmask();
> #endif
> }
>=20
> and here is where it's actually called:
>=20
> #if defined(RXK_LISTENER_ENV)
>     afs_warn("RxListener... ");
> #ifndef UKERNEL
>     afs_osi_UnmaskRxkSignals();
> #endif
>     /* cancel rx listener */
>     osi_StopListener(); /* This closes rx_socket. */
>     while (afs_termState =3D=3D AFSOP_STOP_RXK_LISTENER)
>         afs_osi_Sleep(&afs_termState);
> #endif
> #else
>     afs_termState =3D  AFSOP_STOP_COMPLETE;
> #endif
>     afs_warn("\n");
>=20
>=20
> It eventually makes it's way to a LWP_DestroyProcess in rx/rx_lwp.c.=20
>=20
> I'm checking to see if I can track down where exactly it's=20
> hanging, but
> I figured this would help.
>=20
> -- Nathan
>=20
> ------------------------------------------------------------
> Nathan Neulinger                       EMail:  nneul@umr.edu
> University of Missouri - Rolla         Phone: (573) 341-4841
> Computing Services                       Fax: (573) 341-4216
>=20
>=20
> > -----Original Message-----
> > From: Derrick J Brashear [mailto:shadow@dementia.org]=20
> > Sent: Wednesday, March 13, 2002 12:26 PM
> > To: openafs-info@openafs.org
> > Subject: RE: [OpenAFS] OpenAFS with Linux Kernel 2.4.18=20
> >=20
> >=20
> > On Wed, 13 Mar 2002, Neulinger, Nathan wrote:
> >=20
> > > Hmm... Let me see if I can reproduce it... I think you may=20
> > be right - I
> > > think it was the RxListener entry.=20
> > >=20
> > > Yep, you were right, it hangs right after RxListener...=20
> Anything you
> > > want me to try (this is a development box that I test=20
> -current on.)
> >=20
> > the magic to let it be signalled should happen in=20
> > osi_linux_unmask, and
> > then the pid of the listener should be getting "kill"ed,=20
> > iirc. see if it
> > is
> >=20
> > _______________________________________________
> > OpenAFS-info mailing list
> > OpenAFS-info@openafs.org
> > https://lists.openafs.org/mailman/listinfo/openafs-info
> >=20
> _______________________________________________
> OpenAFS-devel mailing list
> OpenAFS-devel@openafs.org
> https://lists.openafs.org/mailman/listinfo/openafs-devel
>=20