On Sat, 9 Apr 2011 13:31:22 -0700, Ben Widawsky <b...@bwidawsk.net> wrote: > + * > + * Intelligent users of the interface may do a force_wake_get() followed > + * by many register reads and writes, knowing that the reference count > + * is already incremented. So we do not want to warn on those. > */
Hmm, any place where we touch registers without holding a lock, unless under exceptional conditions such as !SYSTEM_RUNNING, is a bug waiting to happen. And probably already happened. Nasty, hard to reproduce race conditions. The complication is that some registers will be protected by dev->config.mode_lock rather than dev->struct_mutex (and a very rare set are protected by their own irq spinlocks). This sounds like a job for lockdep... And a lot of documentation. Fortunately, we only have those two conditions (KMS (detection and mode setting) vs GEM (execution and memory managment)) and their intersection to worry about. One of the first steps would be to review all the comments Jesse added to document the KMS locking and back those up with assertions and updates. Plenty of work to do before we can feel sure that the locking is sane. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx