From: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> To: Rodrigo Vivi <rodrigo.vivi@intel.com> Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Subject: Re: [Intel-gfx] [PATCH v4 12/17] drm/i915/pxp: start the arb session on demand Date: Thu, 10 Jun 2021 15:44:37 -0700 [thread overview] Message-ID: <9d1da611-f6d6-ee69-9ddf-64b87ac8a1af@intel.com> (raw) In-Reply-To: <YLfKaAkZaOP2I1ch@intel.com> On 6/2/2021 11:14 AM, Rodrigo Vivi wrote: > On Mon, May 24, 2021 at 10:47:58PM -0700, Daniele Ceraolo Spurio wrote: >> Now that we can handle destruction and re-creation of the arb session, >> we can postpone the start of the session to the first submission that >> requires it, to avoid keeping it running with no user. >> >> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> >> --- >> .../gpu/drm/i915/gem/i915_gem_execbuffer.c | 8 ++-- >> drivers/gpu/drm/i915/pxp/intel_pxp.c | 37 ++++++++++++------- >> drivers/gpu/drm/i915/pxp/intel_pxp.h | 4 +- >> drivers/gpu/drm/i915/pxp/intel_pxp_irq.c | 2 +- >> drivers/gpu/drm/i915/pxp/intel_pxp_session.c | 6 +-- >> drivers/gpu/drm/i915/pxp/intel_pxp_tee.c | 10 +---- >> drivers/gpu/drm/i915/pxp/intel_pxp_types.h | 3 ++ >> 7 files changed, 39 insertions(+), 31 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c >> index a11e9d5767bf..c08e28847064 100644 >> --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c >> +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c >> @@ -2948,9 +2948,11 @@ eb_select_engine(struct i915_execbuffer *eb) >> intel_gt_pm_get(ce->engine->gt); >> >> if (i915_gem_context_uses_protected_content(eb->gem_context)) { >> - err = intel_pxp_wait_for_arb_start(&ce->engine->gt->pxp); >> - if (err) >> - goto err; >> + if (!intel_pxp_is_active(&ce->engine->gt->pxp)) { >> + err = intel_pxp_start(&ce->engine->gt->pxp); >> + if (err) >> + goto err; >> + } >> >> if (i915_gem_context_invalidated(eb->gem_context)) { >> err = -EACCES; >> diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp.c b/drivers/gpu/drm/i915/pxp/intel_pxp.c >> index f713d3423cea..2291c68fd3a0 100644 >> --- a/drivers/gpu/drm/i915/pxp/intel_pxp.c >> +++ b/drivers/gpu/drm/i915/pxp/intel_pxp.c >> @@ -77,6 +77,7 @@ void intel_pxp_init(struct intel_pxp *pxp) >> init_completion(&pxp->termination); >> complete_all(&pxp->termination); >> >> + mutex_init(&pxp->arb_mutex); >> INIT_WORK(&pxp->session_work, intel_pxp_session_work); >> >> ret = create_vcs_context(pxp); >> @@ -113,7 +114,7 @@ void intel_pxp_mark_termination_in_progress(struct intel_pxp *pxp) >> reinit_completion(&pxp->termination); >> } >> >> -static void intel_pxp_queue_termination(struct intel_pxp *pxp) >> +static void pxp_queue_termination(struct intel_pxp *pxp) >> { >> struct intel_gt *gt = pxp_to_gt(pxp); >> >> @@ -132,31 +133,41 @@ static void intel_pxp_queue_termination(struct intel_pxp *pxp) >> * the arb session is restarted from the irq work when we receive the >> * termination completion interrupt >> */ >> -int intel_pxp_wait_for_arb_start(struct intel_pxp *pxp) >> +int intel_pxp_start(struct intel_pxp *pxp) >> { >> + int ret = 0; >> + >> if (!intel_pxp_is_enabled(pxp)) >> - return 0; >> + return -ENODEV; >> + >> + mutex_lock(&pxp->arb_mutex); >> + >> + if (pxp->arb_is_valid) >> + goto unlock; >> + >> + pxp_queue_termination(pxp); >> >> if (!wait_for_completion_timeout(&pxp->termination, >> - msecs_to_jiffies(100))) >> - return -ETIMEDOUT; >> + msecs_to_jiffies(100))) { >> + ret = -ETIMEDOUT; >> + goto unlock; >> + } >> + >> + /* make sure the compiler doesn't optimize the double access */ >> + barrier(); >> >> if (!pxp->arb_is_valid) >> - return -EIO; >> + ret = -EIO; >> >> - return 0; >> +unlock: >> + mutex_unlock(&pxp->arb_mutex); >> + return ret; >> } >> >> void intel_pxp_init_hw(struct intel_pxp *pxp) >> { >> kcr_pxp_enable(pxp_to_gt(pxp)); >> intel_pxp_irq_enable(pxp); >> - >> - /* >> - * the session could've been attacked while we weren't loaded, so >> - * handle it as if it was and re-create it. >> - */ >> - intel_pxp_queue_termination(pxp); >> } >> >> void intel_pxp_fini_hw(struct intel_pxp *pxp) >> diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp.h b/drivers/gpu/drm/i915/pxp/intel_pxp.h >> index 91c1a2056309..1f9871e64096 100644 >> --- a/drivers/gpu/drm/i915/pxp/intel_pxp.h >> +++ b/drivers/gpu/drm/i915/pxp/intel_pxp.h >> @@ -32,7 +32,7 @@ void intel_pxp_init_hw(struct intel_pxp *pxp); >> void intel_pxp_fini_hw(struct intel_pxp *pxp); >> >> void intel_pxp_mark_termination_in_progress(struct intel_pxp *pxp); >> -int intel_pxp_wait_for_arb_start(struct intel_pxp *pxp); >> +int intel_pxp_start(struct intel_pxp *pxp); >> void intel_pxp_invalidate(struct intel_pxp *pxp); >> #else >> static inline void intel_pxp_init(struct intel_pxp *pxp) >> @@ -43,7 +43,7 @@ static inline void intel_pxp_fini(struct intel_pxp *pxp) >> { >> } >> >> -static inline int intel_pxp_wait_for_arb_start(struct intel_pxp *pxp) >> +static inline int intel_pxp_start(struct intel_pxp *pxp) >> { >> return 0; >> } >> diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp_irq.c b/drivers/gpu/drm/i915/pxp/intel_pxp_irq.c >> index 196449243515..a230d0034e50 100644 >> --- a/drivers/gpu/drm/i915/pxp/intel_pxp_irq.c >> +++ b/drivers/gpu/drm/i915/pxp/intel_pxp_irq.c >> @@ -31,7 +31,7 @@ void intel_pxp_irq_handler(struct intel_pxp *pxp, u16 iir) >> GEN12_DISPLAY_APP_TERMINATED_PER_FW_REQ_INTERRUPT)) { >> /* immediately mark PXP as inactive on termination */ >> intel_pxp_mark_termination_in_progress(pxp); >> - pxp->session_events |= PXP_TERMINATION_REQUEST; >> + pxp->session_events |= PXP_TERMINATION_REQUEST | PXP_INVAL_REQUIRED; >> } >> >> if (iir & GEN12_DISPLAY_STATE_RESET_COMPLETE_INTERRUPT) >> diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp_session.c b/drivers/gpu/drm/i915/pxp/intel_pxp_session.c >> index e9fe757e368a..c21620916710 100644 >> --- a/drivers/gpu/drm/i915/pxp/intel_pxp_session.c >> +++ b/drivers/gpu/drm/i915/pxp/intel_pxp_session.c >> @@ -85,9 +85,6 @@ static int pxp_terminate_arb_session_and_global(struct intel_pxp *pxp) >> /* must mark termination in progress calling this function */ >> GEM_WARN_ON(pxp->arb_is_valid); >> >> - /* invalidate protected objects */ >> - intel_pxp_invalidate(pxp); >> - >> /* terminate the hw sessions */ >> ret = intel_pxp_terminate_session(pxp, ARB_SESSION); >> if (ret) { >> @@ -144,6 +141,9 @@ void intel_pxp_session_work(struct work_struct *work) >> if (!events) >> return; >> >> + if (events & PXP_INVAL_REQUIRED) >> + intel_pxp_invalidate(pxp); >> + > doesn't this invalidation change deserves a separated patch? > I'm not sure if I understood why we need this change... Before this patch, we always did a full invalidation and an arb restart back-to-back and therefore the invalidation was implicit in the PXP_TERMINATION_REQUEST flag. This patch changes this into different cases: termination irq: invalidate objects, submit termination and restart the arb session suspend: invalidate objects first pxp submission: submit termination and start the arb session Therefore we need to be able to select the invalidation as an independent case from the termination. Daniele > >> if (events & PXP_TERMINATION_REQUEST) { >> events &= ~PXP_TERMINATION_COMPLETE; >> pxp_terminate(pxp); >> diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp_tee.c b/drivers/gpu/drm/i915/pxp/intel_pxp_tee.c >> index e3d178c44e51..35b3fed4ca2f 100644 >> --- a/drivers/gpu/drm/i915/pxp/intel_pxp_tee.c >> +++ b/drivers/gpu/drm/i915/pxp/intel_pxp_tee.c >> @@ -63,23 +63,15 @@ static int intel_pxp_tee_io_message(struct intel_pxp *pxp, >> static int i915_pxp_tee_component_bind(struct device *i915_kdev, >> struct device *tee_kdev, void *data) >> { >> - struct drm_i915_private *i915 = kdev_to_i915(i915_kdev); >> struct intel_pxp *pxp = i915_dev_to_pxp(i915_kdev); >> - int ret; >> >> pxp->pxp_component = data; >> pxp->pxp_component->tee_dev = tee_kdev; >> >> /* the component is required to fully start the PXP HW */ >> intel_pxp_init_hw(pxp); >> - ret = intel_pxp_wait_for_arb_start(pxp); >> - if (ret) { >> - drm_err(&i915->drm, "Failed to create arb session during bind\n"); >> - intel_pxp_fini_hw(pxp); >> - pxp->pxp_component = NULL; >> - } >> >> - return ret; >> + return 0; >> } >> >> static void i915_pxp_tee_component_unbind(struct device *i915_kdev, >> diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp_types.h b/drivers/gpu/drm/i915/pxp/intel_pxp_types.h >> index c059a17cbcfe..b3ae49dd73a8 100644 >> --- a/drivers/gpu/drm/i915/pxp/intel_pxp_types.h >> +++ b/drivers/gpu/drm/i915/pxp/intel_pxp_types.h >> @@ -7,6 +7,7 @@ >> #define __INTEL_PXP_TYPES_H__ >> >> #include <linux/completion.h> >> +#include <linux/mutex.h> >> #include <linux/types.h> >> #include <linux/workqueue.h> >> >> @@ -23,6 +24,7 @@ struct intel_pxp { >> * even if the keys are gone, so we can't rely on the HW state of the >> * session to know if it's valid and need to track the status in SW. >> */ >> + struct mutex arb_mutex; /* protects arb session start */ >> bool arb_is_valid; >> >> /* >> @@ -40,6 +42,7 @@ struct intel_pxp { >> u32 session_events; /* protected with gt->irq_lock */ >> #define PXP_TERMINATION_REQUEST BIT(0) >> #define PXP_TERMINATION_COMPLETE BIT(1) >> +#define PXP_INVAL_REQUIRED BIT(2) >> }; >> >> #endif /* __INTEL_PXP_TYPES_H__ */ >> -- >> 2.29.2 >> >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
WARNING: multiple messages have this Message-ID (diff)
From: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> To: Rodrigo Vivi <rodrigo.vivi@intel.com> Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Subject: Re: [Intel-gfx] [PATCH v4 12/17] drm/i915/pxp: start the arb session on demand Date: Thu, 10 Jun 2021 15:44:37 -0700 [thread overview] Message-ID: <9d1da611-f6d6-ee69-9ddf-64b87ac8a1af@intel.com> (raw) In-Reply-To: <YLfKaAkZaOP2I1ch@intel.com> On 6/2/2021 11:14 AM, Rodrigo Vivi wrote: > On Mon, May 24, 2021 at 10:47:58PM -0700, Daniele Ceraolo Spurio wrote: >> Now that we can handle destruction and re-creation of the arb session, >> we can postpone the start of the session to the first submission that >> requires it, to avoid keeping it running with no user. >> >> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> >> --- >> .../gpu/drm/i915/gem/i915_gem_execbuffer.c | 8 ++-- >> drivers/gpu/drm/i915/pxp/intel_pxp.c | 37 ++++++++++++------- >> drivers/gpu/drm/i915/pxp/intel_pxp.h | 4 +- >> drivers/gpu/drm/i915/pxp/intel_pxp_irq.c | 2 +- >> drivers/gpu/drm/i915/pxp/intel_pxp_session.c | 6 +-- >> drivers/gpu/drm/i915/pxp/intel_pxp_tee.c | 10 +---- >> drivers/gpu/drm/i915/pxp/intel_pxp_types.h | 3 ++ >> 7 files changed, 39 insertions(+), 31 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c >> index a11e9d5767bf..c08e28847064 100644 >> --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c >> +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c >> @@ -2948,9 +2948,11 @@ eb_select_engine(struct i915_execbuffer *eb) >> intel_gt_pm_get(ce->engine->gt); >> >> if (i915_gem_context_uses_protected_content(eb->gem_context)) { >> - err = intel_pxp_wait_for_arb_start(&ce->engine->gt->pxp); >> - if (err) >> - goto err; >> + if (!intel_pxp_is_active(&ce->engine->gt->pxp)) { >> + err = intel_pxp_start(&ce->engine->gt->pxp); >> + if (err) >> + goto err; >> + } >> >> if (i915_gem_context_invalidated(eb->gem_context)) { >> err = -EACCES; >> diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp.c b/drivers/gpu/drm/i915/pxp/intel_pxp.c >> index f713d3423cea..2291c68fd3a0 100644 >> --- a/drivers/gpu/drm/i915/pxp/intel_pxp.c >> +++ b/drivers/gpu/drm/i915/pxp/intel_pxp.c >> @@ -77,6 +77,7 @@ void intel_pxp_init(struct intel_pxp *pxp) >> init_completion(&pxp->termination); >> complete_all(&pxp->termination); >> >> + mutex_init(&pxp->arb_mutex); >> INIT_WORK(&pxp->session_work, intel_pxp_session_work); >> >> ret = create_vcs_context(pxp); >> @@ -113,7 +114,7 @@ void intel_pxp_mark_termination_in_progress(struct intel_pxp *pxp) >> reinit_completion(&pxp->termination); >> } >> >> -static void intel_pxp_queue_termination(struct intel_pxp *pxp) >> +static void pxp_queue_termination(struct intel_pxp *pxp) >> { >> struct intel_gt *gt = pxp_to_gt(pxp); >> >> @@ -132,31 +133,41 @@ static void intel_pxp_queue_termination(struct intel_pxp *pxp) >> * the arb session is restarted from the irq work when we receive the >> * termination completion interrupt >> */ >> -int intel_pxp_wait_for_arb_start(struct intel_pxp *pxp) >> +int intel_pxp_start(struct intel_pxp *pxp) >> { >> + int ret = 0; >> + >> if (!intel_pxp_is_enabled(pxp)) >> - return 0; >> + return -ENODEV; >> + >> + mutex_lock(&pxp->arb_mutex); >> + >> + if (pxp->arb_is_valid) >> + goto unlock; >> + >> + pxp_queue_termination(pxp); >> >> if (!wait_for_completion_timeout(&pxp->termination, >> - msecs_to_jiffies(100))) >> - return -ETIMEDOUT; >> + msecs_to_jiffies(100))) { >> + ret = -ETIMEDOUT; >> + goto unlock; >> + } >> + >> + /* make sure the compiler doesn't optimize the double access */ >> + barrier(); >> >> if (!pxp->arb_is_valid) >> - return -EIO; >> + ret = -EIO; >> >> - return 0; >> +unlock: >> + mutex_unlock(&pxp->arb_mutex); >> + return ret; >> } >> >> void intel_pxp_init_hw(struct intel_pxp *pxp) >> { >> kcr_pxp_enable(pxp_to_gt(pxp)); >> intel_pxp_irq_enable(pxp); >> - >> - /* >> - * the session could've been attacked while we weren't loaded, so >> - * handle it as if it was and re-create it. >> - */ >> - intel_pxp_queue_termination(pxp); >> } >> >> void intel_pxp_fini_hw(struct intel_pxp *pxp) >> diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp.h b/drivers/gpu/drm/i915/pxp/intel_pxp.h >> index 91c1a2056309..1f9871e64096 100644 >> --- a/drivers/gpu/drm/i915/pxp/intel_pxp.h >> +++ b/drivers/gpu/drm/i915/pxp/intel_pxp.h >> @@ -32,7 +32,7 @@ void intel_pxp_init_hw(struct intel_pxp *pxp); >> void intel_pxp_fini_hw(struct intel_pxp *pxp); >> >> void intel_pxp_mark_termination_in_progress(struct intel_pxp *pxp); >> -int intel_pxp_wait_for_arb_start(struct intel_pxp *pxp); >> +int intel_pxp_start(struct intel_pxp *pxp); >> void intel_pxp_invalidate(struct intel_pxp *pxp); >> #else >> static inline void intel_pxp_init(struct intel_pxp *pxp) >> @@ -43,7 +43,7 @@ static inline void intel_pxp_fini(struct intel_pxp *pxp) >> { >> } >> >> -static inline int intel_pxp_wait_for_arb_start(struct intel_pxp *pxp) >> +static inline int intel_pxp_start(struct intel_pxp *pxp) >> { >> return 0; >> } >> diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp_irq.c b/drivers/gpu/drm/i915/pxp/intel_pxp_irq.c >> index 196449243515..a230d0034e50 100644 >> --- a/drivers/gpu/drm/i915/pxp/intel_pxp_irq.c >> +++ b/drivers/gpu/drm/i915/pxp/intel_pxp_irq.c >> @@ -31,7 +31,7 @@ void intel_pxp_irq_handler(struct intel_pxp *pxp, u16 iir) >> GEN12_DISPLAY_APP_TERMINATED_PER_FW_REQ_INTERRUPT)) { >> /* immediately mark PXP as inactive on termination */ >> intel_pxp_mark_termination_in_progress(pxp); >> - pxp->session_events |= PXP_TERMINATION_REQUEST; >> + pxp->session_events |= PXP_TERMINATION_REQUEST | PXP_INVAL_REQUIRED; >> } >> >> if (iir & GEN12_DISPLAY_STATE_RESET_COMPLETE_INTERRUPT) >> diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp_session.c b/drivers/gpu/drm/i915/pxp/intel_pxp_session.c >> index e9fe757e368a..c21620916710 100644 >> --- a/drivers/gpu/drm/i915/pxp/intel_pxp_session.c >> +++ b/drivers/gpu/drm/i915/pxp/intel_pxp_session.c >> @@ -85,9 +85,6 @@ static int pxp_terminate_arb_session_and_global(struct intel_pxp *pxp) >> /* must mark termination in progress calling this function */ >> GEM_WARN_ON(pxp->arb_is_valid); >> >> - /* invalidate protected objects */ >> - intel_pxp_invalidate(pxp); >> - >> /* terminate the hw sessions */ >> ret = intel_pxp_terminate_session(pxp, ARB_SESSION); >> if (ret) { >> @@ -144,6 +141,9 @@ void intel_pxp_session_work(struct work_struct *work) >> if (!events) >> return; >> >> + if (events & PXP_INVAL_REQUIRED) >> + intel_pxp_invalidate(pxp); >> + > doesn't this invalidation change deserves a separated patch? > I'm not sure if I understood why we need this change... Before this patch, we always did a full invalidation and an arb restart back-to-back and therefore the invalidation was implicit in the PXP_TERMINATION_REQUEST flag. This patch changes this into different cases: termination irq: invalidate objects, submit termination and restart the arb session suspend: invalidate objects first pxp submission: submit termination and start the arb session Therefore we need to be able to select the invalidation as an independent case from the termination. Daniele > >> if (events & PXP_TERMINATION_REQUEST) { >> events &= ~PXP_TERMINATION_COMPLETE; >> pxp_terminate(pxp); >> diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp_tee.c b/drivers/gpu/drm/i915/pxp/intel_pxp_tee.c >> index e3d178c44e51..35b3fed4ca2f 100644 >> --- a/drivers/gpu/drm/i915/pxp/intel_pxp_tee.c >> +++ b/drivers/gpu/drm/i915/pxp/intel_pxp_tee.c >> @@ -63,23 +63,15 @@ static int intel_pxp_tee_io_message(struct intel_pxp *pxp, >> static int i915_pxp_tee_component_bind(struct device *i915_kdev, >> struct device *tee_kdev, void *data) >> { >> - struct drm_i915_private *i915 = kdev_to_i915(i915_kdev); >> struct intel_pxp *pxp = i915_dev_to_pxp(i915_kdev); >> - int ret; >> >> pxp->pxp_component = data; >> pxp->pxp_component->tee_dev = tee_kdev; >> >> /* the component is required to fully start the PXP HW */ >> intel_pxp_init_hw(pxp); >> - ret = intel_pxp_wait_for_arb_start(pxp); >> - if (ret) { >> - drm_err(&i915->drm, "Failed to create arb session during bind\n"); >> - intel_pxp_fini_hw(pxp); >> - pxp->pxp_component = NULL; >> - } >> >> - return ret; >> + return 0; >> } >> >> static void i915_pxp_tee_component_unbind(struct device *i915_kdev, >> diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp_types.h b/drivers/gpu/drm/i915/pxp/intel_pxp_types.h >> index c059a17cbcfe..b3ae49dd73a8 100644 >> --- a/drivers/gpu/drm/i915/pxp/intel_pxp_types.h >> +++ b/drivers/gpu/drm/i915/pxp/intel_pxp_types.h >> @@ -7,6 +7,7 @@ >> #define __INTEL_PXP_TYPES_H__ >> >> #include <linux/completion.h> >> +#include <linux/mutex.h> >> #include <linux/types.h> >> #include <linux/workqueue.h> >> >> @@ -23,6 +24,7 @@ struct intel_pxp { >> * even if the keys are gone, so we can't rely on the HW state of the >> * session to know if it's valid and need to track the status in SW. >> */ >> + struct mutex arb_mutex; /* protects arb session start */ >> bool arb_is_valid; >> >> /* >> @@ -40,6 +42,7 @@ struct intel_pxp { >> u32 session_events; /* protected with gt->irq_lock */ >> #define PXP_TERMINATION_REQUEST BIT(0) >> #define PXP_TERMINATION_COMPLETE BIT(1) >> +#define PXP_INVAL_REQUIRED BIT(2) >> }; >> >> #endif /* __INTEL_PXP_TYPES_H__ */ >> -- >> 2.29.2 >> >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2021-06-10 22:44 UTC|newest] Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-25 5:47 [PATCH v4 00/17] drm/i915: Introduce Intel PXP Daniele Ceraolo Spurio 2021-05-25 5:47 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-05-25 5:47 ` [PATCH v4 01/17] drm/i915/pxp: Define PXP component interface Daniele Ceraolo Spurio 2021-05-25 5:47 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-05-25 5:47 ` [PATCH v4 02/17] mei: pxp: export pavp client to me client bus Daniele Ceraolo Spurio 2021-05-25 5:47 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-06-02 19:10 ` Rodrigo Vivi 2021-06-02 19:10 ` [Intel-gfx] " Rodrigo Vivi 2021-05-25 5:47 ` [PATCH v4 03/17] drm/i915/pxp: define PXP device flag and kconfig Daniele Ceraolo Spurio 2021-05-25 5:47 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-05-25 5:47 ` [PATCH v4 04/17] drm/i915/gt: Export the pinned context constructor and destructor Daniele Ceraolo Spurio 2021-05-25 5:47 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-06-01 20:20 ` Rodrigo Vivi 2021-06-01 20:20 ` [Intel-gfx] " Rodrigo Vivi 2021-06-01 21:23 ` Daniele Ceraolo Spurio 2021-06-01 21:23 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-06-02 18:18 ` Rodrigo Vivi 2021-06-02 18:18 ` [Intel-gfx] " Rodrigo Vivi 2021-05-25 5:47 ` [PATCH v4 05/17] drm/i915/pxp: allocate a vcs context for pxp usage Daniele Ceraolo Spurio 2021-05-25 5:47 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-06-01 20:24 ` Rodrigo Vivi 2021-06-01 20:24 ` Rodrigo Vivi 2021-05-25 5:47 ` [PATCH v4 06/17] drm/i915/pxp: Implement funcs to create the TEE channel Daniele Ceraolo Spurio 2021-05-25 5:47 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-06-01 20:26 ` Rodrigo Vivi 2021-06-01 20:26 ` [Intel-gfx] " Rodrigo Vivi 2021-06-03 0:07 ` Teres Alexis, Alan Previn 2021-06-03 0:07 ` Teres Alexis, Alan Previn 2021-05-25 5:47 ` [PATCH v4 07/17] drm/i915/pxp: set KCR reg init Daniele Ceraolo Spurio 2021-05-25 5:47 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-05-25 5:47 ` [PATCH v4 08/17] drm/i915/pxp: Create the arbitrary session after boot Daniele Ceraolo Spurio 2021-05-25 5:47 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-06-01 20:32 ` Rodrigo Vivi 2021-06-01 20:32 ` [Intel-gfx] " Rodrigo Vivi 2021-05-25 5:47 ` [PATCH v4 09/17] drm/i915/pxp: Implement arb session teardown Daniele Ceraolo Spurio 2021-05-25 5:47 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-05-25 20:24 ` kernel test robot 2021-05-25 20:24 ` kernel test robot 2021-05-25 20:24 ` [Intel-gfx] " kernel test robot 2021-05-25 5:47 ` [PATCH v4 10/17] drm/i915/pxp: Implement PXP irq handler Daniele Ceraolo Spurio 2021-05-25 5:47 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-06-02 16:06 ` Rodrigo Vivi 2021-06-02 16:06 ` Rodrigo Vivi 2021-06-02 16:08 ` Rodrigo Vivi 2021-06-02 16:08 ` Rodrigo Vivi 2021-05-25 5:47 ` [PATCH v4 11/17] drm/i915/pxp: interface for marking contexts as using protected content Daniele Ceraolo Spurio 2021-05-25 5:47 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-05-27 10:10 ` Daniel Vetter 2021-05-27 10:10 ` Daniel Vetter 2021-05-25 5:47 ` [PATCH v4 12/17] drm/i915/pxp: start the arb session on demand Daniele Ceraolo Spurio 2021-05-25 5:47 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-06-02 18:14 ` Rodrigo Vivi 2021-06-02 18:14 ` Rodrigo Vivi 2021-06-10 22:44 ` Daniele Ceraolo Spurio [this message] 2021-06-10 22:44 ` Daniele Ceraolo Spurio 2021-06-11 8:38 ` Rodrigo Vivi 2021-06-11 8:38 ` Rodrigo Vivi 2021-05-25 5:47 ` [PATCH v4 13/17] drm/i915/pxp: Enable PXP power management Daniele Ceraolo Spurio 2021-05-25 5:47 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-06-02 16:20 ` Rodrigo Vivi 2021-06-02 16:20 ` [Intel-gfx] " Rodrigo Vivi 2021-06-10 22:58 ` Daniele Ceraolo Spurio 2021-06-10 22:58 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-06-11 8:44 ` Rodrigo Vivi 2021-06-11 8:44 ` [Intel-gfx] " Rodrigo Vivi 2021-05-25 5:48 ` [PATCH v4 14/17] drm/i915/pxp: User interface for Protected buffer Daniele Ceraolo Spurio 2021-05-25 5:48 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-05-25 13:32 ` Daniel Vetter 2021-05-25 13:32 ` [Intel-gfx] " Daniel Vetter 2021-05-27 2:03 ` Daniele Ceraolo Spurio 2021-05-27 2:03 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-05-25 18:36 ` Tang, CQ 2021-05-25 18:36 ` Tang, CQ 2021-05-27 2:13 ` Daniele Ceraolo Spurio 2021-05-27 2:13 ` Daniele Ceraolo Spurio 2021-05-25 5:48 ` [PATCH v4 15/17] drm/i915/pxp: Add plane decryption support Daniele Ceraolo Spurio 2021-05-25 5:48 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-06-02 18:23 ` Rodrigo Vivi 2021-06-02 18:23 ` [Intel-gfx] " Rodrigo Vivi 2021-05-25 5:48 ` [PATCH v4 16/17] drm/i915/pxp: black pixels on pxp disabled Daniele Ceraolo Spurio 2021-05-25 5:48 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-06-02 19:00 ` Rodrigo Vivi 2021-06-02 19:00 ` [Intel-gfx] " Rodrigo Vivi 2021-05-25 5:48 ` [PATCH v4 17/17] drm/i915/pxp: enable PXP for integrated Gen12 Daniele Ceraolo Spurio 2021-05-25 5:48 ` [Intel-gfx] " Daniele Ceraolo Spurio 2021-05-25 6:18 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Introduce Intel PXP Patchwork 2021-05-25 6:20 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork 2021-05-25 6:23 ` [Intel-gfx] ✗ Fi.CI.DOCS: " Patchwork 2021-05-25 6:42 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork 2021-05-25 8:34 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=9d1da611-f6d6-ee69-9ddf-64b87ac8a1af@intel.com \ --to=daniele.ceraolospurio@intel.com \ --cc=dri-devel@lists.freedesktop.org \ --cc=intel-gfx@lists.freedesktop.org \ --cc=rodrigo.vivi@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.