On Thu, Dec 17, 2015 at 10:36:02AM -0800, Yu Dai wrote: > On 12/16/2015 11:39 PM, Chris Wilson wrote: > >On Wed, Dec 16, 2015 at 01:40:53PM -0800, yu.dai@xxxxxxxxx wrote: > >> From: Alex Dai <yu.dai@xxxxxxxxx> > >> @@ -884,6 +906,13 @@ static void guc_create_ads(struct intel_guc *guc) > >> for_each_ring(ring, dev_priv, i) > >> ads->eng_state_size[i] = intel_lr_context_size(ring); > >> > >> + /* GuC scheduling policies */ > >> + policies = (void *)ads + sizeof(struct guc_ads); > >> + init_guc_policies(policies); > > > >Please limit atomic context to only the critical section, i.e. don't > >make me have to read every single function to check for violations. > > Could you clarify this? I am not sure what's the atomic context and > critical section you mentioned here. This is inside an kmap_atomic()/kunmap_atomic() section. That means this code is in atomic context and cannot sleep or be preempted i.e. there are restrictions placed on what the code can do and what it can call. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx