[Intel-gfx] [PATCH v2 07/16] drm/i915/pxp: Create the arbitrary session after boot
Daniele Ceraolo Spurio
daniele.ceraolospurio at intel.com
Thu Mar 4 00:18:34 UTC 2021
On 3/3/2021 2:08 PM, Chris Wilson wrote:
> Quoting Daniele Ceraolo Spurio (2021-03-01 19:31:51)
>> +static inline bool intel_pxp_is_active(const struct intel_pxp *pxp)
>> +{
>> + return pxp->arb_is_in_play;
>> +}
>> +static bool intel_pxp_session_is_in_play(struct intel_pxp *pxp, u32 id)
>> +{
>> + struct intel_gt *gt = pxp_to_gt(pxp);
>> + intel_wakeref_t wakeref;
>> + u32 sip = 0;
>> +
>> + with_intel_runtime_pm(gt->uncore->rpm, wakeref)
>> + sip = intel_uncore_read(gt->uncore, GEN12_KCR_SIP);
>> +
>> + return sip & BIT(id);
>> +}
>> +
>> +bool intel_pxp_arb_session_is_in_play(struct intel_pxp *pxp)
>> +{
>> + return intel_pxp_session_is_in_play(pxp, ARB_SESSION);
>> +}
> So pxp->arb_is_in_play is not the same as intel_pxp_arb_session_is_in_play().
>
> That's confusing.
The HW is counfusing :)
The HW reporting that a session is in play does not mean that the
session is actually valid. When a teardown occurs the session is still
in play on the HW but the relevant keys are gone, so the session is not
actually usable (and attempting to use it will likely cause hangs).
intel_pxp_session_is_in_play() reflect the HW in_play state while
pxp->arb_is_in_play reflect usability of the session. I'll rename the
latter to pxp->arb_is_valid.
Daniele
> -Chris
More information about the Intel-gfx
mailing list