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/