From: "Dixit, Ashutosh" <ashutosh.dixit@intel.com>
To: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Cc: <intel-xe@lists.freedesktop.org>
Subject: Re: [PATCH 3/9] drm/xe/rtp: Keep track of non-OA nonpriv slots
Date: Mon, 08 Jun 2026 20:51:55 -0700 [thread overview]
Message-ID: <87zf14qskk.wl-ashutosh.dixit@intel.com> (raw)
In-Reply-To: <8733z9mzpo.wl-ashutosh.dixit@intel.com>
On Fri, 29 May 2026 18:51:47 -0700, Dixit, Ashutosh wrote:
>
> On Fri, 29 May 2026 16:24:30 -0700, Umesh Nerlige Ramappa wrote:
> >
> > On Fri, May 29, 2026 at 01:45:12PM -0700, Dixit, Ashutosh wrote:
> > > On Fri, 29 May 2026 11:30:34 -0700, Umesh Nerlige Ramappa wrote:
> > >>
> > >> On Mon, May 18, 2026 at 04:47:10PM -0700, Ashutosh Dixit wrote:
> > >> > In order to dynamically whitelist/dewhitelist OA registers on OA stream
> > >> > open/close, we need to keep track of nonpriv slots occupied by non-OA
> > >> > register whitelists.
> > >>
> > >> Can we maintain the slot index within hwe, so that the caller does not need
> > >> to keep track of it? I am assuming this will only be used in the probe
> > >> path. For all other paths the *_sr registers are used directly which
> > >> already have the registre<->slot association stored within them.
> > >>
> > >> i.e.
> > >>
> > >> hwe->slot;
> > >
> > > Hmm, when I first wrote the code, I had this in hwe: hwe->nonpriv_slots.
> > > But later realized it is only needed in xe_reg_whitelist_process_engine(),
> > > so moved it to the local variable nonpriv_slots there.
> > >
> > > Also, nonpriv_slots is actually number of slots occupied by non-OA
> > > registers. So if it part of hwe, the question becomes more complicated:
> > > what do we store there, number of slots excluding OA or including OA? Since
> > > we only need number of slots excluding OA.
> >
> > I would just think of it as the next available nonpriv slot for the caller
> > to use. It's just a state w.r.t the hwe. When you let the caller (even if
> > internal to the KMD) manage it, it's prone to errors - not about this
> > series or current code, but in general.
>
> OK, will do this in v2. Thanks.
I have done it but note that, because OA registers are added to two lists
(oa_sr and reg_sr), some involvement from the caller cannot be
eliminated. Hopefully the arguments and return value from
whitelist_apply_to_hwe() in v2 are sufficient to clarify this involvement
of the caller.
>
> > >
> > > Therefore, to avoid these complications, I decided that the best way was a
> > > temporary local variable.
> > >
> > > What do you think we'd gain by maintaining it as part of hwe? If things
> > > change later, we could add it, but for now the local variable seems
> > > sufficient?
> >
> > >
> > > Thanks.
> > > --
> > > Ashutosh
> > >
> > >> >
> > >> > Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
> > >> > ---
> > >> > drivers/gpu/drm/xe/xe_reg_whitelist.c | 8 ++++++--
> > >> > 1 file changed, 6 insertions(+), 2 deletions(-)
> > >> >
> > >> > diff --git a/drivers/gpu/drm/xe/xe_reg_whitelist.c b/drivers/gpu/drm/xe/xe_reg_whitelist.c
> > >> > index 6cc81f53fc601..1e788e2ee4014 100644
> > >> > --- a/drivers/gpu/drm/xe/xe_reg_whitelist.c
> > >> > +++ b/drivers/gpu/drm/xe/xe_reg_whitelist.c
> > >> > @@ -159,7 +159,7 @@ static const struct xe_rtp_entry_sr oa_whitelist[] = {
> > >> > },
> > >> > };
> > >> >
> > >> > -static void whitelist_apply_to_hwe(struct xe_hw_engine *hwe)
> > >> > +static int whitelist_apply_to_hwe(struct xe_hw_engine *hwe)
> > >> > {
> > >> > struct xe_reg_sr *sr = &hwe->reg_whitelist;
> > >> > struct xe_reg_sr_entry *entry;
> > >> > @@ -191,6 +191,8 @@ static void whitelist_apply_to_hwe(struct xe_hw_engine *hwe)
> > >> >
> > >> > slot++;
> > >> > }
> > >> > +
> > >> > + return slot;
> > >> > }
> > >> >
> > >> > /**
> > >> > @@ -203,11 +205,13 @@ static void whitelist_apply_to_hwe(struct xe_hw_engine *hwe)
> > >> > */
> > >> > void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe)
> > >> > {
> > >> > + int nonpriv_slots;
> > >> > +
> > >> > struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
> > >> >
> > >> > xe_rtp_process_to_sr(&ctx, register_whitelist, ARRAY_SIZE(register_whitelist),
> > >> > &hwe->reg_whitelist, false);
> > >> > - whitelist_apply_to_hwe(hwe);
> > >> > + nonpriv_slots = whitelist_apply_to_hwe(hwe);
> > >> >
> > >> > xe_rtp_process_to_sr(&ctx, oa_whitelist, ARRAY_SIZE(oa_whitelist),
> > >> > &hwe->oa_whitelist, false);
> > >> > --
> > >> > 2.54.0
> > >> >
next prev parent reply other threads:[~2026-06-09 3:51 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-18 23:47 [PATCH 0/9] Don't whitelist OA registers unconditionally Ashutosh Dixit
2026-05-18 23:47 ` [PATCH 1/9] drm/xe/rtp: Add RING_FORCE_TO_NONPRIV_DENY to OA whitelists Ashutosh Dixit
2026-05-21 23:14 ` Umesh Nerlige Ramappa
2026-05-21 23:35 ` Dixit, Ashutosh
2026-05-26 19:12 ` Umesh Nerlige Ramappa
2026-05-27 20:03 ` Umesh Nerlige Ramappa
2026-05-29 19:12 ` Dixit, Ashutosh
2026-05-18 23:47 ` [PATCH 2/9] drm/xe/rtp: Maintain OA whitelists separately Ashutosh Dixit
2026-05-29 18:31 ` Umesh Nerlige Ramappa
2026-05-18 23:47 ` [PATCH 3/9] drm/xe/rtp: Keep track of non-OA nonpriv slots Ashutosh Dixit
2026-05-29 18:30 ` Umesh Nerlige Ramappa
2026-05-29 20:45 ` Dixit, Ashutosh
2026-05-29 23:24 ` Umesh Nerlige Ramappa
2026-05-30 1:51 ` Dixit, Ashutosh
2026-06-09 3:51 ` Dixit, Ashutosh [this message]
2026-05-18 23:47 ` [PATCH 4/9] drm/xe/rtp: Generalize whitelist_apply_to_hwe Ashutosh Dixit
2026-05-18 23:47 ` [PATCH 5/9] drm/xe/rtp: Save OA nonpriv registers to register save/restore lists Ashutosh Dixit
2026-05-27 22:00 ` Umesh Nerlige Ramappa
2026-05-29 20:45 ` Dixit, Ashutosh
2026-05-18 23:47 ` [PATCH 6/9] drm/xe/rtp: Toggle 'deny' bit to (de-)whitelist OA regs Ashutosh Dixit
2026-05-29 18:33 ` Umesh Nerlige Ramappa
2026-05-18 23:47 ` [PATCH 7/9] drm/xe/rtp: (De-)whitelist OA registers for all hwe's for a gt Ashutosh Dixit
2026-05-27 21:49 ` Umesh Nerlige Ramappa
2026-05-29 23:03 ` Dixit, Ashutosh
2026-06-02 22:47 ` Umesh Nerlige Ramappa
2026-06-03 18:49 ` Dixit, Ashutosh
2026-05-18 23:47 ` [PATCH 8/9] drm/xe/oa: (De-)whitelist OA registers on OA stream open/release Ashutosh Dixit
2026-05-29 18:35 ` Umesh Nerlige Ramappa
2026-05-18 23:47 ` [PATCH 9/9] drm/xe/rtp: Ensure locking/ref counting for OA whitelists Ashutosh Dixit
2026-05-27 20:04 ` Umesh Nerlige Ramappa
2026-06-01 23:30 ` Dixit, Ashutosh
2026-05-18 23:54 ` ✓ CI.KUnit: success for Don't whitelist OA registers unconditionally Patchwork
2026-05-19 1:05 ` ✓ Xe.CI.BAT: " Patchwork
2026-05-19 8:32 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-05-27 19:53 ` [PATCH 0/9] " Demi Marie Obenour
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=87zf14qskk.wl-ashutosh.dixit@intel.com \
--to=ashutosh.dixit@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=umesh.nerlige.ramappa@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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox