Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > On Fri, Oct 21, 2016 at 02:16:46PM +0200, Arkadiusz Hiler wrote: >> On Wed, Aug 24, 2016 at 05:03:11PM +0100, Matthew Auld wrote: >> > The comment which documents the proper usage of the *_FW family of macros makes >> > reference to intel_uncore_forcewake_irq{unlock, lock}, which is just >> > confusing, seeing as such a set of functions don't even exist and never have >> > for that matter(according to git). Let's fix that by replacing them with >> > intel_uncore_forcewake_{get, put}. >> > >> > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> >> > Signed-off-by: Matthew Auld <matthew.auld@xxxxxxxxx> >> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@xxxxxxxxx> > > The downside is that this now doesn't mention the locking required to > prevent machine hangs on some platforms. "intel_uncore_forcewake_get will acquire forcewake reference and also take a uncore.lock to guarantee explicit access by one thread only. As some registers don't need forcewake held, intel_uncore_forcewake_{get,put} can be omitted. If you do so, be warned that on some gens (gen7), concurrent access to the same cacheline by multiple cpu threads with the gpu can risk a system hang. You need to grab uncore spinlock explicitly to guard against this." Would that be accurate addition? -Mika > -Chris > > -- > Chris Wilson, Intel Open Source Technology Centre > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx