On Fri, 17 Nov 2006, Paul E. McKenney wrote:

> > Perhaps a better approach to the initialization problem would be to assume 
> > that either:
> > 
> >     1.  The srcu_struct will be initialized before it is used, or
> > 
> >     2.  When it is used before initialization, the system is running
> >     only one thread.
> 
> Are these assumptions valid?  If so, they would indeed simplify things
> a bit.

I don't know.  Maybe Andrew can tell us -- is it true that the kernel runs 
only one thread up through the time the core_initcalls are finished?

If not, can we create another initcall level that is guaranteed to run 
before any threads are spawned?

> For the moment, I cheaped out and used a mutex_trylock.  If this can block,
> I will need to add a separate spinlock to guard per_cpu_ref allocation.

I haven't looked at your revised patch yet...  But it's important to keep 
things as simple as possible.

> Hmmm...  How to test this?  Time for the wrapper around alloc_percpu()
> that randomly fails, I guess.  ;-)

Do you really want things to continue in a highly degraded mode when 
percpu allocation fails?  Maybe it would be better just to pass the 
failure back to the caller.

Alan Stern

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to