On Tue, Dec 12, 2017 at 09:47:05AM -0500, Ilia Mirkin wrote: > > So this 'thing' has huge gaping SMP holes in. > > Sure does! Probably why the following happens when mmiotrace is enabled: > > void enable_mmiotrace(void) > { > mutex_lock(&mmiotrace_mutex); > if (is_enabled()) > goto out; > > if (nommiotrace) > pr_info("MMIO tracing disabled.\n"); > kmmio_init(); > enter_uniprocessor();
^^^^^ Ah! I completely missed that. OK, that makes it much less broken :-) If I don't forget, I'll add some comments to this file to clarify that. Thanks! > spin_lock_irq(&trace_lock); > atomic_inc(&mmiotrace_enabled); > spin_unlock_irq(&trace_lock); > pr_info("enabled.\n"); > out: > mutex_unlock(&mmiotrace_mutex); > }