[PATCH 1/4] drm/xe: Add build on bug to assert page fault queue works
Matthew Brost
matthew.brost at intel.com
Wed Jan 10 01:05:49 UTC 2024
On Tue, Jan 09, 2024 at 01:52:06PM -0800, Welty, Brian wrote:
>
>
> On 1/9/2024 9:28 AM, Matthew Brost wrote:
> > If NUM_PF_QUEUE % PF_MSG_LEN_DW != 0 then the page fault queue logic
> > does not work when wrapping occurs. Add a build bug on to assert
> > NUM_PF_QUEUE % PF_MSG_LEN_DW == 0 to enforce this restriction and
> > document the code.
>
> I'm a bit confused. Number of queues is independent.
>
> Don't you mean to test against size of queue in DWs?
> So this for the check?
> BUILD_BUG_ON(PF_QUEUE_NUM_DW % PF_MSG_LEN_DW);
>
Yes. This the check I wanted. Thanks, will fix.
Matt
>
> >
> > Cc: Lucas De Marchi <lucas.demarchi at intel.com>
> > Signed-off-by: Matthew Brost <matthew.brost at intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_gt_pagefault.c | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > index 4489aadc7a52..16cea47d9e15 100644
> > --- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > +++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
> > @@ -328,6 +328,11 @@ int xe_guc_pagefault_handler(struct xe_guc *guc, u32 *msg, u32 len)
> > u32 asid;
> > bool full;
> > + /*
> > + * The below logic doesn't work unless NUM_PF_QUEUE % PF_MSG_LEN_DW == 0
> > + */
> > + BUILD_BUG_ON(NUM_PF_QUEUE % PF_MSG_LEN_DW);
> > +
> > if (unlikely(len != PF_MSG_LEN_DW))
> > return -EPROTO;
More information about the Intel-xe
mailing list