autoconf deferred processing

2013-10-22 Thread Robert Swindells

Can somebody explain how the deferred processing code in subr_autoconf.c
is supposed to work ?

Looking at config_create_interruptthreads() it creates 8 threads all
of which seem to walk the same list and delete elements from it.

I'm getting crashes in i386 at startup and am trying to track down what
is causing it. The faulting PC is random so I'm looking for anything
that calls through function pointers.

Robert Swindells


Re: autoconf deferred processing

2013-10-22 Thread Christos Zoulas
In article 20131022205705.c0dc812...@ren.fdy2.co.uk,
Robert Swindells  r...@fdy2.co.uk wrote:

Can somebody explain how the deferred processing code in subr_autoconf.c
is supposed to work ?

Looking at config_create_interruptthreads() it creates 8 threads all
of which seem to walk the same list and delete elements from it.

I'm getting crashes in i386 at startup and am trying to track down what
is causing it. The faulting PC is random so I'm looking for anything
that calls through function pointers.

Robert Swindells

Edit subr_autoconf.c and set the number of threads to 1.

int interrupt_config_threads = 8;
int mountroot_config_threads = 2;

Or you can patch them in ddb with boot -d

Also you can add DEBUG_AUTOCONF in current, which prints the name of
the deferred driver as well as the count ot the deferred mutex. For
even better success, boot -1

christos