On 22/02/15 23:45, Justin Cormack wrote: > I have an issue which seems vaguely familiar, but I dont remember the > way we resolved it before.
You're probably remembering the case where some implementation of rumpuser_thread_create() was wrapped in a scheduling operation. I think that was "fixed" by removing the wrap, which is sort of ok, since thread_create() is not supposed to wait any other rump kernel activity. It wasn't an optimal "fix", but since rumpuser_thread_create() may be called early in the bootstrap process, doing it any other way would've taken more dancing. I guess the best fix there would be to documentation. > I am getting a mutex used before it has been initialized. It is the > frag6_lock mutex in netinet6/frag6.c. The callout is getting to it > before frag6_init has been called. Your frankenlibc timer stuff is probably broken, which explains why nobody else is seeing what you're seeing, but there appears to be a real bug. When domaininit() is called with attach=false in a rump kernel, the proto fast/slow timers are created, but proto initialization method is only run later when domain_attach() is called. The straightforward fix would be to initialize the timers in a separate call. Not yet sure if that's the best fix, though. > #0 rumpuser_mutex_tryenter (mtx=0x0) at > /home/justin/frankenlibc/rumpsrc/lib/librumpuser/rumpfiber.c:728 > #1 rumpuser_mutex_enter (mtx=0x0) at > /home/justin/frankenlibc/rumpsrc/lib/librumpuser/rumpfiber.c:703 > #2 0x0000000000437711 in frag6_slowtimo () > at > /home/justin/frankenlibc/rumpsrc/sys/rump/net/lib/libnet/../../../../netinet6/frag6.c:620 > #3 0x0000000000492b4b in pfslowtimo (arg=<optimised out>) > at > /home/justin/frankenlibc/rumpsrc/sys/rump/librump/rumpnet/../../../kern/uipc_domain.c:705 > #4 0x000000000053bf37 in callout_softclock (v=<optimised out>) > at > /home/justin/frankenlibc/rumpsrc/sys/rump/librump/rumpkern/../../../kern/kern_timeout.c:741 > #5 0x0000000000562ec6 in sithread (arg=<optimised out>) at > /home/justin/frankenlibc/rumpsrc/sys/rump/librump/rumpkern/intr.c:178 > #6 0x000000000055ff0e in threadbouncer (arg=0x7ffff7fa21b0) > at > /home/justin/frankenlibc/rumpsrc/sys/rump/librump/rumpkern/threads.c:90 > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk > _______________________________________________ > rumpkernel-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/rumpkernel-users > ------------------------------------------------------------------------------ Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration & more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk _______________________________________________ rumpkernel-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/rumpkernel-users
