Fw: malloc(M_WAITOK) of "Mbuf", forcing M_NOWAIT with the followingnon-sleepable locks held

From: Willem Jan Withagen <wjw_at_withagen.nl>
Date: Mon, 5 Jul 2004 22:00:45 +0200
> From: "Willem Jan Withagen" <wjw_at_withagen.nl>
> > From: "Robert Watson" <rwatson_at_FreeBSD.org>
> > > On Mon, 5 Jul 2004, Willem Jan Withagen wrote:
> > >
> > > > __FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.191 2004/06/27
03:22:15
> > > > rwatson Exp $");
> > >
> > > Could you try this patch:
> > >
> > > Index: uipc_socket.c
> > > ===================================================================
> > > RCS file: /home/ncvs/src/sys/kern/uipc_socket.c,v
> > > retrieving revision 1.191
> > > diff -u -r1.191 uipc_socket.c
> > > --- uipc_socket.c 27 Jun 2004 03:22:15 -0000 1.191
> > > +++ uipc_socket.c 5 Jul 2004 18:38:12 -0000
> > > _at__at_ -1148,8 +1148,11 _at__at_
> > >   if (flags & MSG_PEEK)
> > >   moff += len;
> > >   else {
> > > - if (mp != NULL)
> > > + if (mp != NULL) {
> > > + SOCKBUF_UNLOCK(&so->so_rcv);
> > >   *mp = m_copym(m, 0, len, M_TRYWAIT);
> > > + SOCKBUF_LOCK(&so->so_rcv);
> > > + }
> > >   m->m_data += len;
> > >   m->m_len -= len;
> > >   so->so_rcv.sb_cc -= len;
> > > Index: uipc_socket.c
> > > ===================================================================
> >
> > Not shure if we are any further, or that this in the code supped between 2
> juli
> > and this morning....
> >
> > panic: mi_switch: called by old code
> > cpuid = 1;
> > Stack backtrace:
> >
> > Writing a 2Gb dump now.....
>
> The dump gives me:

 #26 0xffffffff8025b073 in panic (fmt=0xffffffffb4076940 "\205šA\200’’’’\001")
     at /home2/src/sys/kern/kern_shutdown.c:543
#27 0xffffffff802619cb in mi_switch (flags=2, newtd=0xffffff007b566240)
     at /home2/src/sys/kern/kern_synch.c:306
#28 0xffffffff80260964 in maybe_preempt (td=0xffffff007b566240)
     at /home2/src/sys/kern/kern_switch.c:529
#29 0xffffffff8026cf41 in sched_add (td=0xffffff007b566240)
     at /home2/src/sys/kern/sched_ule.c:1633
#30 0xffffffff8026b591 in kseq_assign (kseq=0x0)
     at /home2/src/sys/kern/sched_ule.c:647
#31 0xffffffff8026cbcb in sched_choose ()
     at /home2/src/sys/kern/sched_ule.c:1516
#32 0xffffffff802602bd in choosethread ()
     at /home2/src/sys/kern/kern_switch.c:142
#33 0xffffffff8026c296 in sched_switch (td=0xffffff005abe96c0, newtd=0x0)
     at /home2/src/sys/kern/sched_ule.c:1168
#34 0xffffffff80261b37 in mi_switch (flags=-1274582128, newtd=0x0)
     at /home2/src/sys/kern/kern_synch.c:355
---Type <return> to continue, or q <return> to quit---
#35 0xffffffff8027c4ef in ast (framep=0xffffffffb4076c40)
     at /home2/src/sys/kern/subr_trap.c:245
#36 0xffffffff8039a84d in Xfast_syscall ()
     at /home2/src/sys/amd64/amd64/exception.S:259

So with guidance I can retreive needed data......

--WjW
Received on Mon Jul 05 2004 - 18:07:54 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:00 UTC