Chris Wilson <[email protected]> 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 <[email protected]>
>> > Signed-off-by: Matthew Auld <[email protected]>
>> Reviewed-by: Arkadiusz Hiler <[email protected]>
>
> 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
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx