* [PATCH 4/7] drm/xe/oa: Signal output fences
2024-08-20 0:58 [PATCH v2 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
@ 2024-08-20 0:58 ` Ashutosh Dixit
2024-08-20 19:23 ` Matthew Brost
0 siblings, 1 reply; 31+ messages in thread
From: Ashutosh Dixit @ 2024-08-20 0:58 UTC (permalink / raw)
To: intel-xe
Cc: Matthew Brost, Jose Souza, Lionel Landwerlin,
Umesh Nerlige Ramappa, Jonathan Cavitt
Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
output fences in the xe_sync array. The fences are signaled
asynchronously. When there are no output fences to signal, the OA
configuration wait is synchronously re-introduced into the ioctl.
v2: Don't wait in the work, use callback + delayed work (Matt B)
Use a single, not a per-fence spinlock (Matt Brost)
Suggested-by: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
---
drivers/gpu/drm/xe/xe_oa.c | 110 +++++++++++++++++++++++++++----
drivers/gpu/drm/xe/xe_oa_types.h | 3 +
2 files changed, 100 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index cad8f54500a10..1478d88722170 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -100,6 +100,15 @@ struct xe_oa_config_bo {
struct xe_bb *bb;
};
+struct xe_oa_fence {
+ /* @base: dma fence base */
+ struct dma_fence base;
+ /* @work: work to signal @base */
+ struct delayed_work work;
+ /* @cb: callback to schedule @work */
+ struct dma_fence_cb cb;
+};
+
#define DRM_FMT(x) DRM_XE_OA_FMT_TYPE_##x
static const struct xe_oa_format oa_formats[] = {
@@ -945,13 +954,62 @@ xe_oa_alloc_config_buffer(struct xe_oa_stream *stream, struct xe_oa_config *oa_c
return oa_bo;
}
+static void xe_oa_fence_work_fn(struct work_struct *w)
+{
+ struct xe_oa_fence *ofence = container_of(w, typeof(*ofence), work.work);
+
+ /* Signal fence to indicate new OA configuration is active */
+ dma_fence_signal(&ofence->base);
+ dma_fence_put(&ofence->base);
+}
+
+static void xe_oa_config_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
+{
+ /* Additional empirical delay needed for NOA programming after registers are written */
+#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
+
+ struct xe_oa_fence *ofence = container_of(cb, typeof(*ofence), cb);
+
+ INIT_DELAYED_WORK(&ofence->work, xe_oa_fence_work_fn);
+ queue_delayed_work(system_unbound_wq, &ofence->work,
+ usecs_to_jiffies(NOA_PROGRAM_ADDITIONAL_DELAY_US));
+ dma_fence_put(fence);
+}
+
+static const char *xe_oa_get_driver_name(struct dma_fence *fence)
+{
+ return "xe_oa";
+}
+
+static const char *xe_oa_get_timeline_name(struct dma_fence *fence)
+{
+ return "unbound";
+}
+
+static const struct dma_fence_ops xe_oa_fence_ops = {
+ .get_driver_name = xe_oa_get_driver_name,
+ .get_timeline_name = xe_oa_get_timeline_name,
+};
+
+static struct xe_oa_fence *xe_oa_fence_arm(struct xe_oa_stream *stream)
+{
+ struct xe_oa_fence *ofence;
+
+ ofence = kzalloc(sizeof(*ofence), GFP_KERNEL);
+ if (!ofence)
+ return ERR_PTR(-ENOMEM);
+
+ dma_fence_init(&ofence->base, &xe_oa_fence_ops, &stream->oa_fence_lock, 0, 0);
+ return ofence;
+}
+
static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config *config)
{
#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
struct xe_oa_config_bo *oa_bo;
- int err = 0, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
+ struct xe_oa_fence *ofence;
+ int i, err, num_signal = 0;
struct dma_fence *fence;
- long timeout;
/* Emit OA configuration batch */
oa_bo = xe_oa_alloc_config_buffer(stream, config);
@@ -966,18 +1024,43 @@ static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config
goto exit;
}
- /* Wait till all previous batches have executed */
- timeout = dma_fence_wait_timeout(fence, false, 5 * HZ);
- dma_fence_put(fence);
- if (timeout < 0)
- err = timeout;
- else if (!timeout)
- err = -ETIME;
- if (err)
- drm_dbg(&stream->oa->xe->drm, "dma_fence_wait_timeout err %d\n", err);
+ /* Initialize and set fence to signal */
+ ofence = xe_oa_fence_arm(stream);
+ if (IS_ERR(ofence)) {
+ err = PTR_ERR(ofence);
+ goto put_fence;
+ }
- /* Additional empirical delay needed for NOA programming after registers are written */
- usleep_range(us, 2 * us);
+ for (i = 0; i < stream->num_syncs; i++) {
+ if (stream->syncs[i].flags & DRM_XE_SYNC_FLAG_SIGNAL)
+ num_signal++;
+ xe_sync_entry_signal(&stream->syncs[i], &ofence->base);
+ }
+
+ /* Add job fence callback to schedule work to signal ofence->base */
+ err = dma_fence_add_callback(fence, &ofence->cb, xe_oa_config_cb);
+ if (err == -ENOENT)
+ xe_oa_config_cb(fence, &ofence->cb);
+ else if (err)
+ goto put_ofence;
+
+ /* If nothing needs to be signaled we wait synchronously */
+ if (!num_signal)
+ dma_fence_wait(&ofence->base, true);
+
+ /* Done with syncs */
+ for (i = 0; i < stream->num_syncs; i++)
+ xe_sync_entry_cleanup(&stream->syncs[i]);
+ kfree(stream->syncs);
+
+ return 0;
+put_ofence:
+ for (i = 0; i < stream->num_syncs; i++)
+ xe_sync_entry_cleanup(&stream->syncs[i]);
+ kfree(stream->syncs);
+ dma_fence_put(&ofence->base);
+put_fence:
+ dma_fence_put(fence);
exit:
return err;
}
@@ -1480,6 +1563,7 @@ static int xe_oa_stream_init(struct xe_oa_stream *stream,
goto err_free_oa_buf;
}
+ spin_lock_init(&stream->oa_fence_lock);
ret = xe_oa_enable_metric_set(stream);
if (ret) {
drm_dbg(&stream->oa->xe->drm, "Unable to enable metric set\n");
diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
index c1ca960af9305..412f1460c1437 100644
--- a/drivers/gpu/drm/xe/xe_oa_types.h
+++ b/drivers/gpu/drm/xe/xe_oa_types.h
@@ -239,6 +239,9 @@ struct xe_oa_stream {
/** @no_preempt: Whether preemption and timeslicing is disabled for stream exec_q */
u32 no_preempt;
+ /** @oa_fence_lock: Lock for struct xe_oa_fence */
+ spinlock_t oa_fence_lock;
+
/** @num_syncs: size of @syncs array */
u32 num_syncs;
--
2.41.0
^ permalink raw reply related [flat|nested] 31+ messages in thread
* Re: [PATCH 4/7] drm/xe/oa: Signal output fences
2024-08-20 0:58 ` [PATCH 4/7] drm/xe/oa: Signal output fences Ashutosh Dixit
@ 2024-08-20 19:23 ` Matthew Brost
2024-08-21 15:20 ` Dixit, Ashutosh
0 siblings, 1 reply; 31+ messages in thread
From: Matthew Brost @ 2024-08-20 19:23 UTC (permalink / raw)
To: Ashutosh Dixit
Cc: intel-xe, Jose Souza, Lionel Landwerlin, Umesh Nerlige Ramappa,
Jonathan Cavitt
On Mon, Aug 19, 2024 at 05:58:05PM -0700, Ashutosh Dixit wrote:
> Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
> output fences in the xe_sync array. The fences are signaled
> asynchronously. When there are no output fences to signal, the OA
> configuration wait is synchronously re-introduced into the ioctl.
>
> v2: Don't wait in the work, use callback + delayed work (Matt B)
> Use a single, not a per-fence spinlock (Matt Brost)
>
> Suggested-by: Matthew Brost <matthew.brost@intel.com>
> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
> ---
> drivers/gpu/drm/xe/xe_oa.c | 110 +++++++++++++++++++++++++++----
> drivers/gpu/drm/xe/xe_oa_types.h | 3 +
> 2 files changed, 100 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
> index cad8f54500a10..1478d88722170 100644
> --- a/drivers/gpu/drm/xe/xe_oa.c
> +++ b/drivers/gpu/drm/xe/xe_oa.c
> @@ -100,6 +100,15 @@ struct xe_oa_config_bo {
> struct xe_bb *bb;
> };
>
> +struct xe_oa_fence {
> + /* @base: dma fence base */
> + struct dma_fence base;
> + /* @work: work to signal @base */
> + struct delayed_work work;
> + /* @cb: callback to schedule @work */
> + struct dma_fence_cb cb;
> +};
> +
> #define DRM_FMT(x) DRM_XE_OA_FMT_TYPE_##x
>
> static const struct xe_oa_format oa_formats[] = {
> @@ -945,13 +954,62 @@ xe_oa_alloc_config_buffer(struct xe_oa_stream *stream, struct xe_oa_config *oa_c
> return oa_bo;
> }
>
> +static void xe_oa_fence_work_fn(struct work_struct *w)
> +{
> + struct xe_oa_fence *ofence = container_of(w, typeof(*ofence), work.work);
> +
> + /* Signal fence to indicate new OA configuration is active */
> + dma_fence_signal(&ofence->base);
> + dma_fence_put(&ofence->base);
> +}
> +
> +static void xe_oa_config_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
> +{
> + /* Additional empirical delay needed for NOA programming after registers are written */
> +#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
> +
> + struct xe_oa_fence *ofence = container_of(cb, typeof(*ofence), cb);
> +
> + INIT_DELAYED_WORK(&ofence->work, xe_oa_fence_work_fn);
> + queue_delayed_work(system_unbound_wq, &ofence->work,
> + usecs_to_jiffies(NOA_PROGRAM_ADDITIONAL_DELAY_US));
> + dma_fence_put(fence);
> +}
> +
> +static const char *xe_oa_get_driver_name(struct dma_fence *fence)
> +{
> + return "xe_oa";
> +}
> +
> +static const char *xe_oa_get_timeline_name(struct dma_fence *fence)
> +{
> + return "unbound";
> +}
> +
> +static const struct dma_fence_ops xe_oa_fence_ops = {
> + .get_driver_name = xe_oa_get_driver_name,
> + .get_timeline_name = xe_oa_get_timeline_name,
> +};
> +
> +static struct xe_oa_fence *xe_oa_fence_arm(struct xe_oa_stream *stream)
> +{
> + struct xe_oa_fence *ofence;
> +
> + ofence = kzalloc(sizeof(*ofence), GFP_KERNEL);
> + if (!ofence)
> + return ERR_PTR(-ENOMEM);
I'd split this out so the malloc is done before submitting the job and
done dma_fence_init after. This way once the job submitted there are no
failure points. Also doing malloc after a job is submitted plays into
dma-fence rules too, you have malloc in the path a signaling a user
dma-fence too. It probably works the way you have it, but best practices
we to be follow the changes I suggest.
> +
> + dma_fence_init(&ofence->base, &xe_oa_fence_ops, &stream->oa_fence_lock, 0, 0);
> + return ofence;
> +}
> +
> static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config *config)
> {
> #define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
> struct xe_oa_config_bo *oa_bo;
> - int err = 0, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
> + struct xe_oa_fence *ofence;
> + int i, err, num_signal = 0;
> struct dma_fence *fence;
> - long timeout;
>
> /* Emit OA configuration batch */
> oa_bo = xe_oa_alloc_config_buffer(stream, config);
> @@ -966,18 +1024,43 @@ static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config
> goto exit;
> }
>
> - /* Wait till all previous batches have executed */
> - timeout = dma_fence_wait_timeout(fence, false, 5 * HZ);
> - dma_fence_put(fence);
> - if (timeout < 0)
> - err = timeout;
> - else if (!timeout)
> - err = -ETIME;
> - if (err)
> - drm_dbg(&stream->oa->xe->drm, "dma_fence_wait_timeout err %d\n", err);
> + /* Initialize and set fence to signal */
> + ofence = xe_oa_fence_arm(stream);
> + if (IS_ERR(ofence)) {
> + err = PTR_ERR(ofence);
> + goto put_fence;
> + }
>
> - /* Additional empirical delay needed for NOA programming after registers are written */
> - usleep_range(us, 2 * us);
> + for (i = 0; i < stream->num_syncs; i++) {
> + if (stream->syncs[i].flags & DRM_XE_SYNC_FLAG_SIGNAL)
> + num_signal++;
> + xe_sync_entry_signal(&stream->syncs[i], &ofence->base);
> + }
> +
> + /* Add job fence callback to schedule work to signal ofence->base */
> + err = dma_fence_add_callback(fence, &ofence->cb, xe_oa_config_cb);
> + if (err == -ENOENT)
> + xe_oa_config_cb(fence, &ofence->cb);
> + else if (err)
I'd just assert here rather than fail. The only return currently from
dma_fence_add_callback is -ENOENT, in other code paths we just assert
too. See invalidation_fence_init in xe_pt.c.
> + goto put_ofence;
> +
> + /* If nothing needs to be signaled we wait synchronously */
> + if (!num_signal)
> + dma_fence_wait(&ofence->base, true);
I think you have a UAF here. The worker which signals the fence puts
'&ofence->base'. So I think you need an extra ref for !num_signal before
calling dma_fence_add_callback which is dropped after dma_fence_wait.
Also since you have interruptable wait here, you likely need to return
an error to the user to retry the IOCTL upon interruption, right?
Matt
> +
> + /* Done with syncs */
> + for (i = 0; i < stream->num_syncs; i++)
> + xe_sync_entry_cleanup(&stream->syncs[i]);
> + kfree(stream->syncs);
> +
> + return 0;
> +put_ofence:
> + for (i = 0; i < stream->num_syncs; i++)
> + xe_sync_entry_cleanup(&stream->syncs[i]);
> + kfree(stream->syncs);
> + dma_fence_put(&ofence->base);
> +put_fence:
> + dma_fence_put(fence);
> exit:
> return err;
> }
> @@ -1480,6 +1563,7 @@ static int xe_oa_stream_init(struct xe_oa_stream *stream,
> goto err_free_oa_buf;
> }
>
> + spin_lock_init(&stream->oa_fence_lock);
> ret = xe_oa_enable_metric_set(stream);
> if (ret) {
> drm_dbg(&stream->oa->xe->drm, "Unable to enable metric set\n");
> diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
> index c1ca960af9305..412f1460c1437 100644
> --- a/drivers/gpu/drm/xe/xe_oa_types.h
> +++ b/drivers/gpu/drm/xe/xe_oa_types.h
> @@ -239,6 +239,9 @@ struct xe_oa_stream {
> /** @no_preempt: Whether preemption and timeslicing is disabled for stream exec_q */
> u32 no_preempt;
>
> + /** @oa_fence_lock: Lock for struct xe_oa_fence */
> + spinlock_t oa_fence_lock;
> +
> /** @num_syncs: size of @syncs array */
> u32 num_syncs;
>
> --
> 2.41.0
>
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH 4/7] drm/xe/oa: Signal output fences
2024-08-20 19:23 ` Matthew Brost
@ 2024-08-21 15:20 ` Dixit, Ashutosh
2024-08-21 16:02 ` Matthew Brost
0 siblings, 1 reply; 31+ messages in thread
From: Dixit, Ashutosh @ 2024-08-21 15:20 UTC (permalink / raw)
To: Matthew Brost
Cc: intel-xe, Jose Souza, Lionel Landwerlin, Umesh Nerlige Ramappa,
Jonathan Cavitt
On Tue, 20 Aug 2024 12:23:13 -0700, Matthew Brost wrote:
>
Hi Matt,
Thanks for all the feedback. Yes, my first encounter with dma_fence's so
not everything is smooth yet.
> On Mon, Aug 19, 2024 at 05:58:05PM -0700, Ashutosh Dixit wrote:
> > Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
> > output fences in the xe_sync array. The fences are signaled
> > asynchronously. When there are no output fences to signal, the OA
> > configuration wait is synchronously re-introduced into the ioctl.
> >
> > v2: Don't wait in the work, use callback + delayed work (Matt B)
> > Use a single, not a per-fence spinlock (Matt Brost)
> >
> > Suggested-by: Matthew Brost <matthew.brost@intel.com>
> > Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_oa.c | 110 +++++++++++++++++++++++++++----
> > drivers/gpu/drm/xe/xe_oa_types.h | 3 +
> > 2 files changed, 100 insertions(+), 13 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
> > index cad8f54500a10..1478d88722170 100644
> > --- a/drivers/gpu/drm/xe/xe_oa.c
> > +++ b/drivers/gpu/drm/xe/xe_oa.c
> > @@ -100,6 +100,15 @@ struct xe_oa_config_bo {
> > struct xe_bb *bb;
> > };
> >
> > +struct xe_oa_fence {
> > + /* @base: dma fence base */
> > + struct dma_fence base;
> > + /* @work: work to signal @base */
> > + struct delayed_work work;
> > + /* @cb: callback to schedule @work */
> > + struct dma_fence_cb cb;
> > +};
> > +
> > #define DRM_FMT(x) DRM_XE_OA_FMT_TYPE_##x
> >
> > static const struct xe_oa_format oa_formats[] = {
> > @@ -945,13 +954,62 @@ xe_oa_alloc_config_buffer(struct xe_oa_stream *stream, struct xe_oa_config *oa_c
> > return oa_bo;
> > }
> >
> > +static void xe_oa_fence_work_fn(struct work_struct *w)
> > +{
> > + struct xe_oa_fence *ofence = container_of(w, typeof(*ofence), work.work);
> > +
> > + /* Signal fence to indicate new OA configuration is active */
> > + dma_fence_signal(&ofence->base);
> > + dma_fence_put(&ofence->base);
> > +}
> > +
> > +static void xe_oa_config_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
> > +{
> > + /* Additional empirical delay needed for NOA programming after registers are written */
> > +#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
> > +
> > + struct xe_oa_fence *ofence = container_of(cb, typeof(*ofence), cb);
> > +
> > + INIT_DELAYED_WORK(&ofence->work, xe_oa_fence_work_fn);
> > + queue_delayed_work(system_unbound_wq, &ofence->work,
> > + usecs_to_jiffies(NOA_PROGRAM_ADDITIONAL_DELAY_US));
> > + dma_fence_put(fence);
> > +}
> > +
> > +static const char *xe_oa_get_driver_name(struct dma_fence *fence)
> > +{
> > + return "xe_oa";
> > +}
> > +
> > +static const char *xe_oa_get_timeline_name(struct dma_fence *fence)
> > +{
> > + return "unbound";
> > +}
> > +
> > +static const struct dma_fence_ops xe_oa_fence_ops = {
> > + .get_driver_name = xe_oa_get_driver_name,
> > + .get_timeline_name = xe_oa_get_timeline_name,
> > +};
> > +
> > +static struct xe_oa_fence *xe_oa_fence_arm(struct xe_oa_stream *stream)
> > +{
> > + struct xe_oa_fence *ofence;
> > +
> > + ofence = kzalloc(sizeof(*ofence), GFP_KERNEL);
> > + if (!ofence)
> > + return ERR_PTR(-ENOMEM);
>
> I'd split this out so the malloc is done before submitting the job and
> done dma_fence_init after. This way once the job submitted there are no
> failure points.
OK, done in v3, definitely simplifies code flow.
> Also doing malloc after a job is submitted plays into dma-fence rules
> too, you have malloc in the path a signaling a user dma-fence too.
I believe you are referring to this:
* * Drivers are allowed to call dma_fence_wait() from their &shrinker
* callbacks. This means any code required for fence completion cannot
* allocate memory with GFP_KERNEL.
> It probably works the way you have it, but best practices we to be follow
> the changes I suggest.
Agreed.
>
> > +
> > + dma_fence_init(&ofence->base, &xe_oa_fence_ops, &stream->oa_fence_lock, 0, 0);
> > + return ofence;
> > +}
> > +
> > static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config *config)
> > {
> > #define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
> > struct xe_oa_config_bo *oa_bo;
> > - int err = 0, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
> > + struct xe_oa_fence *ofence;
> > + int i, err, num_signal = 0;
> > struct dma_fence *fence;
> > - long timeout;
> >
> > /* Emit OA configuration batch */
> > oa_bo = xe_oa_alloc_config_buffer(stream, config);
> > @@ -966,18 +1024,43 @@ static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config
> > goto exit;
> > }
> >
> > - /* Wait till all previous batches have executed */
> > - timeout = dma_fence_wait_timeout(fence, false, 5 * HZ);
> > - dma_fence_put(fence);
> > - if (timeout < 0)
> > - err = timeout;
> > - else if (!timeout)
> > - err = -ETIME;
> > - if (err)
> > - drm_dbg(&stream->oa->xe->drm, "dma_fence_wait_timeout err %d\n", err);
> > + /* Initialize and set fence to signal */
> > + ofence = xe_oa_fence_arm(stream);
> > + if (IS_ERR(ofence)) {
> > + err = PTR_ERR(ofence);
> > + goto put_fence;
> > + }
> >
> > - /* Additional empirical delay needed for NOA programming after registers are written */
> > - usleep_range(us, 2 * us);
> > + for (i = 0; i < stream->num_syncs; i++) {
> > + if (stream->syncs[i].flags & DRM_XE_SYNC_FLAG_SIGNAL)
> > + num_signal++;
> > + xe_sync_entry_signal(&stream->syncs[i], &ofence->base);
> > + }
> > +
> > + /* Add job fence callback to schedule work to signal ofence->base */
> > + err = dma_fence_add_callback(fence, &ofence->cb, xe_oa_config_cb);
> > + if (err == -ENOENT)
> > + xe_oa_config_cb(fence, &ofence->cb);
> > + else if (err)
>
> I'd just assert here rather than fail. The only return currently from
> dma_fence_add_callback is -ENOENT, in other code paths we just assert
> too. See invalidation_fence_init in xe_pt.c.
Done in v3.
>
> > + goto put_ofence;
> > +
> > + /* If nothing needs to be signaled we wait synchronously */
> > + if (!num_signal)
> > + dma_fence_wait(&ofence->base, true);
>
> I think you have a UAF here. The worker which signals the fence puts
> '&ofence->base'. So I think you need an extra ref for !num_signal before
> calling dma_fence_add_callback which is dropped after dma_fence_wait.
Good catch, but I think it is safe because the fence cannot really be freed
till the xe_sync_entry_cleanup() below (even if userspace closes the
sync handle). But in any case, to be safe, I've added an additional
dma_fence_get/put.
> Also since you have interruptable wait here, you likely need to return
> an error to the user to retry the IOCTL upon interruption, right?
Good catch, I've changed that to a non-interruptible wait (didn't really
need an interruptible wait, was just jittery about hangs i.e. fence not
signaling at all :/ )
Thanks a lot,
Ashutosh
>
> > +
> > + /* Done with syncs */
> > + for (i = 0; i < stream->num_syncs; i++)
> > + xe_sync_entry_cleanup(&stream->syncs[i]);
> > + kfree(stream->syncs);
> > +
> > + return 0;
> > +put_ofence:
> > + for (i = 0; i < stream->num_syncs; i++)
> > + xe_sync_entry_cleanup(&stream->syncs[i]);
> > + kfree(stream->syncs);
> > + dma_fence_put(&ofence->base);
> > +put_fence:
> > + dma_fence_put(fence);
> > exit:
> > return err;
> > }
> > @@ -1480,6 +1563,7 @@ static int xe_oa_stream_init(struct xe_oa_stream *stream,
> > goto err_free_oa_buf;
> > }
> >
> > + spin_lock_init(&stream->oa_fence_lock);
> > ret = xe_oa_enable_metric_set(stream);
> > if (ret) {
> > drm_dbg(&stream->oa->xe->drm, "Unable to enable metric set\n");
> > diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
> > index c1ca960af9305..412f1460c1437 100644
> > --- a/drivers/gpu/drm/xe/xe_oa_types.h
> > +++ b/drivers/gpu/drm/xe/xe_oa_types.h
> > @@ -239,6 +239,9 @@ struct xe_oa_stream {
> > /** @no_preempt: Whether preemption and timeslicing is disabled for stream exec_q */
> > u32 no_preempt;
> >
> > + /** @oa_fence_lock: Lock for struct xe_oa_fence */
> > + spinlock_t oa_fence_lock;
> > +
> > /** @num_syncs: size of @syncs array */
> > u32 num_syncs;
> >
> > --
> > 2.41.0
> >
^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH 4/7] drm/xe/oa: Signal output fences
2024-08-21 15:28 [PATCH v3 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
@ 2024-08-21 15:28 ` Ashutosh Dixit
2024-08-21 15:49 ` Matthew Brost
0 siblings, 1 reply; 31+ messages in thread
From: Ashutosh Dixit @ 2024-08-21 15:28 UTC (permalink / raw)
To: intel-xe
Cc: Matthew Brost, Jose Souza, Lionel Landwerlin,
Umesh Nerlige Ramappa, Jonathan Cavitt
Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
output fences in the xe_sync array. The fences are signaled
asynchronously. When there are no output fences to signal, the OA
configuration wait is synchronously re-introduced into the ioctl.
v2: Don't wait in the work, use callback + delayed work (Matt B)
Use a single, not a per-fence spinlock (Matt Brost)
v3: Move ofence alloc before job submission (Matt)
Assert, don't fail, from dma_fence_add_callback (Matt)
Additional dma_fence_get for dma_fence_wait (Matt)
Change dma_fence_wait to non-interruptible (Matt)
Suggested-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
---
drivers/gpu/drm/xe/xe_oa.c | 101 ++++++++++++++++++++++++++-----
drivers/gpu/drm/xe/xe_oa_types.h | 3 +
2 files changed, 90 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index cad8f54500a10..0c55c1b577f70 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -100,6 +100,15 @@ struct xe_oa_config_bo {
struct xe_bb *bb;
};
+struct xe_oa_fence {
+ /* @base: dma fence base */
+ struct dma_fence base;
+ /* @work: work to signal @base */
+ struct delayed_work work;
+ /* @cb: callback to schedule @work */
+ struct dma_fence_cb cb;
+};
+
#define DRM_FMT(x) DRM_XE_OA_FMT_TYPE_##x
static const struct xe_oa_format oa_formats[] = {
@@ -945,40 +954,103 @@ xe_oa_alloc_config_buffer(struct xe_oa_stream *stream, struct xe_oa_config *oa_c
return oa_bo;
}
+static void xe_oa_fence_work_fn(struct work_struct *w)
+{
+ struct xe_oa_fence *ofence = container_of(w, typeof(*ofence), work.work);
+
+ /* Signal fence to indicate new OA configuration is active */
+ dma_fence_signal(&ofence->base);
+ dma_fence_put(&ofence->base);
+}
+
+static void xe_oa_config_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
+{
+ /* Additional empirical delay needed for NOA programming after registers are written */
+#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
+
+ struct xe_oa_fence *ofence = container_of(cb, typeof(*ofence), cb);
+
+ INIT_DELAYED_WORK(&ofence->work, xe_oa_fence_work_fn);
+ queue_delayed_work(system_unbound_wq, &ofence->work,
+ usecs_to_jiffies(NOA_PROGRAM_ADDITIONAL_DELAY_US));
+ dma_fence_put(fence);
+}
+
+static const char *xe_oa_get_driver_name(struct dma_fence *fence)
+{
+ return "xe_oa";
+}
+
+static const char *xe_oa_get_timeline_name(struct dma_fence *fence)
+{
+ return "unbound";
+}
+
+static const struct dma_fence_ops xe_oa_fence_ops = {
+ .get_driver_name = xe_oa_get_driver_name,
+ .get_timeline_name = xe_oa_get_timeline_name,
+};
+
static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config *config)
{
#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
struct xe_oa_config_bo *oa_bo;
- int err = 0, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
+ struct xe_oa_fence *ofence;
+ int i, err, num_signal = 0;
struct dma_fence *fence;
- long timeout;
- /* Emit OA configuration batch */
+ ofence = kzalloc(sizeof(*ofence), GFP_KERNEL);
+ if (!ofence) {
+ err = -ENOMEM;
+ goto exit;
+ }
+
oa_bo = xe_oa_alloc_config_buffer(stream, config);
if (IS_ERR(oa_bo)) {
err = PTR_ERR(oa_bo);
goto exit;
}
+ /* Emit OA configuration batch */
fence = xe_oa_submit_bb(stream, XE_OA_SUBMIT_ADD_DEPS, oa_bo->bb);
if (IS_ERR(fence)) {
err = PTR_ERR(fence);
goto exit;
}
- /* Wait till all previous batches have executed */
- timeout = dma_fence_wait_timeout(fence, false, 5 * HZ);
- dma_fence_put(fence);
- if (timeout < 0)
- err = timeout;
- else if (!timeout)
- err = -ETIME;
- if (err)
- drm_dbg(&stream->oa->xe->drm, "dma_fence_wait_timeout err %d\n", err);
+ /* Point of no return: initialize and set fence to signal */
+ dma_fence_init(&ofence->base, &xe_oa_fence_ops, &stream->oa_fence_lock, 0, 0);
- /* Additional empirical delay needed for NOA programming after registers are written */
- usleep_range(us, 2 * us);
+ for (i = 0; i < stream->num_syncs; i++) {
+ if (stream->syncs[i].flags & DRM_XE_SYNC_FLAG_SIGNAL)
+ num_signal++;
+ xe_sync_entry_signal(&stream->syncs[i], &ofence->base);
+ }
+
+ /* Additional dma_fence_get in case we dma_fence_wait */
+ if (!num_signal)
+ dma_fence_get(&ofence->base);
+
+ /* Add job fence callback to schedule work to signal ofence->base */
+ err = dma_fence_add_callback(fence, &ofence->cb, xe_oa_config_cb);
+ xe_gt_assert(stream->gt, !err || err == -ENOENT);
+ if (err == -ENOENT)
+ xe_oa_config_cb(fence, &ofence->cb);
+
+ /* If nothing needs to be signaled we wait synchronously */
+ if (!num_signal) {
+ dma_fence_wait(&ofence->base, false);
+ dma_fence_put(&ofence->base);
+ }
+
+ /* Done with syncs */
+ for (i = 0; i < stream->num_syncs; i++)
+ xe_sync_entry_cleanup(&stream->syncs[i]);
+ kfree(stream->syncs);
+
+ return 0;
exit:
+ kfree(ofence);
return err;
}
@@ -1480,6 +1552,7 @@ static int xe_oa_stream_init(struct xe_oa_stream *stream,
goto err_free_oa_buf;
}
+ spin_lock_init(&stream->oa_fence_lock);
ret = xe_oa_enable_metric_set(stream);
if (ret) {
drm_dbg(&stream->oa->xe->drm, "Unable to enable metric set\n");
diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
index c1ca960af9305..412f1460c1437 100644
--- a/drivers/gpu/drm/xe/xe_oa_types.h
+++ b/drivers/gpu/drm/xe/xe_oa_types.h
@@ -239,6 +239,9 @@ struct xe_oa_stream {
/** @no_preempt: Whether preemption and timeslicing is disabled for stream exec_q */
u32 no_preempt;
+ /** @oa_fence_lock: Lock for struct xe_oa_fence */
+ spinlock_t oa_fence_lock;
+
/** @num_syncs: size of @syncs array */
u32 num_syncs;
--
2.41.0
^ permalink raw reply related [flat|nested] 31+ messages in thread
* Re: [PATCH 4/7] drm/xe/oa: Signal output fences
2024-08-21 15:28 ` [PATCH 4/7] drm/xe/oa: Signal output fences Ashutosh Dixit
@ 2024-08-21 15:49 ` Matthew Brost
0 siblings, 0 replies; 31+ messages in thread
From: Matthew Brost @ 2024-08-21 15:49 UTC (permalink / raw)
To: Ashutosh Dixit
Cc: intel-xe, Jose Souza, Lionel Landwerlin, Umesh Nerlige Ramappa,
Jonathan Cavitt
On Wed, Aug 21, 2024 at 08:28:27AM -0700, Ashutosh Dixit wrote:
> Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
> output fences in the xe_sync array. The fences are signaled
> asynchronously. When there are no output fences to signal, the OA
> configuration wait is synchronously re-introduced into the ioctl.
>
> v2: Don't wait in the work, use callback + delayed work (Matt B)
> Use a single, not a per-fence spinlock (Matt Brost)
> v3: Move ofence alloc before job submission (Matt)
> Assert, don't fail, from dma_fence_add_callback (Matt)
> Additional dma_fence_get for dma_fence_wait (Matt)
> Change dma_fence_wait to non-interruptible (Matt)
>
> Suggested-by: Matthew Brost <matthew.brost@intel.com>
> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
> ---
> drivers/gpu/drm/xe/xe_oa.c | 101 ++++++++++++++++++++++++++-----
> drivers/gpu/drm/xe/xe_oa_types.h | 3 +
> 2 files changed, 90 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
> index cad8f54500a10..0c55c1b577f70 100644
> --- a/drivers/gpu/drm/xe/xe_oa.c
> +++ b/drivers/gpu/drm/xe/xe_oa.c
> @@ -100,6 +100,15 @@ struct xe_oa_config_bo {
> struct xe_bb *bb;
> };
>
> +struct xe_oa_fence {
> + /* @base: dma fence base */
> + struct dma_fence base;
> + /* @work: work to signal @base */
> + struct delayed_work work;
> + /* @cb: callback to schedule @work */
> + struct dma_fence_cb cb;
> +};
> +
> #define DRM_FMT(x) DRM_XE_OA_FMT_TYPE_##x
>
> static const struct xe_oa_format oa_formats[] = {
> @@ -945,40 +954,103 @@ xe_oa_alloc_config_buffer(struct xe_oa_stream *stream, struct xe_oa_config *oa_c
> return oa_bo;
> }
>
> +static void xe_oa_fence_work_fn(struct work_struct *w)
> +{
> + struct xe_oa_fence *ofence = container_of(w, typeof(*ofence), work.work);
> +
> + /* Signal fence to indicate new OA configuration is active */
> + dma_fence_signal(&ofence->base);
> + dma_fence_put(&ofence->base);
> +}
> +
> +static void xe_oa_config_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
> +{
> + /* Additional empirical delay needed for NOA programming after registers are written */
> +#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
> +
> + struct xe_oa_fence *ofence = container_of(cb, typeof(*ofence), cb);
> +
> + INIT_DELAYED_WORK(&ofence->work, xe_oa_fence_work_fn);
> + queue_delayed_work(system_unbound_wq, &ofence->work,
> + usecs_to_jiffies(NOA_PROGRAM_ADDITIONAL_DELAY_US));
> + dma_fence_put(fence);
> +}
> +
> +static const char *xe_oa_get_driver_name(struct dma_fence *fence)
> +{
> + return "xe_oa";
> +}
> +
> +static const char *xe_oa_get_timeline_name(struct dma_fence *fence)
> +{
> + return "unbound";
> +}
> +
> +static const struct dma_fence_ops xe_oa_fence_ops = {
> + .get_driver_name = xe_oa_get_driver_name,
> + .get_timeline_name = xe_oa_get_timeline_name,
> +};
> +
> static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config *config)
> {
> #define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
> struct xe_oa_config_bo *oa_bo;
> - int err = 0, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
> + struct xe_oa_fence *ofence;
> + int i, err, num_signal = 0;
> struct dma_fence *fence;
> - long timeout;
>
> - /* Emit OA configuration batch */
> + ofence = kzalloc(sizeof(*ofence), GFP_KERNEL);
> + if (!ofence) {
> + err = -ENOMEM;
> + goto exit;
> + }
> +
> oa_bo = xe_oa_alloc_config_buffer(stream, config);
> if (IS_ERR(oa_bo)) {
> err = PTR_ERR(oa_bo);
> goto exit;
> }
>
> + /* Emit OA configuration batch */
> fence = xe_oa_submit_bb(stream, XE_OA_SUBMIT_ADD_DEPS, oa_bo->bb);
> if (IS_ERR(fence)) {
> err = PTR_ERR(fence);
> goto exit;
> }
>
> - /* Wait till all previous batches have executed */
> - timeout = dma_fence_wait_timeout(fence, false, 5 * HZ);
> - dma_fence_put(fence);
> - if (timeout < 0)
> - err = timeout;
> - else if (!timeout)
> - err = -ETIME;
> - if (err)
> - drm_dbg(&stream->oa->xe->drm, "dma_fence_wait_timeout err %d\n", err);
> + /* Point of no return: initialize and set fence to signal */
> + dma_fence_init(&ofence->base, &xe_oa_fence_ops, &stream->oa_fence_lock, 0, 0);
>
> - /* Additional empirical delay needed for NOA programming after registers are written */
> - usleep_range(us, 2 * us);
> + for (i = 0; i < stream->num_syncs; i++) {
> + if (stream->syncs[i].flags & DRM_XE_SYNC_FLAG_SIGNAL)
> + num_signal++;
> + xe_sync_entry_signal(&stream->syncs[i], &ofence->base);
> + }
> +
> + /* Additional dma_fence_get in case we dma_fence_wait */
> + if (!num_signal)
> + dma_fence_get(&ofence->base);
> +
> + /* Add job fence callback to schedule work to signal ofence->base */
> + err = dma_fence_add_callback(fence, &ofence->cb, xe_oa_config_cb);
> + xe_gt_assert(stream->gt, !err || err == -ENOENT);
> + if (err == -ENOENT)
> + xe_oa_config_cb(fence, &ofence->cb);
> +
> + /* If nothing needs to be signaled we wait synchronously */
> + if (!num_signal) {
> + dma_fence_wait(&ofence->base, false);
> + dma_fence_put(&ofence->base);
> + }
> +
> + /* Done with syncs */
> + for (i = 0; i < stream->num_syncs; i++)
> + xe_sync_entry_cleanup(&stream->syncs[i]);
> + kfree(stream->syncs);
> +
> + return 0;
> exit:
> + kfree(ofence);
> return err;
> }
>
> @@ -1480,6 +1552,7 @@ static int xe_oa_stream_init(struct xe_oa_stream *stream,
> goto err_free_oa_buf;
> }
>
> + spin_lock_init(&stream->oa_fence_lock);
> ret = xe_oa_enable_metric_set(stream);
> if (ret) {
> drm_dbg(&stream->oa->xe->drm, "Unable to enable metric set\n");
> diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
> index c1ca960af9305..412f1460c1437 100644
> --- a/drivers/gpu/drm/xe/xe_oa_types.h
> +++ b/drivers/gpu/drm/xe/xe_oa_types.h
> @@ -239,6 +239,9 @@ struct xe_oa_stream {
> /** @no_preempt: Whether preemption and timeslicing is disabled for stream exec_q */
> u32 no_preempt;
>
> + /** @oa_fence_lock: Lock for struct xe_oa_fence */
> + spinlock_t oa_fence_lock;
> +
> /** @num_syncs: size of @syncs array */
> u32 num_syncs;
>
> --
> 2.41.0
>
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH 4/7] drm/xe/oa: Signal output fences
2024-08-21 15:20 ` Dixit, Ashutosh
@ 2024-08-21 16:02 ` Matthew Brost
0 siblings, 0 replies; 31+ messages in thread
From: Matthew Brost @ 2024-08-21 16:02 UTC (permalink / raw)
To: Dixit, Ashutosh
Cc: intel-xe, Jose Souza, Lionel Landwerlin, Umesh Nerlige Ramappa,
Jonathan Cavitt
On Wed, Aug 21, 2024 at 08:20:49AM -0700, Dixit, Ashutosh wrote:
> On Tue, 20 Aug 2024 12:23:13 -0700, Matthew Brost wrote:
> >
>
> Hi Matt,
>
> Thanks for all the feedback. Yes, my first encounter with dma_fence's so
> not everything is smooth yet.
>
> > On Mon, Aug 19, 2024 at 05:58:05PM -0700, Ashutosh Dixit wrote:
> > > Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
> > > output fences in the xe_sync array. The fences are signaled
> > > asynchronously. When there are no output fences to signal, the OA
> > > configuration wait is synchronously re-introduced into the ioctl.
> > >
> > > v2: Don't wait in the work, use callback + delayed work (Matt B)
> > > Use a single, not a per-fence spinlock (Matt Brost)
> > >
> > > Suggested-by: Matthew Brost <matthew.brost@intel.com>
> > > Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
> > > ---
> > > drivers/gpu/drm/xe/xe_oa.c | 110 +++++++++++++++++++++++++++----
> > > drivers/gpu/drm/xe/xe_oa_types.h | 3 +
> > > 2 files changed, 100 insertions(+), 13 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
> > > index cad8f54500a10..1478d88722170 100644
> > > --- a/drivers/gpu/drm/xe/xe_oa.c
> > > +++ b/drivers/gpu/drm/xe/xe_oa.c
> > > @@ -100,6 +100,15 @@ struct xe_oa_config_bo {
> > > struct xe_bb *bb;
> > > };
> > >
> > > +struct xe_oa_fence {
> > > + /* @base: dma fence base */
> > > + struct dma_fence base;
> > > + /* @work: work to signal @base */
> > > + struct delayed_work work;
> > > + /* @cb: callback to schedule @work */
> > > + struct dma_fence_cb cb;
> > > +};
> > > +
> > > #define DRM_FMT(x) DRM_XE_OA_FMT_TYPE_##x
> > >
> > > static const struct xe_oa_format oa_formats[] = {
> > > @@ -945,13 +954,62 @@ xe_oa_alloc_config_buffer(struct xe_oa_stream *stream, struct xe_oa_config *oa_c
> > > return oa_bo;
> > > }
> > >
> > > +static void xe_oa_fence_work_fn(struct work_struct *w)
> > > +{
> > > + struct xe_oa_fence *ofence = container_of(w, typeof(*ofence), work.work);
> > > +
> > > + /* Signal fence to indicate new OA configuration is active */
> > > + dma_fence_signal(&ofence->base);
> > > + dma_fence_put(&ofence->base);
> > > +}
> > > +
> > > +static void xe_oa_config_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
> > > +{
> > > + /* Additional empirical delay needed for NOA programming after registers are written */
> > > +#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
> > > +
> > > + struct xe_oa_fence *ofence = container_of(cb, typeof(*ofence), cb);
> > > +
> > > + INIT_DELAYED_WORK(&ofence->work, xe_oa_fence_work_fn);
> > > + queue_delayed_work(system_unbound_wq, &ofence->work,
> > > + usecs_to_jiffies(NOA_PROGRAM_ADDITIONAL_DELAY_US));
> > > + dma_fence_put(fence);
> > > +}
> > > +
> > > +static const char *xe_oa_get_driver_name(struct dma_fence *fence)
> > > +{
> > > + return "xe_oa";
> > > +}
> > > +
> > > +static const char *xe_oa_get_timeline_name(struct dma_fence *fence)
> > > +{
> > > + return "unbound";
> > > +}
> > > +
> > > +static const struct dma_fence_ops xe_oa_fence_ops = {
> > > + .get_driver_name = xe_oa_get_driver_name,
> > > + .get_timeline_name = xe_oa_get_timeline_name,
> > > +};
> > > +
> > > +static struct xe_oa_fence *xe_oa_fence_arm(struct xe_oa_stream *stream)
> > > +{
> > > + struct xe_oa_fence *ofence;
> > > +
> > > + ofence = kzalloc(sizeof(*ofence), GFP_KERNEL);
> > > + if (!ofence)
> > > + return ERR_PTR(-ENOMEM);
> >
> > I'd split this out so the malloc is done before submitting the job and
> > done dma_fence_init after. This way once the job submitted there are no
> > failure points.
>
> OK, done in v3, definitely simplifies code flow.
>
> > Also doing malloc after a job is submitted plays into dma-fence rules
> > too, you have malloc in the path a signaling a user dma-fence too.
>
> I believe you are referring to this:
>
> * * Drivers are allowed to call dma_fence_wait() from their &shrinker
> * callbacks. This means any code required for fence completion cannot
> * allocate memory with GFP_KERNEL.
Yea basically. Since the fence wasn't published (installed in sync obj)
yet it is actually fine but it a bad practice to do things like this:
fence = foo();
new_fence = malloc()
attach fence to new_fence
publish new_fence
We do this fence arrays in a couple of place which I didn't like to
clean up to use chains so memory allocations can be avoided.
Matt
>
> > It probably works the way you have it, but best practices we to be follow
> > the changes I suggest.
>
> Agreed.
>
> >
> > > +
> > > + dma_fence_init(&ofence->base, &xe_oa_fence_ops, &stream->oa_fence_lock, 0, 0);
> > > + return ofence;
> > > +}
> > > +
> > > static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config *config)
> > > {
> > > #define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
> > > struct xe_oa_config_bo *oa_bo;
> > > - int err = 0, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
> > > + struct xe_oa_fence *ofence;
> > > + int i, err, num_signal = 0;
> > > struct dma_fence *fence;
> > > - long timeout;
> > >
> > > /* Emit OA configuration batch */
> > > oa_bo = xe_oa_alloc_config_buffer(stream, config);
> > > @@ -966,18 +1024,43 @@ static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config
> > > goto exit;
> > > }
> > >
> > > - /* Wait till all previous batches have executed */
> > > - timeout = dma_fence_wait_timeout(fence, false, 5 * HZ);
> > > - dma_fence_put(fence);
> > > - if (timeout < 0)
> > > - err = timeout;
> > > - else if (!timeout)
> > > - err = -ETIME;
> > > - if (err)
> > > - drm_dbg(&stream->oa->xe->drm, "dma_fence_wait_timeout err %d\n", err);
> > > + /* Initialize and set fence to signal */
> > > + ofence = xe_oa_fence_arm(stream);
> > > + if (IS_ERR(ofence)) {
> > > + err = PTR_ERR(ofence);
> > > + goto put_fence;
> > > + }
> > >
> > > - /* Additional empirical delay needed for NOA programming after registers are written */
> > > - usleep_range(us, 2 * us);
> > > + for (i = 0; i < stream->num_syncs; i++) {
> > > + if (stream->syncs[i].flags & DRM_XE_SYNC_FLAG_SIGNAL)
> > > + num_signal++;
> > > + xe_sync_entry_signal(&stream->syncs[i], &ofence->base);
> > > + }
> > > +
> > > + /* Add job fence callback to schedule work to signal ofence->base */
> > > + err = dma_fence_add_callback(fence, &ofence->cb, xe_oa_config_cb);
> > > + if (err == -ENOENT)
> > > + xe_oa_config_cb(fence, &ofence->cb);
> > > + else if (err)
> >
> > I'd just assert here rather than fail. The only return currently from
> > dma_fence_add_callback is -ENOENT, in other code paths we just assert
> > too. See invalidation_fence_init in xe_pt.c.
>
> Done in v3.
>
> >
> > > + goto put_ofence;
> > > +
> > > + /* If nothing needs to be signaled we wait synchronously */
> > > + if (!num_signal)
> > > + dma_fence_wait(&ofence->base, true);
> >
> > I think you have a UAF here. The worker which signals the fence puts
> > '&ofence->base'. So I think you need an extra ref for !num_signal before
> > calling dma_fence_add_callback which is dropped after dma_fence_wait.
>
> Good catch, but I think it is safe because the fence cannot really be freed
> till the xe_sync_entry_cleanup() below (even if userspace closes the
> sync handle). But in any case, to be safe, I've added an additional
> dma_fence_get/put.
>
> > Also since you have interruptable wait here, you likely need to return
> > an error to the user to retry the IOCTL upon interruption, right?
>
> Good catch, I've changed that to a non-interruptible wait (didn't really
> need an interruptible wait, was just jittery about hangs i.e. fence not
> signaling at all :/ )
>
> Thanks a lot,
> Ashutosh
>
> >
> > > +
> > > + /* Done with syncs */
> > > + for (i = 0; i < stream->num_syncs; i++)
> > > + xe_sync_entry_cleanup(&stream->syncs[i]);
> > > + kfree(stream->syncs);
> > > +
> > > + return 0;
> > > +put_ofence:
> > > + for (i = 0; i < stream->num_syncs; i++)
> > > + xe_sync_entry_cleanup(&stream->syncs[i]);
> > > + kfree(stream->syncs);
> > > + dma_fence_put(&ofence->base);
> > > +put_fence:
> > > + dma_fence_put(fence);
> > > exit:
> > > return err;
> > > }
> > > @@ -1480,6 +1563,7 @@ static int xe_oa_stream_init(struct xe_oa_stream *stream,
> > > goto err_free_oa_buf;
> > > }
> > >
> > > + spin_lock_init(&stream->oa_fence_lock);
> > > ret = xe_oa_enable_metric_set(stream);
> > > if (ret) {
> > > drm_dbg(&stream->oa->xe->drm, "Unable to enable metric set\n");
> > > diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
> > > index c1ca960af9305..412f1460c1437 100644
> > > --- a/drivers/gpu/drm/xe/xe_oa_types.h
> > > +++ b/drivers/gpu/drm/xe/xe_oa_types.h
> > > @@ -239,6 +239,9 @@ struct xe_oa_stream {
> > > /** @no_preempt: Whether preemption and timeslicing is disabled for stream exec_q */
> > > u32 no_preempt;
> > >
> > > + /** @oa_fence_lock: Lock for struct xe_oa_fence */
> > > + spinlock_t oa_fence_lock;
> > > +
> > > /** @num_syncs: size of @syncs array */
> > > u32 num_syncs;
> > >
> > > --
> > > 2.41.0
> > >
^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA
@ 2024-08-28 1:50 Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 1/7] drm/xe/oa: Separate batch submission from waiting for completion Ashutosh Dixit
` (14 more replies)
0 siblings, 15 replies; 31+ messages in thread
From: Ashutosh Dixit @ 2024-08-28 1:50 UTC (permalink / raw)
To: intel-xe; +Cc: Jose Souza
OA stream configuration submits batches which can be queued behind other
(say workload) batches. Also, in some cases, additional delay is needed for
an OA configuration to take effect, even after programming batches have
completed executing on HW.
Mesa has use cases where a single workload is replayed repeatedly on the
GPU, each time with a different OA configuration (or metric set), in order
to capture different aspects of workload performance. This requires that OA
configuration takes effect at precisely the correct input batch and also
userspace is correctly informed when a new configuration has been activated
(at batch granularity).
In the previous implementation this is implemented by introducing a delay
in the stream open and reconfiguration ioctl's. This works, except that we
introdce a bubble in the userspace pipeline (the pipeline stalls during the
delays in calls into these ioctl's). Mesa prefers that such pipeline stalls
don't happen.
In this series this problem is solved using xe_sync arrays, similar to
xe_exec and vm_bind. Here OA re-configuration can be made to wait till
input fences signal and OA will signal output fences after a new
configuration has been activated. This can of course be done without
stalling the userspace pipeline.
v2: Address review comments from Matt Brost, Jonathan Cavitt and Jose Souza
v3: Changes to Patch 4 and Patch 7 to address review comments from Matt
Brost and Jonathan Cavitt
v4: Change to Patch 6 in response to Jose Souza
Test-with: 20240820003104.1407398-1-ashutosh.dixit@intel.com
Ashutosh Dixit (7):
drm/xe/oa: Separate batch submission from waiting for completion
drm/xe/oa/uapi: Define and parse OA sync properties
drm/xe/oa: Add input fence dependencies
drm/xe/oa: Signal output fences
drm/xe/oa: Move functions up so they can be reused for config ioctl
drm/xe/oa: Add syncs support to OA config ioctl
drm/xe/oa: Allow only certain property changes from config
drivers/gpu/drm/xe/xe_oa.c | 651 +++++++++++++++++++++----------
drivers/gpu/drm/xe/xe_oa_types.h | 12 +
drivers/gpu/drm/xe/xe_query.c | 2 +-
include/uapi/drm/xe_drm.h | 17 +
4 files changed, 475 insertions(+), 207 deletions(-)
--
2.41.0
^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH 1/7] drm/xe/oa: Separate batch submission from waiting for completion
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
@ 2024-08-28 1:50 ` Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 2/7] drm/xe/oa/uapi: Define and parse OA sync properties Ashutosh Dixit
` (13 subsequent siblings)
14 siblings, 0 replies; 31+ messages in thread
From: Ashutosh Dixit @ 2024-08-28 1:50 UTC (permalink / raw)
To: intel-xe; +Cc: Jose Souza
When we introduce xe_syncs, we don't wait for internal OA programming
batches to complete. That is, xe_syncs are signaled asynchronously. In
anticipation for this, separate out batch submission from waiting for
completion of those batches.
v2: Change return type of xe_oa_submit_bb to "struct dma_fence *" (Matt B)
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
---
drivers/gpu/drm/xe/xe_oa.c | 59 +++++++++++++++++++++++++++++---------
1 file changed, 45 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index 4d4541e0b24c0..ecd1b539a0f0a 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -563,12 +563,11 @@ static __poll_t xe_oa_poll(struct file *file, poll_table *wait)
return ret;
}
-static int xe_oa_submit_bb(struct xe_oa_stream *stream, struct xe_bb *bb)
+static struct dma_fence *xe_oa_submit_bb(struct xe_oa_stream *stream, struct xe_bb *bb)
{
struct xe_sched_job *job;
struct dma_fence *fence;
- long timeout;
- int err = 0;
+ int err;
/* Kernel configuration is issued on stream->k_exec_q, not stream->exec_q */
job = xe_bb_create_job(stream->k_exec_q, bb);
@@ -581,14 +580,9 @@ static int xe_oa_submit_bb(struct xe_oa_stream *stream, struct xe_bb *bb)
fence = dma_fence_get(&job->drm.s_fence->finished);
xe_sched_job_push(job);
- timeout = dma_fence_wait_timeout(fence, false, HZ);
- dma_fence_put(fence);
- if (timeout < 0)
- err = timeout;
- else if (!timeout)
- err = -ETIME;
+ return fence;
exit:
- return err;
+ return ERR_PTR(err);
}
static void write_cs_mi_lri(struct xe_bb *bb, const struct xe_oa_reg *reg_data, u32 n_regs)
@@ -652,6 +646,7 @@ static void xe_oa_store_flex(struct xe_oa_stream *stream, struct xe_lrc *lrc,
static int xe_oa_modify_ctx_image(struct xe_oa_stream *stream, struct xe_lrc *lrc,
const struct flex *flex, u32 count)
{
+ struct dma_fence *fence;
struct xe_bb *bb;
int err;
@@ -663,7 +658,16 @@ static int xe_oa_modify_ctx_image(struct xe_oa_stream *stream, struct xe_lrc *lr
xe_oa_store_flex(stream, lrc, bb, flex, count);
- err = xe_oa_submit_bb(stream, bb);
+ fence = xe_oa_submit_bb(stream, bb);
+ if (IS_ERR(fence)) {
+ err = PTR_ERR(fence);
+ goto free_bb;
+ }
+ xe_bb_free(bb, fence);
+ dma_fence_put(fence);
+
+ return 0;
+free_bb:
xe_bb_free(bb, NULL);
exit:
return err;
@@ -671,6 +675,7 @@ static int xe_oa_modify_ctx_image(struct xe_oa_stream *stream, struct xe_lrc *lr
static int xe_oa_load_with_lri(struct xe_oa_stream *stream, struct xe_oa_reg *reg_lri)
{
+ struct dma_fence *fence;
struct xe_bb *bb;
int err;
@@ -682,7 +687,16 @@ static int xe_oa_load_with_lri(struct xe_oa_stream *stream, struct xe_oa_reg *re
write_cs_mi_lri(bb, reg_lri, 1);
- err = xe_oa_submit_bb(stream, bb);
+ fence = xe_oa_submit_bb(stream, bb);
+ if (IS_ERR(fence)) {
+ err = PTR_ERR(fence);
+ goto free_bb;
+ }
+ xe_bb_free(bb, fence);
+ dma_fence_put(fence);
+
+ return 0;
+free_bb:
xe_bb_free(bb, NULL);
exit:
return err;
@@ -913,15 +927,32 @@ static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config
{
#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
struct xe_oa_config_bo *oa_bo;
- int err, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
+ int err = 0, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
+ struct dma_fence *fence;
+ long timeout;
+ /* Emit OA configuration batch */
oa_bo = xe_oa_alloc_config_buffer(stream, config);
if (IS_ERR(oa_bo)) {
err = PTR_ERR(oa_bo);
goto exit;
}
- err = xe_oa_submit_bb(stream, oa_bo->bb);
+ fence = xe_oa_submit_bb(stream, oa_bo->bb);
+ if (IS_ERR(fence)) {
+ err = PTR_ERR(fence);
+ goto exit;
+ }
+
+ /* Wait till all previous batches have executed */
+ timeout = dma_fence_wait_timeout(fence, false, 5 * HZ);
+ dma_fence_put(fence);
+ if (timeout < 0)
+ err = timeout;
+ else if (!timeout)
+ err = -ETIME;
+ if (err)
+ drm_dbg(&stream->oa->xe->drm, "dma_fence_wait_timeout err %d\n", err);
/* Additional empirical delay needed for NOA programming after registers are written */
usleep_range(us, 2 * us);
--
2.41.0
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 2/7] drm/xe/oa/uapi: Define and parse OA sync properties
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 1/7] drm/xe/oa: Separate batch submission from waiting for completion Ashutosh Dixit
@ 2024-08-28 1:50 ` Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 3/7] drm/xe/oa: Add input fence dependencies Ashutosh Dixit
` (12 subsequent siblings)
14 siblings, 0 replies; 31+ messages in thread
From: Ashutosh Dixit @ 2024-08-28 1:50 UTC (permalink / raw)
To: intel-xe; +Cc: Jose Souza
Now that we have laid the groundwork, introduce OA sync properties in the
uapi and parse the input xe_sync array as is done elsewhere in the
driver. Also add DRM_XE_OA_CAPS_SYNCS bit in OA capabilities for userspace.
v2: Fix and document DRM_XE_SYNC_TYPE_USER_FENCE for OA (Matt B)
Add DRM_XE_OA_CAPS_SYNCS bit to OA capabilities (Jose)
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
---
drivers/gpu/drm/xe/xe_oa.c | 83 +++++++++++++++++++++++++++++++-
drivers/gpu/drm/xe/xe_oa_types.h | 6 +++
drivers/gpu/drm/xe/xe_query.c | 2 +-
include/uapi/drm/xe_drm.h | 17 +++++++
4 files changed, 106 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index ecd1b539a0f0a..95b4a0b3a2fa7 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -36,6 +36,7 @@
#include "xe_pm.h"
#include "xe_sched_job.h"
#include "xe_sriov.h"
+#include "xe_sync.h"
#define DEFAULT_POLL_FREQUENCY_HZ 200
#define DEFAULT_POLL_PERIOD_NS (NSEC_PER_SEC / DEFAULT_POLL_FREQUENCY_HZ)
@@ -70,6 +71,7 @@ struct flex {
};
struct xe_oa_open_param {
+ struct xe_file *xef;
u32 oa_unit_id;
bool sample;
u32 metric_set;
@@ -81,6 +83,9 @@ struct xe_oa_open_param {
struct xe_exec_queue *exec_q;
struct xe_hw_engine *hwe;
bool no_preempt;
+ struct drm_xe_sync __user *syncs_user;
+ int num_syncs;
+ struct xe_sync_entry *syncs;
};
struct xe_oa_config_bo {
@@ -1391,6 +1396,9 @@ static int xe_oa_stream_init(struct xe_oa_stream *stream,
stream->period_exponent = param->period_exponent;
stream->no_preempt = param->no_preempt;
+ stream->num_syncs = param->num_syncs;
+ stream->syncs = param->syncs;
+
/*
* For Xe2+, when overrun mode is enabled, there are no partial reports at the end
* of buffer, making the OA buffer effectively a non-power-of-2 size circular
@@ -1741,6 +1749,20 @@ static int xe_oa_set_no_preempt(struct xe_oa *oa, u64 value,
return 0;
}
+static int xe_oa_set_prop_num_syncs(struct xe_oa *oa, u64 value,
+ struct xe_oa_open_param *param)
+{
+ param->num_syncs = value;
+ return 0;
+}
+
+static int xe_oa_set_prop_syncs_user(struct xe_oa *oa, u64 value,
+ struct xe_oa_open_param *param)
+{
+ param->syncs_user = u64_to_user_ptr(value);
+ return 0;
+}
+
typedef int (*xe_oa_set_property_fn)(struct xe_oa *oa, u64 value,
struct xe_oa_open_param *param);
static const xe_oa_set_property_fn xe_oa_set_property_funcs[] = {
@@ -1753,6 +1775,8 @@ static const xe_oa_set_property_fn xe_oa_set_property_funcs[] = {
[DRM_XE_OA_PROPERTY_EXEC_QUEUE_ID] = xe_oa_set_prop_exec_queue_id,
[DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE] = xe_oa_set_prop_engine_instance,
[DRM_XE_OA_PROPERTY_NO_PREEMPT] = xe_oa_set_no_preempt,
+ [DRM_XE_OA_PROPERTY_NUM_SYNCS] = xe_oa_set_prop_num_syncs,
+ [DRM_XE_OA_PROPERTY_SYNCS] = xe_oa_set_prop_syncs_user,
};
static int xe_oa_user_ext_set_property(struct xe_oa *oa, u64 extension,
@@ -1812,6 +1836,49 @@ static int xe_oa_user_extensions(struct xe_oa *oa, u64 extension, int ext_number
return 0;
}
+static int xe_oa_parse_syncs(struct xe_oa *oa, struct xe_oa_open_param *param)
+{
+ int ret, num_syncs, num_ufence = 0;
+
+ if (param->num_syncs && !param->syncs_user) {
+ drm_dbg(&oa->xe->drm, "num_syncs specified without sync array\n");
+ ret = -EINVAL;
+ goto exit;
+ }
+
+ if (param->num_syncs) {
+ param->syncs = kcalloc(param->num_syncs, sizeof(*param->syncs), GFP_KERNEL);
+ if (!param->syncs) {
+ ret = -ENOMEM;
+ goto exit;
+ }
+ }
+
+ for (num_syncs = 0; num_syncs < param->num_syncs; num_syncs++) {
+ ret = xe_sync_entry_parse(oa->xe, param->xef, ¶m->syncs[num_syncs],
+ ¶m->syncs_user[num_syncs], 0);
+ if (ret)
+ goto err_syncs;
+
+ if (xe_sync_is_ufence(¶m->syncs[num_syncs]))
+ num_ufence++;
+ }
+
+ if (XE_IOCTL_DBG(oa->xe, num_ufence > 1)) {
+ ret = -EINVAL;
+ goto err_syncs;
+ }
+
+ return 0;
+
+err_syncs:
+ while (num_syncs--)
+ xe_sync_entry_cleanup(¶m->syncs[num_syncs]);
+ kfree(param->syncs);
+exit:
+ return ret;
+}
+
/**
* xe_oa_stream_open_ioctl - Opens an OA stream
* @dev: @drm_device
@@ -1837,6 +1904,7 @@ int xe_oa_stream_open_ioctl(struct drm_device *dev, u64 data, struct drm_file *f
return -ENODEV;
}
+ param.xef = xef;
ret = xe_oa_user_extensions(oa, data, 0, ¶m);
if (ret)
return ret;
@@ -1905,11 +1973,24 @@ int xe_oa_stream_open_ioctl(struct drm_device *dev, u64 data, struct drm_file *f
drm_dbg(&oa->xe->drm, "Using periodic sampling freq %lld Hz\n", oa_freq_hz);
}
+ ret = xe_oa_parse_syncs(oa, ¶m);
+ if (ret)
+ goto err_exec_q;
+
mutex_lock(¶m.hwe->gt->oa.gt_lock);
ret = xe_oa_stream_open_ioctl_locked(oa, ¶m);
mutex_unlock(¶m.hwe->gt->oa.gt_lock);
+ if (ret < 0)
+ goto err_sync_cleanup;
+
+ return ret;
+
+err_sync_cleanup:
+ while (param.num_syncs--)
+ xe_sync_entry_cleanup(¶m.syncs[param.num_syncs]);
+ kfree(param.syncs);
err_exec_q:
- if (ret < 0 && param.exec_q)
+ if (param.exec_q)
xe_exec_queue_put(param.exec_q);
return ret;
}
diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
index 540c3ec53a6d7..c1ca960af9305 100644
--- a/drivers/gpu/drm/xe/xe_oa_types.h
+++ b/drivers/gpu/drm/xe/xe_oa_types.h
@@ -238,5 +238,11 @@ struct xe_oa_stream {
/** @no_preempt: Whether preemption and timeslicing is disabled for stream exec_q */
u32 no_preempt;
+
+ /** @num_syncs: size of @syncs array */
+ u32 num_syncs;
+
+ /** @syncs: syncs to wait on and to signal */
+ struct xe_sync_entry *syncs;
};
#endif
diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
index 73ef6e4c2dc96..c41d3f7b1416c 100644
--- a/drivers/gpu/drm/xe/xe_query.c
+++ b/drivers/gpu/drm/xe/xe_query.c
@@ -655,7 +655,7 @@ static int query_oa_units(struct xe_device *xe,
du->oa_unit_id = u->oa_unit_id;
du->oa_unit_type = u->type;
du->oa_timestamp_freq = xe_oa_timestamp_frequency(gt);
- du->capabilities = DRM_XE_OA_CAPS_BASE;
+ du->capabilities = DRM_XE_OA_CAPS_BASE | DRM_XE_OA_CAPS_SYNCS;
j = 0;
for_each_hw_engine(hwe, gt, hwe_id) {
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index b6fbe4988f2e9..36d59fa23b26a 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -1483,6 +1483,7 @@ struct drm_xe_oa_unit {
/** @capabilities: OA capabilities bit-mask */
__u64 capabilities;
#define DRM_XE_OA_CAPS_BASE (1 << 0)
+#define DRM_XE_OA_CAPS_SYNCS (1 << 1)
/** @oa_timestamp_freq: OA timestamp freq */
__u64 oa_timestamp_freq;
@@ -1632,6 +1633,22 @@ enum drm_xe_oa_property_id {
* to be disabled for the stream exec queue.
*/
DRM_XE_OA_PROPERTY_NO_PREEMPT,
+
+ /**
+ * @DRM_XE_OA_PROPERTY_NUM_SYNCS: Number of syncs in the sync array
+ * specified in @DRM_XE_OA_PROPERTY_SYNCS
+ */
+ DRM_XE_OA_PROPERTY_NUM_SYNCS,
+
+ /**
+ * @DRM_XE_OA_PROPERTY_SYNCS: Pointer to struct @drm_xe_sync array
+ * with array size specified via @DRM_XE_OA_PROPERTY_NUM_SYNCS. OA
+ * configuration will wait till input fences signal. Output fences
+ * will signal after the new OA configuration takes effect. For
+ * @DRM_XE_SYNC_TYPE_USER_FENCE, @addr is a user pointer, similar
+ * to the VM bind case.
+ */
+ DRM_XE_OA_PROPERTY_SYNCS,
};
/**
--
2.41.0
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 3/7] drm/xe/oa: Add input fence dependencies
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 1/7] drm/xe/oa: Separate batch submission from waiting for completion Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 2/7] drm/xe/oa/uapi: Define and parse OA sync properties Ashutosh Dixit
@ 2024-08-28 1:50 ` Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 4/7] drm/xe/oa: Signal output fences Ashutosh Dixit
` (11 subsequent siblings)
14 siblings, 0 replies; 31+ messages in thread
From: Ashutosh Dixit @ 2024-08-28 1:50 UTC (permalink / raw)
To: intel-xe; +Cc: Jose Souza
Add input fence dependencies which will make OA configuration wait till
these dependencies are met (till input fences signal).
v2: Change add_deps arg to xe_oa_submit_bb from bool to enum (Matt Brost)
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
---
drivers/gpu/drm/xe/xe_oa.c | 25 +++++++++++++++++++++----
1 file changed, 21 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index 95b4a0b3a2fa7..d7d75dac7e37a 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -42,6 +42,11 @@
#define DEFAULT_POLL_PERIOD_NS (NSEC_PER_SEC / DEFAULT_POLL_FREQUENCY_HZ)
#define XE_OA_UNIT_INVALID U32_MAX
+enum xe_oa_submit_deps {
+ XE_OA_SUBMIT_NO_DEPS,
+ XE_OA_SUBMIT_ADD_DEPS,
+};
+
struct xe_oa_reg {
struct xe_reg addr;
u32 value;
@@ -568,7 +573,8 @@ static __poll_t xe_oa_poll(struct file *file, poll_table *wait)
return ret;
}
-static struct dma_fence *xe_oa_submit_bb(struct xe_oa_stream *stream, struct xe_bb *bb)
+static struct dma_fence *xe_oa_submit_bb(struct xe_oa_stream *stream, enum xe_oa_submit_deps deps,
+ struct xe_bb *bb)
{
struct xe_sched_job *job;
struct dma_fence *fence;
@@ -581,11 +587,22 @@ static struct dma_fence *xe_oa_submit_bb(struct xe_oa_stream *stream, struct xe_
goto exit;
}
+ if (deps == XE_OA_SUBMIT_ADD_DEPS) {
+ for (int i = 0; i < stream->num_syncs && !err; i++)
+ err = xe_sync_entry_add_deps(&stream->syncs[i], job);
+ if (err) {
+ drm_dbg(&stream->oa->xe->drm, "xe_sync_entry_add_deps err %d\n", err);
+ goto err_put_job;
+ }
+ }
+
xe_sched_job_arm(job);
fence = dma_fence_get(&job->drm.s_fence->finished);
xe_sched_job_push(job);
return fence;
+err_put_job:
+ xe_sched_job_put(job);
exit:
return ERR_PTR(err);
}
@@ -663,7 +680,7 @@ static int xe_oa_modify_ctx_image(struct xe_oa_stream *stream, struct xe_lrc *lr
xe_oa_store_flex(stream, lrc, bb, flex, count);
- fence = xe_oa_submit_bb(stream, bb);
+ fence = xe_oa_submit_bb(stream, XE_OA_SUBMIT_NO_DEPS, bb);
if (IS_ERR(fence)) {
err = PTR_ERR(fence);
goto free_bb;
@@ -692,7 +709,7 @@ static int xe_oa_load_with_lri(struct xe_oa_stream *stream, struct xe_oa_reg *re
write_cs_mi_lri(bb, reg_lri, 1);
- fence = xe_oa_submit_bb(stream, bb);
+ fence = xe_oa_submit_bb(stream, XE_OA_SUBMIT_NO_DEPS, bb);
if (IS_ERR(fence)) {
err = PTR_ERR(fence);
goto free_bb;
@@ -943,7 +960,7 @@ static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config
goto exit;
}
- fence = xe_oa_submit_bb(stream, oa_bo->bb);
+ fence = xe_oa_submit_bb(stream, XE_OA_SUBMIT_ADD_DEPS, oa_bo->bb);
if (IS_ERR(fence)) {
err = PTR_ERR(fence);
goto exit;
--
2.41.0
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 4/7] drm/xe/oa: Signal output fences
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
` (2 preceding siblings ...)
2024-08-28 1:50 ` [PATCH 3/7] drm/xe/oa: Add input fence dependencies Ashutosh Dixit
@ 2024-08-28 1:50 ` Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 5/7] drm/xe/oa: Move functions up so they can be reused for config ioctl Ashutosh Dixit
` (10 subsequent siblings)
14 siblings, 0 replies; 31+ messages in thread
From: Ashutosh Dixit @ 2024-08-28 1:50 UTC (permalink / raw)
To: intel-xe; +Cc: Jose Souza
Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
output fences in the xe_sync array. The fences are signaled
asynchronously. When there are no output fences to signal, the OA
configuration wait is synchronously re-introduced into the ioctl.
v2: Don't wait in the work, use callback + delayed work (Matt B)
Use a single, not a per-fence spinlock (Matt Brost)
v3: Move ofence alloc before job submission (Matt)
Assert, don't fail, from dma_fence_add_callback (Matt)
Additional dma_fence_get for dma_fence_wait (Matt)
Change dma_fence_wait to non-interruptible (Matt)
Suggested-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_oa.c | 101 ++++++++++++++++++++++++++-----
drivers/gpu/drm/xe/xe_oa_types.h | 3 +
2 files changed, 90 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index d7d75dac7e37a..93b58dd893e76 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -100,6 +100,15 @@ struct xe_oa_config_bo {
struct xe_bb *bb;
};
+struct xe_oa_fence {
+ /* @base: dma fence base */
+ struct dma_fence base;
+ /* @work: work to signal @base */
+ struct delayed_work work;
+ /* @cb: callback to schedule @work */
+ struct dma_fence_cb cb;
+};
+
#define DRM_FMT(x) DRM_XE_OA_FMT_TYPE_##x
static const struct xe_oa_format oa_formats[] = {
@@ -945,40 +954,103 @@ xe_oa_alloc_config_buffer(struct xe_oa_stream *stream, struct xe_oa_config *oa_c
return oa_bo;
}
+static void xe_oa_fence_work_fn(struct work_struct *w)
+{
+ struct xe_oa_fence *ofence = container_of(w, typeof(*ofence), work.work);
+
+ /* Signal fence to indicate new OA configuration is active */
+ dma_fence_signal(&ofence->base);
+ dma_fence_put(&ofence->base);
+}
+
+static void xe_oa_config_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
+{
+ /* Additional empirical delay needed for NOA programming after registers are written */
+#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
+
+ struct xe_oa_fence *ofence = container_of(cb, typeof(*ofence), cb);
+
+ INIT_DELAYED_WORK(&ofence->work, xe_oa_fence_work_fn);
+ queue_delayed_work(system_unbound_wq, &ofence->work,
+ usecs_to_jiffies(NOA_PROGRAM_ADDITIONAL_DELAY_US));
+ dma_fence_put(fence);
+}
+
+static const char *xe_oa_get_driver_name(struct dma_fence *fence)
+{
+ return "xe_oa";
+}
+
+static const char *xe_oa_get_timeline_name(struct dma_fence *fence)
+{
+ return "unbound";
+}
+
+static const struct dma_fence_ops xe_oa_fence_ops = {
+ .get_driver_name = xe_oa_get_driver_name,
+ .get_timeline_name = xe_oa_get_timeline_name,
+};
+
static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config *config)
{
#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
struct xe_oa_config_bo *oa_bo;
- int err = 0, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
+ struct xe_oa_fence *ofence;
+ int i, err, num_signal = 0;
struct dma_fence *fence;
- long timeout;
- /* Emit OA configuration batch */
+ ofence = kzalloc(sizeof(*ofence), GFP_KERNEL);
+ if (!ofence) {
+ err = -ENOMEM;
+ goto exit;
+ }
+
oa_bo = xe_oa_alloc_config_buffer(stream, config);
if (IS_ERR(oa_bo)) {
err = PTR_ERR(oa_bo);
goto exit;
}
+ /* Emit OA configuration batch */
fence = xe_oa_submit_bb(stream, XE_OA_SUBMIT_ADD_DEPS, oa_bo->bb);
if (IS_ERR(fence)) {
err = PTR_ERR(fence);
goto exit;
}
- /* Wait till all previous batches have executed */
- timeout = dma_fence_wait_timeout(fence, false, 5 * HZ);
- dma_fence_put(fence);
- if (timeout < 0)
- err = timeout;
- else if (!timeout)
- err = -ETIME;
- if (err)
- drm_dbg(&stream->oa->xe->drm, "dma_fence_wait_timeout err %d\n", err);
+ /* Point of no return: initialize and set fence to signal */
+ dma_fence_init(&ofence->base, &xe_oa_fence_ops, &stream->oa_fence_lock, 0, 0);
- /* Additional empirical delay needed for NOA programming after registers are written */
- usleep_range(us, 2 * us);
+ for (i = 0; i < stream->num_syncs; i++) {
+ if (stream->syncs[i].flags & DRM_XE_SYNC_FLAG_SIGNAL)
+ num_signal++;
+ xe_sync_entry_signal(&stream->syncs[i], &ofence->base);
+ }
+
+ /* Additional dma_fence_get in case we dma_fence_wait */
+ if (!num_signal)
+ dma_fence_get(&ofence->base);
+
+ /* Add job fence callback to schedule work to signal ofence->base */
+ err = dma_fence_add_callback(fence, &ofence->cb, xe_oa_config_cb);
+ xe_gt_assert(stream->gt, !err || err == -ENOENT);
+ if (err == -ENOENT)
+ xe_oa_config_cb(fence, &ofence->cb);
+
+ /* If nothing needs to be signaled we wait synchronously */
+ if (!num_signal) {
+ dma_fence_wait(&ofence->base, false);
+ dma_fence_put(&ofence->base);
+ }
+
+ /* Done with syncs */
+ for (i = 0; i < stream->num_syncs; i++)
+ xe_sync_entry_cleanup(&stream->syncs[i]);
+ kfree(stream->syncs);
+
+ return 0;
exit:
+ kfree(ofence);
return err;
}
@@ -1479,6 +1551,7 @@ static int xe_oa_stream_init(struct xe_oa_stream *stream,
goto err_free_oa_buf;
}
+ spin_lock_init(&stream->oa_fence_lock);
ret = xe_oa_enable_metric_set(stream);
if (ret) {
drm_dbg(&stream->oa->xe->drm, "Unable to enable metric set\n");
diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
index c1ca960af9305..412f1460c1437 100644
--- a/drivers/gpu/drm/xe/xe_oa_types.h
+++ b/drivers/gpu/drm/xe/xe_oa_types.h
@@ -239,6 +239,9 @@ struct xe_oa_stream {
/** @no_preempt: Whether preemption and timeslicing is disabled for stream exec_q */
u32 no_preempt;
+ /** @oa_fence_lock: Lock for struct xe_oa_fence */
+ spinlock_t oa_fence_lock;
+
/** @num_syncs: size of @syncs array */
u32 num_syncs;
--
2.41.0
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 5/7] drm/xe/oa: Move functions up so they can be reused for config ioctl
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
` (3 preceding siblings ...)
2024-08-28 1:50 ` [PATCH 4/7] drm/xe/oa: Signal output fences Ashutosh Dixit
@ 2024-08-28 1:50 ` Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 6/7] drm/xe/oa: Add syncs support to OA " Ashutosh Dixit
` (9 subsequent siblings)
14 siblings, 0 replies; 31+ messages in thread
From: Ashutosh Dixit @ 2024-08-28 1:50 UTC (permalink / raw)
To: intel-xe; +Cc: Jose Souza
No code changes, only code movement so that functions used during stream
open can be reused for the stream reconfiguration
ioctl (DRM_XE_OBSERVATION_IOCTL_CONFIG).
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
---
drivers/gpu/drm/xe/xe_oa.c | 458 ++++++++++++++++++-------------------
1 file changed, 229 insertions(+), 229 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index 93b58dd893e76..8f65247b88377 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -1121,6 +1121,235 @@ static int xe_oa_enable_metric_set(struct xe_oa_stream *stream)
return xe_oa_emit_oa_config(stream, stream->oa_config);
}
+static int decode_oa_format(struct xe_oa *oa, u64 fmt, enum xe_oa_format_name *name)
+{
+ u32 counter_size = FIELD_GET(DRM_XE_OA_FORMAT_MASK_COUNTER_SIZE, fmt);
+ u32 counter_sel = FIELD_GET(DRM_XE_OA_FORMAT_MASK_COUNTER_SEL, fmt);
+ u32 bc_report = FIELD_GET(DRM_XE_OA_FORMAT_MASK_BC_REPORT, fmt);
+ u32 type = FIELD_GET(DRM_XE_OA_FORMAT_MASK_FMT_TYPE, fmt);
+ int idx;
+
+ for_each_set_bit(idx, oa->format_mask, __XE_OA_FORMAT_MAX) {
+ const struct xe_oa_format *f = &oa->oa_formats[idx];
+
+ if (counter_size == f->counter_size && bc_report == f->bc_report &&
+ type == f->type && counter_sel == f->counter_select) {
+ *name = idx;
+ return 0;
+ }
+ }
+
+ return -EINVAL;
+}
+
+static int xe_oa_set_prop_oa_unit_id(struct xe_oa *oa, u64 value,
+ struct xe_oa_open_param *param)
+{
+ if (value >= oa->oa_unit_ids) {
+ drm_dbg(&oa->xe->drm, "OA unit ID out of range %lld\n", value);
+ return -EINVAL;
+ }
+ param->oa_unit_id = value;
+ return 0;
+}
+
+static int xe_oa_set_prop_sample_oa(struct xe_oa *oa, u64 value,
+ struct xe_oa_open_param *param)
+{
+ param->sample = value;
+ return 0;
+}
+
+static int xe_oa_set_prop_metric_set(struct xe_oa *oa, u64 value,
+ struct xe_oa_open_param *param)
+{
+ param->metric_set = value;
+ return 0;
+}
+
+static int xe_oa_set_prop_oa_format(struct xe_oa *oa, u64 value,
+ struct xe_oa_open_param *param)
+{
+ int ret = decode_oa_format(oa, value, ¶m->oa_format);
+
+ if (ret) {
+ drm_dbg(&oa->xe->drm, "Unsupported OA report format %#llx\n", value);
+ return ret;
+ }
+ return 0;
+}
+
+static int xe_oa_set_prop_oa_exponent(struct xe_oa *oa, u64 value,
+ struct xe_oa_open_param *param)
+{
+#define OA_EXPONENT_MAX 31
+
+ if (value > OA_EXPONENT_MAX) {
+ drm_dbg(&oa->xe->drm, "OA timer exponent too high (> %u)\n", OA_EXPONENT_MAX);
+ return -EINVAL;
+ }
+ param->period_exponent = value;
+ return 0;
+}
+
+static int xe_oa_set_prop_disabled(struct xe_oa *oa, u64 value,
+ struct xe_oa_open_param *param)
+{
+ param->disabled = value;
+ return 0;
+}
+
+static int xe_oa_set_prop_exec_queue_id(struct xe_oa *oa, u64 value,
+ struct xe_oa_open_param *param)
+{
+ param->exec_queue_id = value;
+ return 0;
+}
+
+static int xe_oa_set_prop_engine_instance(struct xe_oa *oa, u64 value,
+ struct xe_oa_open_param *param)
+{
+ param->engine_instance = value;
+ return 0;
+}
+
+static int xe_oa_set_no_preempt(struct xe_oa *oa, u64 value,
+ struct xe_oa_open_param *param)
+{
+ param->no_preempt = value;
+ return 0;
+}
+
+static int xe_oa_set_prop_num_syncs(struct xe_oa *oa, u64 value,
+ struct xe_oa_open_param *param)
+{
+ param->num_syncs = value;
+ return 0;
+}
+
+static int xe_oa_set_prop_syncs_user(struct xe_oa *oa, u64 value,
+ struct xe_oa_open_param *param)
+{
+ param->syncs_user = u64_to_user_ptr(value);
+ return 0;
+}
+
+typedef int (*xe_oa_set_property_fn)(struct xe_oa *oa, u64 value,
+ struct xe_oa_open_param *param);
+static const xe_oa_set_property_fn xe_oa_set_property_funcs[] = {
+ [DRM_XE_OA_PROPERTY_OA_UNIT_ID] = xe_oa_set_prop_oa_unit_id,
+ [DRM_XE_OA_PROPERTY_SAMPLE_OA] = xe_oa_set_prop_sample_oa,
+ [DRM_XE_OA_PROPERTY_OA_METRIC_SET] = xe_oa_set_prop_metric_set,
+ [DRM_XE_OA_PROPERTY_OA_FORMAT] = xe_oa_set_prop_oa_format,
+ [DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT] = xe_oa_set_prop_oa_exponent,
+ [DRM_XE_OA_PROPERTY_OA_DISABLED] = xe_oa_set_prop_disabled,
+ [DRM_XE_OA_PROPERTY_EXEC_QUEUE_ID] = xe_oa_set_prop_exec_queue_id,
+ [DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE] = xe_oa_set_prop_engine_instance,
+ [DRM_XE_OA_PROPERTY_NO_PREEMPT] = xe_oa_set_no_preempt,
+ [DRM_XE_OA_PROPERTY_NUM_SYNCS] = xe_oa_set_prop_num_syncs,
+ [DRM_XE_OA_PROPERTY_SYNCS] = xe_oa_set_prop_syncs_user,
+};
+
+static int xe_oa_user_ext_set_property(struct xe_oa *oa, u64 extension,
+ struct xe_oa_open_param *param)
+{
+ u64 __user *address = u64_to_user_ptr(extension);
+ struct drm_xe_ext_set_property ext;
+ int err;
+ u32 idx;
+
+ err = __copy_from_user(&ext, address, sizeof(ext));
+ if (XE_IOCTL_DBG(oa->xe, err))
+ return -EFAULT;
+
+ if (XE_IOCTL_DBG(oa->xe, ext.property >= ARRAY_SIZE(xe_oa_set_property_funcs)) ||
+ XE_IOCTL_DBG(oa->xe, ext.pad))
+ return -EINVAL;
+
+ idx = array_index_nospec(ext.property, ARRAY_SIZE(xe_oa_set_property_funcs));
+ return xe_oa_set_property_funcs[idx](oa, ext.value, param);
+}
+
+typedef int (*xe_oa_user_extension_fn)(struct xe_oa *oa, u64 extension,
+ struct xe_oa_open_param *param);
+static const xe_oa_user_extension_fn xe_oa_user_extension_funcs[] = {
+ [DRM_XE_OA_EXTENSION_SET_PROPERTY] = xe_oa_user_ext_set_property,
+};
+
+#define MAX_USER_EXTENSIONS 16
+static int xe_oa_user_extensions(struct xe_oa *oa, u64 extension, int ext_number,
+ struct xe_oa_open_param *param)
+{
+ u64 __user *address = u64_to_user_ptr(extension);
+ struct drm_xe_user_extension ext;
+ int err;
+ u32 idx;
+
+ if (XE_IOCTL_DBG(oa->xe, ext_number >= MAX_USER_EXTENSIONS))
+ return -E2BIG;
+
+ err = __copy_from_user(&ext, address, sizeof(ext));
+ if (XE_IOCTL_DBG(oa->xe, err))
+ return -EFAULT;
+
+ if (XE_IOCTL_DBG(oa->xe, ext.pad) ||
+ XE_IOCTL_DBG(oa->xe, ext.name >= ARRAY_SIZE(xe_oa_user_extension_funcs)))
+ return -EINVAL;
+
+ idx = array_index_nospec(ext.name, ARRAY_SIZE(xe_oa_user_extension_funcs));
+ err = xe_oa_user_extension_funcs[idx](oa, extension, param);
+ if (XE_IOCTL_DBG(oa->xe, err))
+ return err;
+
+ if (ext.next_extension)
+ return xe_oa_user_extensions(oa, ext.next_extension, ++ext_number, param);
+
+ return 0;
+}
+
+static int xe_oa_parse_syncs(struct xe_oa *oa, struct xe_oa_open_param *param)
+{
+ int ret, num_syncs, num_ufence = 0;
+
+ if (param->num_syncs && !param->syncs_user) {
+ drm_dbg(&oa->xe->drm, "num_syncs specified without sync array\n");
+ ret = -EINVAL;
+ goto exit;
+ }
+
+ if (param->num_syncs) {
+ param->syncs = kcalloc(param->num_syncs, sizeof(*param->syncs), GFP_KERNEL);
+ if (!param->syncs) {
+ ret = -ENOMEM;
+ goto exit;
+ }
+ }
+
+ for (num_syncs = 0; num_syncs < param->num_syncs; num_syncs++) {
+ ret = xe_sync_entry_parse(oa->xe, param->xef, ¶m->syncs[num_syncs],
+ ¶m->syncs_user[num_syncs], 0);
+ if (ret)
+ goto err_syncs;
+
+ if (xe_sync_is_ufence(¶m->syncs[num_syncs]))
+ num_ufence++;
+ }
+
+ if (XE_IOCTL_DBG(oa->xe, num_ufence > 1)) {
+ ret = -EINVAL;
+ goto err_syncs;
+ }
+
+ return 0;
+
+err_syncs:
+ while (num_syncs--)
+ xe_sync_entry_cleanup(¶m->syncs[num_syncs]);
+ kfree(param->syncs);
+exit:
+ return ret;
+}
+
static void xe_oa_stream_enable(struct xe_oa_stream *stream)
{
stream->pollin = false;
@@ -1694,27 +1923,6 @@ static bool engine_supports_oa_format(const struct xe_hw_engine *hwe, int type)
}
}
-static int decode_oa_format(struct xe_oa *oa, u64 fmt, enum xe_oa_format_name *name)
-{
- u32 counter_size = FIELD_GET(DRM_XE_OA_FORMAT_MASK_COUNTER_SIZE, fmt);
- u32 counter_sel = FIELD_GET(DRM_XE_OA_FORMAT_MASK_COUNTER_SEL, fmt);
- u32 bc_report = FIELD_GET(DRM_XE_OA_FORMAT_MASK_BC_REPORT, fmt);
- u32 type = FIELD_GET(DRM_XE_OA_FORMAT_MASK_FMT_TYPE, fmt);
- int idx;
-
- for_each_set_bit(idx, oa->format_mask, __XE_OA_FORMAT_MAX) {
- const struct xe_oa_format *f = &oa->oa_formats[idx];
-
- if (counter_size == f->counter_size && bc_report == f->bc_report &&
- type == f->type && counter_sel == f->counter_select) {
- *name = idx;
- return 0;
- }
- }
-
- return -EINVAL;
-}
-
/**
* xe_oa_unit_id - Return OA unit ID for a hardware engine
* @hwe: @xe_hw_engine
@@ -1761,214 +1969,6 @@ static int xe_oa_assign_hwe(struct xe_oa *oa, struct xe_oa_open_param *param)
return ret;
}
-static int xe_oa_set_prop_oa_unit_id(struct xe_oa *oa, u64 value,
- struct xe_oa_open_param *param)
-{
- if (value >= oa->oa_unit_ids) {
- drm_dbg(&oa->xe->drm, "OA unit ID out of range %lld\n", value);
- return -EINVAL;
- }
- param->oa_unit_id = value;
- return 0;
-}
-
-static int xe_oa_set_prop_sample_oa(struct xe_oa *oa, u64 value,
- struct xe_oa_open_param *param)
-{
- param->sample = value;
- return 0;
-}
-
-static int xe_oa_set_prop_metric_set(struct xe_oa *oa, u64 value,
- struct xe_oa_open_param *param)
-{
- param->metric_set = value;
- return 0;
-}
-
-static int xe_oa_set_prop_oa_format(struct xe_oa *oa, u64 value,
- struct xe_oa_open_param *param)
-{
- int ret = decode_oa_format(oa, value, ¶m->oa_format);
-
- if (ret) {
- drm_dbg(&oa->xe->drm, "Unsupported OA report format %#llx\n", value);
- return ret;
- }
- return 0;
-}
-
-static int xe_oa_set_prop_oa_exponent(struct xe_oa *oa, u64 value,
- struct xe_oa_open_param *param)
-{
-#define OA_EXPONENT_MAX 31
-
- if (value > OA_EXPONENT_MAX) {
- drm_dbg(&oa->xe->drm, "OA timer exponent too high (> %u)\n", OA_EXPONENT_MAX);
- return -EINVAL;
- }
- param->period_exponent = value;
- return 0;
-}
-
-static int xe_oa_set_prop_disabled(struct xe_oa *oa, u64 value,
- struct xe_oa_open_param *param)
-{
- param->disabled = value;
- return 0;
-}
-
-static int xe_oa_set_prop_exec_queue_id(struct xe_oa *oa, u64 value,
- struct xe_oa_open_param *param)
-{
- param->exec_queue_id = value;
- return 0;
-}
-
-static int xe_oa_set_prop_engine_instance(struct xe_oa *oa, u64 value,
- struct xe_oa_open_param *param)
-{
- param->engine_instance = value;
- return 0;
-}
-
-static int xe_oa_set_no_preempt(struct xe_oa *oa, u64 value,
- struct xe_oa_open_param *param)
-{
- param->no_preempt = value;
- return 0;
-}
-
-static int xe_oa_set_prop_num_syncs(struct xe_oa *oa, u64 value,
- struct xe_oa_open_param *param)
-{
- param->num_syncs = value;
- return 0;
-}
-
-static int xe_oa_set_prop_syncs_user(struct xe_oa *oa, u64 value,
- struct xe_oa_open_param *param)
-{
- param->syncs_user = u64_to_user_ptr(value);
- return 0;
-}
-
-typedef int (*xe_oa_set_property_fn)(struct xe_oa *oa, u64 value,
- struct xe_oa_open_param *param);
-static const xe_oa_set_property_fn xe_oa_set_property_funcs[] = {
- [DRM_XE_OA_PROPERTY_OA_UNIT_ID] = xe_oa_set_prop_oa_unit_id,
- [DRM_XE_OA_PROPERTY_SAMPLE_OA] = xe_oa_set_prop_sample_oa,
- [DRM_XE_OA_PROPERTY_OA_METRIC_SET] = xe_oa_set_prop_metric_set,
- [DRM_XE_OA_PROPERTY_OA_FORMAT] = xe_oa_set_prop_oa_format,
- [DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT] = xe_oa_set_prop_oa_exponent,
- [DRM_XE_OA_PROPERTY_OA_DISABLED] = xe_oa_set_prop_disabled,
- [DRM_XE_OA_PROPERTY_EXEC_QUEUE_ID] = xe_oa_set_prop_exec_queue_id,
- [DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE] = xe_oa_set_prop_engine_instance,
- [DRM_XE_OA_PROPERTY_NO_PREEMPT] = xe_oa_set_no_preempt,
- [DRM_XE_OA_PROPERTY_NUM_SYNCS] = xe_oa_set_prop_num_syncs,
- [DRM_XE_OA_PROPERTY_SYNCS] = xe_oa_set_prop_syncs_user,
-};
-
-static int xe_oa_user_ext_set_property(struct xe_oa *oa, u64 extension,
- struct xe_oa_open_param *param)
-{
- u64 __user *address = u64_to_user_ptr(extension);
- struct drm_xe_ext_set_property ext;
- int err;
- u32 idx;
-
- err = __copy_from_user(&ext, address, sizeof(ext));
- if (XE_IOCTL_DBG(oa->xe, err))
- return -EFAULT;
-
- if (XE_IOCTL_DBG(oa->xe, ext.property >= ARRAY_SIZE(xe_oa_set_property_funcs)) ||
- XE_IOCTL_DBG(oa->xe, ext.pad))
- return -EINVAL;
-
- idx = array_index_nospec(ext.property, ARRAY_SIZE(xe_oa_set_property_funcs));
- return xe_oa_set_property_funcs[idx](oa, ext.value, param);
-}
-
-typedef int (*xe_oa_user_extension_fn)(struct xe_oa *oa, u64 extension,
- struct xe_oa_open_param *param);
-static const xe_oa_user_extension_fn xe_oa_user_extension_funcs[] = {
- [DRM_XE_OA_EXTENSION_SET_PROPERTY] = xe_oa_user_ext_set_property,
-};
-
-#define MAX_USER_EXTENSIONS 16
-static int xe_oa_user_extensions(struct xe_oa *oa, u64 extension, int ext_number,
- struct xe_oa_open_param *param)
-{
- u64 __user *address = u64_to_user_ptr(extension);
- struct drm_xe_user_extension ext;
- int err;
- u32 idx;
-
- if (XE_IOCTL_DBG(oa->xe, ext_number >= MAX_USER_EXTENSIONS))
- return -E2BIG;
-
- err = __copy_from_user(&ext, address, sizeof(ext));
- if (XE_IOCTL_DBG(oa->xe, err))
- return -EFAULT;
-
- if (XE_IOCTL_DBG(oa->xe, ext.pad) ||
- XE_IOCTL_DBG(oa->xe, ext.name >= ARRAY_SIZE(xe_oa_user_extension_funcs)))
- return -EINVAL;
-
- idx = array_index_nospec(ext.name, ARRAY_SIZE(xe_oa_user_extension_funcs));
- err = xe_oa_user_extension_funcs[idx](oa, extension, param);
- if (XE_IOCTL_DBG(oa->xe, err))
- return err;
-
- if (ext.next_extension)
- return xe_oa_user_extensions(oa, ext.next_extension, ++ext_number, param);
-
- return 0;
-}
-
-static int xe_oa_parse_syncs(struct xe_oa *oa, struct xe_oa_open_param *param)
-{
- int ret, num_syncs, num_ufence = 0;
-
- if (param->num_syncs && !param->syncs_user) {
- drm_dbg(&oa->xe->drm, "num_syncs specified without sync array\n");
- ret = -EINVAL;
- goto exit;
- }
-
- if (param->num_syncs) {
- param->syncs = kcalloc(param->num_syncs, sizeof(*param->syncs), GFP_KERNEL);
- if (!param->syncs) {
- ret = -ENOMEM;
- goto exit;
- }
- }
-
- for (num_syncs = 0; num_syncs < param->num_syncs; num_syncs++) {
- ret = xe_sync_entry_parse(oa->xe, param->xef, ¶m->syncs[num_syncs],
- ¶m->syncs_user[num_syncs], 0);
- if (ret)
- goto err_syncs;
-
- if (xe_sync_is_ufence(¶m->syncs[num_syncs]))
- num_ufence++;
- }
-
- if (XE_IOCTL_DBG(oa->xe, num_ufence > 1)) {
- ret = -EINVAL;
- goto err_syncs;
- }
-
- return 0;
-
-err_syncs:
- while (num_syncs--)
- xe_sync_entry_cleanup(¶m->syncs[num_syncs]);
- kfree(param->syncs);
-exit:
- return ret;
-}
-
/**
* xe_oa_stream_open_ioctl - Opens an OA stream
* @dev: @drm_device
--
2.41.0
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 6/7] drm/xe/oa: Add syncs support to OA config ioctl
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
` (4 preceding siblings ...)
2024-08-28 1:50 ` [PATCH 5/7] drm/xe/oa: Move functions up so they can be reused for config ioctl Ashutosh Dixit
@ 2024-08-28 1:50 ` Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 7/7] drm/xe/oa: Allow only certain property changes from config Ashutosh Dixit
` (8 subsequent siblings)
14 siblings, 0 replies; 31+ messages in thread
From: Ashutosh Dixit @ 2024-08-28 1:50 UTC (permalink / raw)
To: intel-xe; +Cc: Jose Souza
In addition to stream open, add xe_sync support to the OA config ioctl,
where it is even more useful. This allows e.g. Mesa to replay a workload
repeatedly on the GPU, each time with a different OA configuration, while
precisely controlling (at batch buffer granularity) the workload segment
for which a particular OA configuration is active, without introducing
stalls in the userspace pipeline.
v2: Emit OA config even when config id is same as previous, to ensure
consistent sync behavior (Jose)
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
---
drivers/gpu/drm/xe/xe_oa.c | 41 ++++++++++++++++++--------------
drivers/gpu/drm/xe/xe_oa_types.h | 3 +++
2 files changed, 26 insertions(+), 18 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index 8f65247b88377..7ad2725b752a8 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -884,6 +884,7 @@ static void xe_oa_stream_destroy(struct xe_oa_stream *stream)
xe_gt_WARN_ON(gt, xe_guc_pc_unset_gucrc_mode(>->uc.guc.pc));
xe_oa_free_configs(stream);
+ xe_file_put(stream->xef);
}
static int xe_oa_alloc_oa_buffer(struct xe_oa_stream *stream)
@@ -1443,36 +1444,38 @@ static int xe_oa_disable_locked(struct xe_oa_stream *stream)
static long xe_oa_config_locked(struct xe_oa_stream *stream, u64 arg)
{
- struct drm_xe_ext_set_property ext;
+ struct xe_oa_open_param param = {};
long ret = stream->oa_config->id;
struct xe_oa_config *config;
int err;
- err = __copy_from_user(&ext, u64_to_user_ptr(arg), sizeof(ext));
- if (XE_IOCTL_DBG(stream->oa->xe, err))
- return -EFAULT;
-
- if (XE_IOCTL_DBG(stream->oa->xe, ext.pad) ||
- XE_IOCTL_DBG(stream->oa->xe, ext.base.name != DRM_XE_OA_EXTENSION_SET_PROPERTY) ||
- XE_IOCTL_DBG(stream->oa->xe, ext.base.next_extension) ||
- XE_IOCTL_DBG(stream->oa->xe, ext.property != DRM_XE_OA_PROPERTY_OA_METRIC_SET))
- return -EINVAL;
+ err = xe_oa_user_extensions(stream->oa, arg, 0, ¶m);
+ if (err)
+ return err;
- config = xe_oa_get_oa_config(stream->oa, ext.value);
+ config = xe_oa_get_oa_config(stream->oa, param.metric_set);
if (!config)
return -ENODEV;
- if (config != stream->oa_config) {
- err = xe_oa_emit_oa_config(stream, config);
- if (!err)
- config = xchg(&stream->oa_config, config);
- else
- ret = err;
+ param.xef = stream->xef;
+ err = xe_oa_parse_syncs(stream->oa, ¶m);
+ if (err)
+ goto err_config_put;
+
+ stream->num_syncs = param.num_syncs;
+ stream->syncs = param.syncs;
+
+ err = xe_oa_emit_oa_config(stream, config);
+ if (!err) {
+ config = xchg(&stream->oa_config, config);
+ drm_dbg(&stream->oa->xe->drm, "changed to oa config uuid=%s\n",
+ stream->oa_config->uuid);
}
+err_config_put:
xe_oa_config_put(config);
- return ret;
+ return err ?: ret;
}
static long xe_oa_status_locked(struct xe_oa_stream *stream, unsigned long arg)
@@ -1714,6 +1717,7 @@ static int xe_oa_stream_init(struct xe_oa_stream *stream,
stream->period_exponent = param->period_exponent;
stream->no_preempt = param->no_preempt;
+ stream->xef = xe_file_get(param->xef);
stream->num_syncs = param->num_syncs;
stream->syncs = param->syncs;
@@ -1814,6 +1818,7 @@ static int xe_oa_stream_init(struct xe_oa_stream *stream,
err_free_configs:
xe_oa_free_configs(stream);
exit:
+ xe_file_put(stream->xef);
return ret;
}
diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
index 412f1460c1437..438e746e8e1f5 100644
--- a/drivers/gpu/drm/xe/xe_oa_types.h
+++ b/drivers/gpu/drm/xe/xe_oa_types.h
@@ -239,6 +239,9 @@ struct xe_oa_stream {
/** @no_preempt: Whether preemption and timeslicing is disabled for stream exec_q */
u32 no_preempt;
+ /** @xef: xe_file with which the stream was opened */
+ struct xe_file *xef;
+
/** @oa_fence_lock: Lock for struct xe_oa_fence */
spinlock_t oa_fence_lock;
--
2.41.0
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH 7/7] drm/xe/oa: Allow only certain property changes from config
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
` (5 preceding siblings ...)
2024-08-28 1:50 ` [PATCH 6/7] drm/xe/oa: Add syncs support to OA " Ashutosh Dixit
@ 2024-08-28 1:50 ` Ashutosh Dixit
2024-08-28 1:56 ` ✓ CI.Patch_applied: success for drm/xe/oa: xe_syncs for OA (rev4) Patchwork
` (7 subsequent siblings)
14 siblings, 0 replies; 31+ messages in thread
From: Ashutosh Dixit @ 2024-08-28 1:50 UTC (permalink / raw)
To: intel-xe; +Cc: Jose Souza
Whereas all properties can be specified during OA stream open, when the OA
stream is reconfigured only the config_id and syncs can be specified.
v2: Use separate function table for reconfig case (Jonathan)
Change bool function args to enum (Matt B)
v3: s/xe_oa_set_property_funcs/xe_oa_set_property_funcs_open/ (Jonathan)
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Suggested-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
---
drivers/gpu/drm/xe/xe_oa.c | 60 +++++++++++++++++++++++++++++---------
1 file changed, 46 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index 7ad2725b752a8..ef43f0eaa52dd 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -47,6 +47,11 @@ enum xe_oa_submit_deps {
XE_OA_SUBMIT_ADD_DEPS,
};
+enum xe_oa_user_extn_from {
+ XE_OA_USER_EXTN_FROM_OPEN,
+ XE_OA_USER_EXTN_FROM_CONFIG,
+};
+
struct xe_oa_reg {
struct xe_reg addr;
u32 value;
@@ -1235,9 +1240,15 @@ static int xe_oa_set_prop_syncs_user(struct xe_oa *oa, u64 value,
return 0;
}
+static int xe_oa_set_prop_ret_inval(struct xe_oa *oa, u64 value,
+ struct xe_oa_open_param *param)
+{
+ return -EINVAL;
+}
+
typedef int (*xe_oa_set_property_fn)(struct xe_oa *oa, u64 value,
struct xe_oa_open_param *param);
-static const xe_oa_set_property_fn xe_oa_set_property_funcs[] = {
+static const xe_oa_set_property_fn xe_oa_set_property_funcs_open[] = {
[DRM_XE_OA_PROPERTY_OA_UNIT_ID] = xe_oa_set_prop_oa_unit_id,
[DRM_XE_OA_PROPERTY_SAMPLE_OA] = xe_oa_set_prop_sample_oa,
[DRM_XE_OA_PROPERTY_OA_METRIC_SET] = xe_oa_set_prop_metric_set,
@@ -1251,8 +1262,22 @@ static const xe_oa_set_property_fn xe_oa_set_property_funcs[] = {
[DRM_XE_OA_PROPERTY_SYNCS] = xe_oa_set_prop_syncs_user,
};
-static int xe_oa_user_ext_set_property(struct xe_oa *oa, u64 extension,
- struct xe_oa_open_param *param)
+static const xe_oa_set_property_fn xe_oa_set_property_funcs_config[] = {
+ [DRM_XE_OA_PROPERTY_OA_UNIT_ID] = xe_oa_set_prop_ret_inval,
+ [DRM_XE_OA_PROPERTY_SAMPLE_OA] = xe_oa_set_prop_ret_inval,
+ [DRM_XE_OA_PROPERTY_OA_METRIC_SET] = xe_oa_set_prop_metric_set,
+ [DRM_XE_OA_PROPERTY_OA_FORMAT] = xe_oa_set_prop_ret_inval,
+ [DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT] = xe_oa_set_prop_ret_inval,
+ [DRM_XE_OA_PROPERTY_OA_DISABLED] = xe_oa_set_prop_ret_inval,
+ [DRM_XE_OA_PROPERTY_EXEC_QUEUE_ID] = xe_oa_set_prop_ret_inval,
+ [DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE] = xe_oa_set_prop_ret_inval,
+ [DRM_XE_OA_PROPERTY_NO_PREEMPT] = xe_oa_set_prop_ret_inval,
+ [DRM_XE_OA_PROPERTY_NUM_SYNCS] = xe_oa_set_prop_num_syncs,
+ [DRM_XE_OA_PROPERTY_SYNCS] = xe_oa_set_prop_syncs_user,
+};
+
+static int xe_oa_user_ext_set_property(struct xe_oa *oa, enum xe_oa_user_extn_from from,
+ u64 extension, struct xe_oa_open_param *param)
{
u64 __user *address = u64_to_user_ptr(extension);
struct drm_xe_ext_set_property ext;
@@ -1263,23 +1288,30 @@ static int xe_oa_user_ext_set_property(struct xe_oa *oa, u64 extension,
if (XE_IOCTL_DBG(oa->xe, err))
return -EFAULT;
- if (XE_IOCTL_DBG(oa->xe, ext.property >= ARRAY_SIZE(xe_oa_set_property_funcs)) ||
+ BUILD_BUG_ON(ARRAY_SIZE(xe_oa_set_property_funcs_open) !=
+ ARRAY_SIZE(xe_oa_set_property_funcs_config));
+
+ if (XE_IOCTL_DBG(oa->xe, ext.property >= ARRAY_SIZE(xe_oa_set_property_funcs_open)) ||
XE_IOCTL_DBG(oa->xe, ext.pad))
return -EINVAL;
- idx = array_index_nospec(ext.property, ARRAY_SIZE(xe_oa_set_property_funcs));
- return xe_oa_set_property_funcs[idx](oa, ext.value, param);
+ idx = array_index_nospec(ext.property, ARRAY_SIZE(xe_oa_set_property_funcs_open));
+
+ if (from == XE_OA_USER_EXTN_FROM_CONFIG)
+ return xe_oa_set_property_funcs_config[idx](oa, ext.value, param);
+ else
+ return xe_oa_set_property_funcs_open[idx](oa, ext.value, param);
}
-typedef int (*xe_oa_user_extension_fn)(struct xe_oa *oa, u64 extension,
- struct xe_oa_open_param *param);
+typedef int (*xe_oa_user_extension_fn)(struct xe_oa *oa, enum xe_oa_user_extn_from from,
+ u64 extension, struct xe_oa_open_param *param);
static const xe_oa_user_extension_fn xe_oa_user_extension_funcs[] = {
[DRM_XE_OA_EXTENSION_SET_PROPERTY] = xe_oa_user_ext_set_property,
};
#define MAX_USER_EXTENSIONS 16
-static int xe_oa_user_extensions(struct xe_oa *oa, u64 extension, int ext_number,
- struct xe_oa_open_param *param)
+static int xe_oa_user_extensions(struct xe_oa *oa, enum xe_oa_user_extn_from from, u64 extension,
+ int ext_number, struct xe_oa_open_param *param)
{
u64 __user *address = u64_to_user_ptr(extension);
struct drm_xe_user_extension ext;
@@ -1298,12 +1330,12 @@ static int xe_oa_user_extensions(struct xe_oa *oa, u64 extension, int ext_number
return -EINVAL;
idx = array_index_nospec(ext.name, ARRAY_SIZE(xe_oa_user_extension_funcs));
- err = xe_oa_user_extension_funcs[idx](oa, extension, param);
+ err = xe_oa_user_extension_funcs[idx](oa, from, extension, param);
if (XE_IOCTL_DBG(oa->xe, err))
return err;
if (ext.next_extension)
- return xe_oa_user_extensions(oa, ext.next_extension, ++ext_number, param);
+ return xe_oa_user_extensions(oa, from, ext.next_extension, ++ext_number, param);
return 0;
}
@@ -1449,7 +1481,7 @@ static long xe_oa_config_locked(struct xe_oa_stream *stream, u64 arg)
struct xe_oa_config *config;
int err;
- err = xe_oa_user_extensions(stream->oa, arg, 0, ¶m);
+ err = xe_oa_user_extensions(stream->oa, XE_OA_USER_EXTN_FROM_CONFIG, arg, 0, ¶m);
if (err)
return err;
@@ -2000,7 +2032,7 @@ int xe_oa_stream_open_ioctl(struct drm_device *dev, u64 data, struct drm_file *f
}
param.xef = xef;
- ret = xe_oa_user_extensions(oa, data, 0, ¶m);
+ ret = xe_oa_user_extensions(oa, XE_OA_USER_EXTN_FROM_OPEN, data, 0, ¶m);
if (ret)
return ret;
--
2.41.0
^ permalink raw reply related [flat|nested] 31+ messages in thread
* ✓ CI.Patch_applied: success for drm/xe/oa: xe_syncs for OA (rev4)
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
` (6 preceding siblings ...)
2024-08-28 1:50 ` [PATCH 7/7] drm/xe/oa: Allow only certain property changes from config Ashutosh Dixit
@ 2024-08-28 1:56 ` Patchwork
2024-08-28 1:57 ` ✓ CI.checkpatch: " Patchwork
` (6 subsequent siblings)
14 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2024-08-28 1:56 UTC (permalink / raw)
To: Ashutosh Dixit; +Cc: intel-xe
== Series Details ==
Series: drm/xe/oa: xe_syncs for OA (rev4)
URL : https://patchwork.freedesktop.org/series/137058/
State : success
== Summary ==
=== Applying kernel patches on branch 'drm-tip' with base: ===
Base commit: 2940d1fa7abe drm-tip: 2024y-08m-27d-22h-16m-15s UTC integration manifest
=== git am output follows ===
Applying: drm/xe/oa: Separate batch submission from waiting for completion
Applying: drm/xe/oa/uapi: Define and parse OA sync properties
Applying: drm/xe/oa: Add input fence dependencies
Applying: drm/xe/oa: Signal output fences
Applying: drm/xe/oa: Move functions up so they can be reused for config ioctl
Applying: drm/xe/oa: Add syncs support to OA config ioctl
Applying: drm/xe/oa: Allow only certain property changes from config
^ permalink raw reply [flat|nested] 31+ messages in thread
* ✓ CI.checkpatch: success for drm/xe/oa: xe_syncs for OA (rev4)
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
` (7 preceding siblings ...)
2024-08-28 1:56 ` ✓ CI.Patch_applied: success for drm/xe/oa: xe_syncs for OA (rev4) Patchwork
@ 2024-08-28 1:57 ` Patchwork
2024-08-28 1:58 ` ✓ CI.KUnit: " Patchwork
` (5 subsequent siblings)
14 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2024-08-28 1:57 UTC (permalink / raw)
To: Ashutosh Dixit; +Cc: intel-xe
== Series Details ==
Series: drm/xe/oa: xe_syncs for OA (rev4)
URL : https://patchwork.freedesktop.org/series/137058/
State : success
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
9fe5037901cabbcdf27a6fe0dfb047ca1474d363
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 4dfc350c7c6b6ec37c30013d7df6dc94b5fe9428
Author: Ashutosh Dixit <ashutosh.dixit@intel.com>
Date: Tue Aug 27 18:50:45 2024 -0700
drm/xe/oa: Allow only certain property changes from config
Whereas all properties can be specified during OA stream open, when the OA
stream is reconfigured only the config_id and syncs can be specified.
v2: Use separate function table for reconfig case (Jonathan)
Change bool function args to enum (Matt B)
v3: s/xe_oa_set_property_funcs/xe_oa_set_property_funcs_open/ (Jonathan)
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Suggested-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
+ /mt/dim checkpatch 2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4 drm-intel
ee49f08d2e49 drm/xe/oa: Separate batch submission from waiting for completion
4acee2e54ddf drm/xe/oa/uapi: Define and parse OA sync properties
0b5ed9994df5 drm/xe/oa: Add input fence dependencies
9e7f73199283 drm/xe/oa: Signal output fences
f243c89307a0 drm/xe/oa: Move functions up so they can be reused for config ioctl
34a4e3fa1172 drm/xe/oa: Add syncs support to OA config ioctl
4dfc350c7c6b drm/xe/oa: Allow only certain property changes from config
^ permalink raw reply [flat|nested] 31+ messages in thread
* ✓ CI.KUnit: success for drm/xe/oa: xe_syncs for OA (rev4)
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
` (8 preceding siblings ...)
2024-08-28 1:57 ` ✓ CI.checkpatch: " Patchwork
@ 2024-08-28 1:58 ` Patchwork
2024-08-28 2:10 ` ✓ CI.Build: " Patchwork
` (4 subsequent siblings)
14 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2024-08-28 1:58 UTC (permalink / raw)
To: Ashutosh Dixit; +Cc: intel-xe
== Series Details ==
Series: drm/xe/oa: xe_syncs for OA (rev4)
URL : https://patchwork.freedesktop.org/series/137058/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[01:57:16] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:57:20] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
156 | u64 ioread64_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
163 | u64 ioread64_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
170 | u64 ioread64be_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
178 | u64 ioread64be_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
[01:57:46] Starting KUnit Kernel (1/1)...
[01:57:46] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:57:46] =================== guc_dbm (7 subtests) ===================
[01:57:46] [PASSED] test_empty
[01:57:46] [PASSED] test_default
[01:57:46] ======================== test_size ========================
[01:57:46] [PASSED] 4
[01:57:46] [PASSED] 8
[01:57:46] [PASSED] 32
[01:57:46] [PASSED] 256
[01:57:46] ==================== [PASSED] test_size ====================
[01:57:46] ======================= test_reuse ========================
[01:57:46] [PASSED] 4
[01:57:46] [PASSED] 8
[01:57:46] [PASSED] 32
[01:57:46] [PASSED] 256
[01:57:46] =================== [PASSED] test_reuse ====================
[01:57:46] =================== test_range_overlap ====================
[01:57:46] [PASSED] 4
[01:57:46] [PASSED] 8
[01:57:46] [PASSED] 32
[01:57:46] [PASSED] 256
[01:57:46] =============== [PASSED] test_range_overlap ================
[01:57:46] =================== test_range_compact ====================
[01:57:46] [PASSED] 4
[01:57:46] [PASSED] 8
[01:57:46] [PASSED] 32
[01:57:46] [PASSED] 256
[01:57:46] =============== [PASSED] test_range_compact ================
[01:57:46] ==================== test_range_spare =====================
[01:57:46] [PASSED] 4
[01:57:46] [PASSED] 8
[01:57:46] [PASSED] 32
[01:57:46] [PASSED] 256
[01:57:46] ================ [PASSED] test_range_spare =================
[01:57:46] ===================== [PASSED] guc_dbm =====================
[01:57:46] =================== guc_idm (6 subtests) ===================
[01:57:46] [PASSED] bad_init
[01:57:46] [PASSED] no_init
[01:57:46] [PASSED] init_fini
[01:57:46] [PASSED] check_used
[01:57:46] [PASSED] check_quota
[01:57:46] [PASSED] check_all
[01:57:46] ===================== [PASSED] guc_idm =====================
[01:57:46] ================== no_relay (3 subtests) ===================
[01:57:46] [PASSED] xe_drops_guc2pf_if_not_ready
[01:57:46] [PASSED] xe_drops_guc2vf_if_not_ready
[01:57:46] [PASSED] xe_rejects_send_if_not_ready
[01:57:46] ==================== [PASSED] no_relay =====================
[01:57:46] ================== pf_relay (14 subtests) ==================
[01:57:46] [PASSED] pf_rejects_guc2pf_too_short
[01:57:46] [PASSED] pf_rejects_guc2pf_too_long
[01:57:46] [PASSED] pf_rejects_guc2pf_no_payload
[01:57:46] [PASSED] pf_fails_no_payload
[01:57:46] [PASSED] pf_fails_bad_origin
[01:57:46] [PASSED] pf_fails_bad_type
[01:57:46] [PASSED] pf_txn_reports_error
[01:57:46] [PASSED] pf_txn_sends_pf2guc
[01:57:46] [PASSED] pf_sends_pf2guc
[01:57:46] [SKIPPED] pf_loopback_nop
[01:57:46] [SKIPPED] pf_loopback_echo
[01:57:46] [SKIPPED] pf_loopback_fail
[01:57:46] [SKIPPED] pf_loopback_busy
[01:57:46] [SKIPPED] pf_loopback_retry
[01:57:46] ==================== [PASSED] pf_relay =====================
[01:57:46] ================== vf_relay (3 subtests) ===================
[01:57:46] [PASSED] vf_rejects_guc2vf_too_short
[01:57:46] [PASSED] vf_rejects_guc2vf_too_long
[01:57:46] [PASSED] vf_rejects_guc2vf_no_payload
[01:57:46] ==================== [PASSED] vf_relay =====================
[01:57:46] ================= pf_service (11 subtests) =================
[01:57:46] [PASSED] pf_negotiate_any
[01:57:46] [PASSED] pf_negotiate_base_match
[01:57:46] [PASSED] pf_negotiate_base_newer
[01:57:46] [PASSED] pf_negotiate_base_next
[01:57:46] [SKIPPED] pf_negotiate_base_older
[01:57:46] [PASSED] pf_negotiate_base_prev
[01:57:46] [PASSED] pf_negotiate_latest_match
[01:57:46] [PASSED] pf_negotiate_latest_newer
[01:57:46] [PASSED] pf_negotiate_latest_next
[01:57:46] [SKIPPED] pf_negotiate_latest_older
[01:57:46] [SKIPPED] pf_negotiate_latest_prev
[01:57:46] =================== [PASSED] pf_service ====================
[01:57:46] ===================== lmtt (1 subtest) =====================
[01:57:46] ======================== test_ops =========================
[01:57:46] [PASSED] 2-level
[01:57:46] [PASSED] multi-level
[01:57:46] ==================== [PASSED] test_ops =====================
[01:57:46] ====================== [PASSED] lmtt =======================
[01:57:46] =================== xe_mocs (2 subtests) ===================
[01:57:46] ================ xe_live_mocs_kernel_kunit ================
[01:57:46] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[01:57:46] ================ xe_live_mocs_reset_kunit =================
[01:57:46] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[01:57:46] ==================== [SKIPPED] xe_mocs =====================
[01:57:46] ================= xe_migrate (2 subtests) ==================
[01:57:46] ================= xe_migrate_sanity_kunit =================
[01:57:46] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[01:57:46] ================== xe_validate_ccs_kunit ==================
[01:57:46] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[01:57:46] =================== [SKIPPED] xe_migrate ===================
[01:57:46] ================== xe_dma_buf (1 subtest) ==================
[01:57:46] ==================== xe_dma_buf_kunit =====================
[01:57:46] ================ [SKIPPED] xe_dma_buf_kunit ================
[01:57:46] =================== [SKIPPED] xe_dma_buf ===================
[01:57:46] ==================== xe_bo (2 subtests) ====================
[01:57:46] ================== xe_ccs_migrate_kunit ===================
[01:57:46] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[01:57:46] ==================== xe_bo_evict_kunit ====================
[01:57:46] =============== [SKIPPED] xe_bo_evict_kunit ================
[01:57:46] ===================== [SKIPPED] xe_bo ======================
[01:57:46] ==================== args (11 subtests) ====================
[01:57:46] [PASSED] count_args_test
[01:57:46] [PASSED] call_args_example
[01:57:46] [PASSED] call_args_test
[01:57:46] [PASSED] drop_first_arg_example
[01:57:46] [PASSED] drop_first_arg_test
[01:57:46] [PASSED] first_arg_example
[01:57:46] [PASSED] first_arg_test
[01:57:46] [PASSED] last_arg_example
[01:57:46] [PASSED] last_arg_test
[01:57:46] [PASSED] pick_arg_example
[01:57:46] [PASSED] sep_comma_example
[01:57:46] ====================== [PASSED] args =======================
[01:57:46] =================== xe_pci (2 subtests) ====================
stty: 'standard input': Inappropriate ioctl for device
[01:57:46] [PASSED] xe_gmdid_graphics_ip
[01:57:46] [PASSED] xe_gmdid_media_ip
[01:57:46] ===================== [PASSED] xe_pci ======================
[01:57:46] =================== xe_rtp (2 subtests) ====================
[01:57:46] =============== xe_rtp_process_to_sr_tests ================
[01:57:46] [PASSED] coalesce-same-reg
[01:57:46] [PASSED] no-match-no-add
[01:57:46] [PASSED] match-or
[01:57:46] [PASSED] match-or-xfail
[01:57:46] [PASSED] no-match-no-add-multiple-rules
[01:57:46] [PASSED] two-regs-two-entries
[01:57:46] [PASSED] clr-one-set-other
[01:57:46] [PASSED] set-field
[01:57:46] [PASSED] conflict-duplicate
[01:57:46] [PASSED] conflict-not-disjoint
[01:57:46] [PASSED] conflict-reg-type
[01:57:46] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[01:57:46] ================== xe_rtp_process_tests ===================
[01:57:46] [PASSED] active1
[01:57:46] [PASSED] active2
[01:57:46] [PASSED] active-inactive
[01:57:46] [PASSED] inactive-active
[01:57:46] [PASSED] inactive-1st_or_active-inactive
[01:57:46] [PASSED] inactive-2nd_or_active-inactive
[01:57:46] [PASSED] inactive-last_or_active-inactive
[01:57:46] [PASSED] inactive-no_or_active-inactive
[01:57:46] ============== [PASSED] xe_rtp_process_tests ===============
[01:57:46] ===================== [PASSED] xe_rtp ======================
[01:57:46] ==================== xe_wa (1 subtest) =====================
[01:57:46] ======================== xe_wa_gt =========================
[01:57:46] [PASSED] TIGERLAKE (B0)
[01:57:46] [PASSED] DG1 (A0)
[01:57:46] [PASSED] DG1 (B0)
[01:57:46] [PASSED] ALDERLAKE_S (A0)
[01:57:46] [PASSED] ALDERLAKE_S (B0)
[01:57:46] [PASSED] ALDERLAKE_S (C0)
[01:57:46] [PASSED] ALDERLAKE_S (D0)
[01:57:46] [PASSED] ALDERLAKE_P (A0)
[01:57:46] [PASSED] ALDERLAKE_P (B0)
[01:57:46] [PASSED] ALDERLAKE_P (C0)
[01:57:46] [PASSED] ALDERLAKE_S_RPLS (D0)
[01:57:46] [PASSED] ALDERLAKE_P_RPLU (E0)
[01:57:46] [PASSED] DG2_G10 (C0)
[01:57:46] [PASSED] DG2_G11 (B1)
[01:57:46] [PASSED] DG2_G12 (A1)
[01:57:46] [PASSED] METEORLAKE (g:A0, m:A0)
[01:57:46] [PASSED] METEORLAKE (g:A0, m:A0)
[01:57:46] [PASSED] METEORLAKE (g:A0, m:A0)
[01:57:46] [PASSED] LUNARLAKE (g:A0, m:A0)
[01:57:46] [PASSED] LUNARLAKE (g:B0, m:A0)
[01:57:46] [PASSED] BATTLEMAGE (g:A0, m:A1)
[01:57:46] ==================== [PASSED] xe_wa_gt =====================
[01:57:46] ====================== [PASSED] xe_wa ======================
[01:57:46] ============================================================
[01:57:46] Testing complete. Ran 121 tests: passed: 106, skipped: 15
[01:57:46] Elapsed time: 30.126s total, 4.214s configuring, 25.642s building, 0.228s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[01:57:46] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:57:48] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
156 | u64 ioread64_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
163 | u64 ioread64_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
170 | u64 ioread64be_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
178 | u64 ioread64be_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
[01:58:09] Starting KUnit Kernel (1/1)...
[01:58:09] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:58:09] ============ drm_test_pick_cmdline (2 subtests) ============
[01:58:09] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[01:58:09] =============== drm_test_pick_cmdline_named ===============
[01:58:09] [PASSED] NTSC
[01:58:09] [PASSED] NTSC-J
[01:58:09] [PASSED] PAL
[01:58:09] [PASSED] PAL-M
[01:58:09] =========== [PASSED] drm_test_pick_cmdline_named ===========
[01:58:09] ============== [PASSED] drm_test_pick_cmdline ==============
[01:58:09] ================== drm_buddy (7 subtests) ==================
[01:58:09] [PASSED] drm_test_buddy_alloc_limit
[01:58:09] [PASSED] drm_test_buddy_alloc_optimistic
[01:58:09] [PASSED] drm_test_buddy_alloc_pessimistic
[01:58:09] [PASSED] drm_test_buddy_alloc_pathological
[01:58:09] [PASSED] drm_test_buddy_alloc_contiguous
[01:58:09] [PASSED] drm_test_buddy_alloc_clear
[01:58:09] [PASSED] drm_test_buddy_alloc_range_bias
[01:58:09] ==================== [PASSED] drm_buddy ====================
[01:58:09] ============= drm_cmdline_parser (40 subtests) =============
[01:58:09] [PASSED] drm_test_cmdline_force_d_only
[01:58:09] [PASSED] drm_test_cmdline_force_D_only_dvi
[01:58:09] [PASSED] drm_test_cmdline_force_D_only_hdmi
[01:58:09] [PASSED] drm_test_cmdline_force_D_only_not_digital
[01:58:09] [PASSED] drm_test_cmdline_force_e_only
[01:58:09] [PASSED] drm_test_cmdline_res
[01:58:09] [PASSED] drm_test_cmdline_res_vesa
[01:58:09] [PASSED] drm_test_cmdline_res_vesa_rblank
[01:58:09] [PASSED] drm_test_cmdline_res_rblank
[01:58:09] [PASSED] drm_test_cmdline_res_bpp
[01:58:09] [PASSED] drm_test_cmdline_res_refresh
[01:58:09] [PASSED] drm_test_cmdline_res_bpp_refresh
[01:58:09] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[01:58:09] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[01:58:09] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[01:58:09] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[01:58:09] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[01:58:09] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[01:58:09] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[01:58:09] [PASSED] drm_test_cmdline_res_margins_force_on
[01:58:09] [PASSED] drm_test_cmdline_res_vesa_margins
[01:58:09] [PASSED] drm_test_cmdline_name
[01:58:09] [PASSED] drm_test_cmdline_name_bpp
[01:58:09] [PASSED] drm_test_cmdline_name_option
[01:58:09] [PASSED] drm_test_cmdline_name_bpp_option
[01:58:09] [PASSED] drm_test_cmdline_rotate_0
[01:58:09] [PASSED] drm_test_cmdline_rotate_90
[01:58:09] [PASSED] drm_test_cmdline_rotate_180
[01:58:09] [PASSED] drm_test_cmdline_rotate_270
[01:58:09] [PASSED] drm_test_cmdline_hmirror
[01:58:09] [PASSED] drm_test_cmdline_vmirror
[01:58:09] [PASSED] drm_test_cmdline_margin_options
[01:58:09] [PASSED] drm_test_cmdline_multiple_options
[01:58:09] [PASSED] drm_test_cmdline_bpp_extra_and_option
[01:58:09] [PASSED] drm_test_cmdline_extra_and_option
[01:58:09] [PASSED] drm_test_cmdline_freestanding_options
[01:58:09] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[01:58:09] [PASSED] drm_test_cmdline_panel_orientation
[01:58:09] ================ drm_test_cmdline_invalid =================
[01:58:09] [PASSED] margin_only
[01:58:09] [PASSED] interlace_only
[01:58:09] [PASSED] res_missing_x
[01:58:09] [PASSED] res_missing_y
[01:58:09] [PASSED] res_bad_y
[01:58:09] [PASSED] res_missing_y_bpp
[01:58:09] [PASSED] res_bad_bpp
[01:58:09] [PASSED] res_bad_refresh
[01:58:09] [PASSED] res_bpp_refresh_force_on_off
[01:58:09] [PASSED] res_invalid_mode
[01:58:09] [PASSED] res_bpp_wrong_place_mode
[01:58:09] [PASSED] name_bpp_refresh
[01:58:09] [PASSED] name_refresh
[01:58:09] [PASSED] name_refresh_wrong_mode
[01:58:09] [PASSED] name_refresh_invalid_mode
[01:58:09] [PASSED] rotate_multiple
[01:58:09] [PASSED] rotate_invalid_val
[01:58:09] [PASSED] rotate_truncated
[01:58:09] [PASSED] invalid_option
[01:58:09] [PASSED] invalid_tv_option
[01:58:09] [PASSED] truncated_tv_option
[01:58:09] ============ [PASSED] drm_test_cmdline_invalid =============
[01:58:09] =============== drm_test_cmdline_tv_options ===============
[01:58:09] [PASSED] NTSC
[01:58:09] [PASSED] NTSC_443
[01:58:09] [PASSED] NTSC_J
[01:58:09] [PASSED] PAL
[01:58:09] [PASSED] PAL_M
[01:58:09] [PASSED] PAL_N
[01:58:09] [PASSED] SECAM
[01:58:09] [PASSED] MONO_525
[01:58:09] [PASSED] MONO_625
[01:58:09] =========== [PASSED] drm_test_cmdline_tv_options ===========
[01:58:09] =============== [PASSED] drm_cmdline_parser ================
[01:58:09] ========== drmm_connector_hdmi_init (19 subtests) ==========
[01:58:09] [PASSED] drm_test_connector_hdmi_init_valid
[01:58:09] [PASSED] drm_test_connector_hdmi_init_bpc_8
[01:58:09] [PASSED] drm_test_connector_hdmi_init_bpc_10
[01:58:09] [PASSED] drm_test_connector_hdmi_init_bpc_12
[01:58:09] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[01:58:09] [PASSED] drm_test_connector_hdmi_init_bpc_null
[01:58:09] [PASSED] drm_test_connector_hdmi_init_formats_empty
[01:58:09] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[01:58:09] [PASSED] drm_test_connector_hdmi_init_null_ddc
[01:58:09] [PASSED] drm_test_connector_hdmi_init_null_product
[01:58:09] [PASSED] drm_test_connector_hdmi_init_null_vendor
[01:58:09] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[01:58:09] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[01:58:09] [PASSED] drm_test_connector_hdmi_init_product_valid
[01:58:09] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[01:58:09] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[01:58:09] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[01:58:09] ========= drm_test_connector_hdmi_init_type_valid =========
[01:58:09] [PASSED] HDMI-A
[01:58:09] [PASSED] HDMI-B
[01:58:09] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[01:58:09] ======== drm_test_connector_hdmi_init_type_invalid ========
[01:58:09] [PASSED] Unknown
[01:58:09] [PASSED] VGA
[01:58:09] [PASSED] DVI-I
[01:58:09] [PASSED] DVI-D
[01:58:09] [PASSED] DVI-A
[01:58:09] [PASSED] Composite
[01:58:09] [PASSED] SVIDEO
[01:58:09] [PASSED] LVDS
[01:58:09] [PASSED] Component
[01:58:09] [PASSED] DIN
[01:58:09] [PASSED] DP
[01:58:09] [PASSED] TV
[01:58:09] [PASSED] eDP
[01:58:09] [PASSED] Virtual
[01:58:09] [PASSED] DSI
[01:58:09] [PASSED] DPI
[01:58:09] [PASSED] Writeback
[01:58:09] [PASSED] SPI
[01:58:09] [PASSED] USB
[01:58:09] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[01:58:09] ============ [PASSED] drmm_connector_hdmi_init =============
[01:58:09] ============= drmm_connector_init (3 subtests) =============
[01:58:09] [PASSED] drm_test_drmm_connector_init
[01:58:09] [PASSED] drm_test_drmm_connector_init_null_ddc
[01:58:09] ========= drm_test_drmm_connector_init_type_valid =========
[01:58:09] [PASSED] Unknown
[01:58:09] [PASSED] VGA
[01:58:09] [PASSED] DVI-I
[01:58:09] [PASSED] DVI-D
[01:58:09] [PASSED] DVI-A
[01:58:09] [PASSED] Composite
[01:58:09] [PASSED] SVIDEO
[01:58:09] [PASSED] LVDS
[01:58:09] [PASSED] Component
[01:58:09] [PASSED] DIN
[01:58:09] [PASSED] DP
[01:58:09] [PASSED] HDMI-A
[01:58:09] [PASSED] HDMI-B
[01:58:09] [PASSED] TV
[01:58:09] [PASSED] eDP
[01:58:09] [PASSED] Virtual
[01:58:09] [PASSED] DSI
[01:58:09] [PASSED] DPI
[01:58:09] [PASSED] Writeback
[01:58:09] [PASSED] SPI
[01:58:09] [PASSED] USB
[01:58:09] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[01:58:09] =============== [PASSED] drmm_connector_init ===============
[01:58:09] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[01:58:09] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[01:58:09] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[01:58:09] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[01:58:09] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[01:58:09] ========== drm_test_get_tv_mode_from_name_valid ===========
[01:58:09] [PASSED] NTSC
[01:58:09] [PASSED] NTSC-443
[01:58:09] [PASSED] NTSC-J
[01:58:09] [PASSED] PAL
[01:58:09] [PASSED] PAL-M
[01:58:09] [PASSED] PAL-N
[01:58:09] [PASSED] SECAM
[01:58:09] [PASSED] Mono
[01:58:09] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[01:58:09] [PASSED] drm_test_get_tv_mode_from_name_truncated
[01:58:09] ============ [PASSED] drm_get_tv_mode_from_name ============
[01:58:09] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[01:58:09] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[01:58:09] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[01:58:09] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[01:58:09] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[01:58:09] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[01:58:09] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[01:58:09] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[01:58:09] [PASSED] VIC 96
[01:58:09] [PASSED] VIC 97
[01:58:09] [PASSED] VIC 101
[01:58:09] [PASSED] VIC 102
[01:58:09] [PASSED] VIC 106
[01:58:09] [PASSED] VIC 107
[01:58:09] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[01:58:09] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[01:58:09] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[01:58:09] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[01:58:09] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[01:58:09] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[01:58:09] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[01:58:09] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[01:58:09] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[01:58:09] [PASSED] Automatic
[01:58:09] [PASSED] Full
[01:58:09] [PASSED] Limited 16:235
[01:58:09] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[01:58:09] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[01:58:09] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[01:58:09] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[01:58:09] === drm_test_drm_hdmi_connector_get_output_format_name ====
[01:58:09] [PASSED] RGB
[01:58:09] [PASSED] YUV 4:2:0
[01:58:09] [PASSED] YUV 4:2:2
[01:58:09] [PASSED] YUV 4:4:4
[01:58:09] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[01:58:09] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[01:58:09] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[01:58:09] ============= drm_damage_helper (21 subtests) ==============
[01:58:09] [PASSED] drm_test_damage_iter_no_damage
[01:58:09] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[01:58:09] [PASSED] drm_test_damage_iter_no_damage_src_moved
[01:58:09] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[01:58:09] [PASSED] drm_test_damage_iter_no_damage_not_visible
[01:58:09] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[01:58:09] [PASSED] drm_test_damage_iter_no_damage_no_fb
[01:58:09] [PASSED] drm_test_damage_iter_simple_damage
[01:58:09] [PASSED] drm_test_damage_iter_single_damage
[01:58:09] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[01:58:09] [PASSED] drm_test_damage_iter_single_damage_outside_src
[01:58:09] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[01:58:09] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[01:58:09] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[01:58:09] [PASSED] drm_test_damage_iter_single_damage_src_moved
[01:58:09] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[01:58:09] [PASSED] drm_test_damage_iter_damage
[01:58:09] [PASSED] drm_test_damage_iter_damage_one_intersect
[01:58:09] [PASSED] drm_test_damage_iter_damage_one_outside
[01:58:09] [PASSED] drm_test_damage_iter_damage_src_moved
[01:58:09] [PASSED] drm_test_damage_iter_damage_not_visible
[01:58:09] ================ [PASSED] drm_damage_helper ================
[01:58:09] ============== drm_dp_mst_helper (3 subtests) ==============
[01:58:09] ============== drm_test_dp_mst_calc_pbn_mode ==============
[01:58:09] [PASSED] Clock 154000 BPP 30 DSC disabled
[01:58:09] [PASSED] Clock 234000 BPP 30 DSC disabled
[01:58:09] [PASSED] Clock 297000 BPP 24 DSC disabled
[01:58:09] [PASSED] Clock 332880 BPP 24 DSC enabled
[01:58:09] [PASSED] Clock 324540 BPP 24 DSC enabled
[01:58:09] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[01:58:09] ============== drm_test_dp_mst_calc_pbn_div ===============
[01:58:09] [PASSED] Link rate 2000000 lane count 4
[01:58:09] [PASSED] Link rate 2000000 lane count 2
[01:58:09] [PASSED] Link rate 2000000 lane count 1
[01:58:09] [PASSED] Link rate 1350000 lane count 4
[01:58:09] [PASSED] Link rate 1350000 lane count 2
[01:58:09] [PASSED] Link rate 1350000 lane count 1
[01:58:09] [PASSED] Link rate 1000000 lane count 4
[01:58:09] [PASSED] Link rate 1000000 lane count 2
[01:58:09] [PASSED] Link rate 1000000 lane count 1
[01:58:09] [PASSED] Link rate 810000 lane count 4
[01:58:09] [PASSED] Link rate 810000 lane count 2
[01:58:09] [PASSED] Link rate 810000 lane count 1
[01:58:09] [PASSED] Link rate 540000 lane count 4
[01:58:09] [PASSED] Link rate 540000 lane count 2
[01:58:09] [PASSED] Link rate 540000 lane count 1
[01:58:09] [PASSED] Link rate 270000 lane count 4
[01:58:09] [PASSED] Link rate 270000 lane count 2
[01:58:09] [PASSED] Link rate 270000 lane count 1
[01:58:09] [PASSED] Link rate 162000 lane count 4
[01:58:09] [PASSED] Link rate 162000 lane count 2
[01:58:09] [PASSED] Link rate 162000 lane count 1
[01:58:09] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[01:58:09] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[01:58:09] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[01:58:09] [PASSED] DP_POWER_UP_PHY with port number
[01:58:09] [PASSED] DP_POWER_DOWN_PHY with port number
[01:58:09] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[01:58:09] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[01:58:09] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[01:58:09] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[01:58:09] [PASSED] DP_QUERY_PAYLOAD with port number
[01:58:09] [PASSED] DP_QUERY_PAYLOAD with VCPI
[01:58:09] [PASSED] DP_REMOTE_DPCD_READ with port number
[01:58:09] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[01:58:09] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[01:58:09] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[01:58:09] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[01:58:09] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[01:58:09] [PASSED] DP_REMOTE_I2C_READ with port number
[01:58:09] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[01:58:09] [PASSED] DP_REMOTE_I2C_READ with transactions array
[01:58:09] [PASSED] DP_REMOTE_I2C_WRITE with port number
[01:58:09] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[01:58:09] [PASSED] DP_REMOTE_I2C_WRITE with data array
[01:58:09] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[01:58:09] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[01:58:09] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[01:58:09] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[01:58:09] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[01:58:09] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[01:58:09] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[01:58:09] ================ [PASSED] drm_dp_mst_helper ================
[01:58:09] ================== drm_exec (7 subtests) ===================
[01:58:09] [PASSED] sanitycheck
[01:58:09] [PASSED] test_lock
[01:58:09] [PASSED] test_lock_unlock
[01:58:09] [PASSED] test_duplicates
[01:58:09] [PASSED] test_prepare
[01:58:09] [PASSED] test_prepare_array
[01:58:09] [PASSED] test_multiple_loops
[01:58:09] ==================== [PASSED] drm_exec =====================
[01:58:09] =========== drm_format_helper_test (17 subtests) ===========
[01:58:09] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[01:58:09] [PASSED] single_pixel_source_buffer
[01:58:09] [PASSED] single_pixel_clip_rectangle
[01:58:09] [PASSED] well_known_colors
[01:58:09] [PASSED] destination_pitch
[01:58:09] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[01:58:09] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[01:58:09] [PASSED] single_pixel_source_buffer
[01:58:09] [PASSED] single_pixel_clip_rectangle
[01:58:09] [PASSED] well_known_colors
[01:58:09] [PASSED] destination_pitch
[01:58:09] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[01:58:09] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[01:58:09] [PASSED] single_pixel_source_buffer
[01:58:09] [PASSED] single_pixel_clip_rectangle
[01:58:09] [PASSED] well_known_colors
[01:58:09] [PASSED] destination_pitch
[01:58:09] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[01:58:09] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[01:58:09] [PASSED] single_pixel_source_buffer
[01:58:09] [PASSED] single_pixel_clip_rectangle
[01:58:09] [PASSED] well_known_colors
[01:58:09] [PASSED] destination_pitch
[01:58:09] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[01:58:09] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[01:58:09] [PASSED] single_pixel_source_buffer
[01:58:09] [PASSED] single_pixel_clip_rectangle
[01:58:09] [PASSED] well_known_colors
[01:58:09] [PASSED] destination_pitch
[01:58:09] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[01:58:09] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[01:58:09] [PASSED] single_pixel_source_buffer
[01:58:09] [PASSED] single_pixel_clip_rectangle
[01:58:09] [PASSED] well_known_colors
[01:58:09] [PASSED] destination_pitch
[01:58:09] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[01:58:09] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[01:58:09] [PASSED] single_pixel_source_buffer
[01:58:09] [PASSED] single_pixel_clip_rectangle
[01:58:09] [PASSED] well_known_colors
[01:58:09] [PASSED] destination_pitch
[01:58:09] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[01:58:09] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[01:58:09] [PASSED] single_pixel_source_buffer
[01:58:09] [PASSED] single_pixel_clip_rectangle
[01:58:09] [PASSED] well_known_colors
[01:58:09] [PASSED] destination_pitch
[01:58:09] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[01:58:09] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[01:58:09] [PASSED] single_pixel_source_buffer
[01:58:09] [PASSED] single_pixel_clip_rectangle
[01:58:09] [PASSED] well_known_colors
[01:58:09] [PASSED] destination_pitch
[01:58:09] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[01:58:09] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[01:58:09] [PASSED] single_pixel_source_buffer
[01:58:09] [PASSED] single_pixel_clip_rectangle
[01:58:09] [PASSED] well_known_colors
[01:58:09] [PASSED] destination_pitch
[01:58:09] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[01:58:09] ============== drm_test_fb_xrgb8888_to_mono ===============
[01:58:09] [PASSED] single_pixel_source_buffer
[01:58:09] [PASSED] single_pixel_clip_rectangle
[01:58:09] [PASSED] well_known_colors
[01:58:09] [PASSED] destination_pitch
[01:58:09] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[01:58:09] ==================== drm_test_fb_swab =====================
[01:58:09] [PASSED] single_pixel_source_buffer
[01:58:09] [PASSED] single_pixel_clip_rectangle
[01:58:09] [PASSED] well_known_colors
[01:58:09] [PASSED] destination_pitch
[01:58:09] ================ [PASSED] drm_test_fb_swab =================
[01:58:09] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[01:58:09] [PASSED] single_pixel_source_buffer
[01:58:09] [PASSED] single_pixel_clip_rectangle
[01:58:09] [PASSED] well_known_colors
[01:58:09] [PASSED] destination_pitch
[01:58:09] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[01:58:09] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[01:58:09] [PASSED] single_pixel_source_buffer
[01:58:09] [PASSED] single_pixel_clip_rectangle
[01:58:09] [PASSED] well_known_colors
[01:58:09] [PASSED] destination_pitch
[01:58:09] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[01:58:09] ================= drm_test_fb_clip_offset =================
[01:58:09] [PASSED] pass through
[01:58:09] [PASSED] horizontal offset
[01:58:09] [PASSED] vertical offset
[01:58:09] [PASSED] horizontal and vertical offset
[01:58:09] [PASSED] horizontal offset (custom pitch)
[01:58:09] [PASSED] vertical offset (custom pitch)
[01:58:09] [PASSED] horizontal and vertical offset (custom pitch)
[01:58:09] ============= [PASSED] drm_test_fb_clip_offset =============
[01:58:09] ============== drm_test_fb_build_fourcc_list ==============
[01:58:09] [PASSED] no native formats
[01:58:09] [PASSED] XRGB8888 as native format
[01:58:09] [PASSED] remove duplicates
[01:58:09] [PASSED] convert alpha formats
[01:58:09] [PASSED] random formats
[01:58:09] ========== [PASSED] drm_test_fb_build_fourcc_list ==========
[01:58:09] =================== drm_test_fb_memcpy ====================
[01:58:09] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[01:58:09] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[01:58:09] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[01:58:09] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[01:58:09] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[01:58:09] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[01:58:09] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[01:58:09] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[01:58:09] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[01:58:09] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[01:58:09] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[01:58:09] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[01:58:09] =============== [PASSED] drm_test_fb_memcpy ================
[01:58:09] ============= [PASSED] drm_format_helper_test ==============
[01:58:09] ================= drm_format (18 subtests) =================
[01:58:09] [PASSED] drm_test_format_block_width_invalid
[01:58:09] [PASSED] drm_test_format_block_width_one_plane
[01:58:09] [PASSED] drm_test_format_block_width_two_plane
[01:58:09] [PASSED] drm_test_format_block_width_three_plane
[01:58:09] [PASSED] drm_test_format_block_width_tiled
[01:58:09] [PASSED] drm_test_format_block_height_invalid
[01:58:09] [PASSED] drm_test_format_block_height_one_plane
[01:58:09] [PASSED] drm_test_format_block_height_two_plane
[01:58:09] [PASSED] drm_test_format_block_height_three_plane
[01:58:09] [PASSED] drm_test_format_block_height_tiled
[01:58:09] [PASSED] drm_test_format_min_pitch_invalid
[01:58:09] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[01:58:09] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[01:58:09] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[01:58:09] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[01:58:09] [PASSED] drm_test_format_min_pitch_two_plane
[01:58:09] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[01:58:09] [PASSED] drm_test_format_min_pitch_tiled
[01:58:09] =================== [PASSED] drm_format ====================
[01:58:09] =============== drm_framebuffer (1 subtest) ================
[01:58:09] =============== drm_test_framebuffer_create ===============
[01:58:09] [PASSED] ABGR8888 normal sizes
[01:58:09] [PASSED] ABGR8888 max sizes
[01:58:09] [PASSED] ABGR8888 pitch greater than min required
[01:58:09] [PASSED] ABGR8888 pitch less than min required
[01:58:09] [PASSED] ABGR8888 Invalid width
[01:58:09] [PASSED] ABGR8888 Invalid buffer handle
[01:58:09] [PASSED] No pixel format
[01:58:09] [PASSED] ABGR8888 Width 0
[01:58:09] [PASSED] ABGR8888 Height 0
[01:58:09] [PASSED] ABGR8888 Out of bound height * pitch combination
[01:58:09] [PASSED] ABGR8888 Large buffer offset
[01:58:09] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[01:58:09] [PASSED] ABGR8888 Valid buffer modifier
[01:58:09] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[01:58:09] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[01:58:09] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[01:58:09] [PASSED] NV12 Normal sizes
[01:58:09] [PASSED] NV12 Max sizes
[01:58:09] [PASSED] NV12 Invalid pitch
[01:58:09] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[01:58:09] [PASSED] NV12 different modifier per-plane
[01:58:09] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[01:58:09] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[01:58:09] [PASSED] NV12 Modifier for inexistent plane
[01:58:09] [PASSED] NV12 Handle for inexistent plane
[01:58:09] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[01:58:09] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[01:58:09] [PASSED] YVU420 Normal sizes
[01:58:09] [PASSED] YVU420 Max sizes
[01:58:09] [PASSED] YVU420 Invalid pitch
[01:58:09] [PASSED] YVU420 Different pitches
[01:58:09] [PASSED] YVU420 Different buffer offsets/pitches
[01:58:09] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[01:58:09] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[01:58:09] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[01:58:09] [PASSED] YVU420 Valid modifier
[01:58:09] [PASSED] YVU420 Different modifiers per plane
[01:58:09] [PASSED] YVU420 Modifier for inexistent plane
[01:58:09] [PASSED] X0L2 Normal sizes
[01:58:09] [PASSED] X0L2 Max sizes
[01:58:09] [PASSED] X0L2 Invalid pitch
[01:58:09] [PASSED] X0L2 Pitch greater than minimum required
[01:58:09] [PASSED] X0L2 Handle for inexistent plane
[01:58:09] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[01:58:09] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[01:58:09] [PASSED] X0L2 Valid modifier
[01:58:09] [PASSED] X0L2 Modifier for inexistent plane
[01:58:09] =========== [PASSED] drm_test_framebuffer_create ===========
[01:58:09] ================= [PASSED] drm_framebuffer =================
[01:58:09] ================ drm_gem_shmem (8 subtests) ================
[01:58:09] [PASSED] drm_gem_shmem_test_obj_create
[01:58:09] [PASSED] drm_gem_shmem_test_obj_create_private
[01:58:09] [PASSED] drm_gem_shmem_test_pin_pages
[01:58:09] [PASSED] drm_gem_shmem_test_vmap
[01:58:09] [PASSED] drm_gem_shmem_test_get_pages_sgt
[01:58:09] [PASSED] drm_gem_shmem_test_get_sg_table
[01:58:09] [PASSED] drm_gem_shmem_test_madvise
[01:58:09] [PASSED] drm_gem_shmem_test_purge
[01:58:09] ================== [PASSED] drm_gem_shmem ==================
[01:58:09] === drm_atomic_helper_connector_hdmi_check (22 subtests) ===
[01:58:09] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[01:58:09] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[01:58:09] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[01:58:09] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[01:58:09] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[01:58:09] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[01:58:09] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[01:58:09] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[01:58:09] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[01:58:09] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback
[01:58:09] [PASSED] drm_test_check_max_tmds_rate_format_fallback
[01:58:09] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[01:58:09] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[01:58:09] [PASSED] drm_test_check_output_bpc_dvi
[01:58:09] [PASSED] drm_test_check_output_bpc_format_vic_1
[01:58:09] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[01:58:09] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[01:58:09] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[01:58:09] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[01:58:09] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[01:58:09] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[01:58:09] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[01:58:09] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[01:58:09] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[01:58:09] [PASSED] drm_test_check_broadcast_rgb_value
[01:58:09] [PASSED] drm_test_check_bpc_8_value
[01:58:09] [PASSED] drm_test_check_bpc_10_value
[01:58:09] [PASSED] drm_test_check_bpc_12_value
[01:58:09] [PASSED] drm_test_check_format_value
[01:58:09] [PASSED] drm_test_check_tmds_char_value
[01:58:09] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[01:58:09] ================= drm_managed (2 subtests) =================
[01:58:10] [PASSED] drm_test_managed_release_action
[01:58:10] [PASSED] drm_test_managed_run_action
[01:58:10] =================== [PASSED] drm_managed ===================
[01:58:10] =================== drm_mm (6 subtests) ====================
[01:58:10] [PASSED] drm_test_mm_init
[01:58:10] [PASSED] drm_test_mm_debug
[01:58:10] [PASSED] drm_test_mm_align32
[01:58:10] [PASSED] drm_test_mm_align64
[01:58:10] [PASSED] drm_test_mm_lowest
[01:58:10] [PASSED] drm_test_mm_highest
[01:58:10] ===================== [PASSED] drm_mm ======================
[01:58:10] ============= drm_modes_analog_tv (5 subtests) =============
[01:58:10] [PASSED] drm_test_modes_analog_tv_mono_576i
[01:58:10] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[01:58:10] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[01:58:10] [PASSED] drm_test_modes_analog_tv_pal_576i
[01:58:10] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[01:58:10] =============== [PASSED] drm_modes_analog_tv ===============
[01:58:10] ============== drm_plane_helper (2 subtests) ===============
[01:58:10] =============== drm_test_check_plane_state ================
[01:58:10] [PASSED] clipping_simple
[01:58:10] [PASSED] clipping_rotate_reflect
[01:58:10] [PASSED] positioning_simple
[01:58:10] [PASSED] upscaling
[01:58:10] [PASSED] downscaling
[01:58:10] [PASSED] rounding1
[01:58:10] [PASSED] rounding2
[01:58:10] [PASSED] rounding3
[01:58:10] [PASSED] rounding4
[01:58:10] =========== [PASSED] drm_test_check_plane_state ============
[01:58:10] =========== drm_test_check_invalid_plane_state ============
[01:58:10] [PASSED] positioning_invalid
[01:58:10] [PASSED] upscaling_invalid
stty: 'standard input': Inappropriate ioctl for device
[01:58:10] [PASSED] downscaling_invalid
[01:58:10] ======= [PASSED] drm_test_check_invalid_plane_state ========
[01:58:10] ================ [PASSED] drm_plane_helper =================
[01:58:10] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[01:58:10] ====== drm_test_connector_helper_tv_get_modes_check =======
[01:58:10] [PASSED] None
[01:58:10] [PASSED] PAL
[01:58:10] [PASSED] NTSC
[01:58:10] [PASSED] Both, NTSC Default
[01:58:10] [PASSED] Both, PAL Default
[01:58:10] [PASSED] Both, NTSC Default, with PAL on command-line
[01:58:10] [PASSED] Both, PAL Default, with NTSC on command-line
[01:58:10] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[01:58:10] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[01:58:10] ================== drm_rect (9 subtests) ===================
[01:58:10] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[01:58:10] [PASSED] drm_test_rect_clip_scaled_not_clipped
[01:58:10] [PASSED] drm_test_rect_clip_scaled_clipped
[01:58:10] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[01:58:10] ================= drm_test_rect_intersect =================
[01:58:10] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[01:58:10] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[01:58:10] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[01:58:10] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[01:58:10] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[01:58:10] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[01:58:10] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[01:58:10] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[01:58:10] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[01:58:10] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[01:58:10] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[01:58:10] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[01:58:10] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[01:58:10] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[01:58:10] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[01:58:10] ============= [PASSED] drm_test_rect_intersect =============
[01:58:10] ================ drm_test_rect_calc_hscale ================
[01:58:10] [PASSED] normal use
[01:58:10] [PASSED] out of max range
[01:58:10] [PASSED] out of min range
[01:58:10] [PASSED] zero dst
[01:58:10] [PASSED] negative src
[01:58:10] [PASSED] negative dst
[01:58:10] ============ [PASSED] drm_test_rect_calc_hscale ============
[01:58:10] ================ drm_test_rect_calc_vscale ================
[01:58:10] [PASSED] normal use
[01:58:10] [PASSED] out of max range
[01:58:10] [PASSED] out of min range
[01:58:10] [PASSED] zero dst
[01:58:10] [PASSED] negative src
[01:58:10] [PASSED] negative dst
[01:58:10] ============ [PASSED] drm_test_rect_calc_vscale ============
[01:58:10] ================== drm_test_rect_rotate ===================
[01:58:10] [PASSED] reflect-x
[01:58:10] [PASSED] reflect-y
[01:58:10] [PASSED] rotate-0
[01:58:10] [PASSED] rotate-90
[01:58:10] [PASSED] rotate-180
[01:58:10] [PASSED] rotate-270
[01:58:10] ============== [PASSED] drm_test_rect_rotate ===============
[01:58:10] ================ drm_test_rect_rotate_inv =================
[01:58:10] [PASSED] reflect-x
[01:58:10] [PASSED] reflect-y
[01:58:10] [PASSED] rotate-0
[01:58:10] [PASSED] rotate-90
[01:58:10] [PASSED] rotate-180
[01:58:10] [PASSED] rotate-270
[01:58:10] ============ [PASSED] drm_test_rect_rotate_inv =============
[01:58:10] ==================== [PASSED] drm_rect =====================
[01:58:10] ============================================================
[01:58:10] Testing complete. Ran 515 tests: passed: 515
[01:58:10] Elapsed time: 23.121s total, 1.736s configuring, 21.208s building, 0.148s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[01:58:10] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:58:11] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
[01:58:20] Starting KUnit Kernel (1/1)...
[01:58:20] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:58:20] ================= ttm_device (5 subtests) ==================
[01:58:20] [PASSED] ttm_device_init_basic
[01:58:20] [PASSED] ttm_device_init_multiple
[01:58:20] [PASSED] ttm_device_fini_basic
[01:58:20] [PASSED] ttm_device_init_no_vma_man
[01:58:20] ================== ttm_device_init_pools ==================
[01:58:20] [PASSED] No DMA allocations, no DMA32 required
[01:58:20] [PASSED] DMA allocations, DMA32 required
[01:58:20] [PASSED] No DMA allocations, DMA32 required
[01:58:20] [PASSED] DMA allocations, no DMA32 required
[01:58:20] ============== [PASSED] ttm_device_init_pools ==============
[01:58:20] =================== [PASSED] ttm_device ====================
[01:58:20] ================== ttm_pool (8 subtests) ===================
[01:58:20] ================== ttm_pool_alloc_basic ===================
[01:58:20] [PASSED] One page
[01:58:20] [PASSED] More than one page
[01:58:20] [PASSED] Above the allocation limit
[01:58:20] [PASSED] One page, with coherent DMA mappings enabled
[01:58:20] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[01:58:20] ============== [PASSED] ttm_pool_alloc_basic ===============
[01:58:20] ============== ttm_pool_alloc_basic_dma_addr ==============
[01:58:20] [PASSED] One page
[01:58:20] [PASSED] More than one page
[01:58:20] [PASSED] Above the allocation limit
[01:58:20] [PASSED] One page, with coherent DMA mappings enabled
[01:58:20] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[01:58:20] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[01:58:20] [PASSED] ttm_pool_alloc_order_caching_match
[01:58:20] [PASSED] ttm_pool_alloc_caching_mismatch
[01:58:20] [PASSED] ttm_pool_alloc_order_mismatch
[01:58:20] [PASSED] ttm_pool_free_dma_alloc
[01:58:20] [PASSED] ttm_pool_free_no_dma_alloc
[01:58:20] [PASSED] ttm_pool_fini_basic
[01:58:20] ==================== [PASSED] ttm_pool =====================
[01:58:20] ================ ttm_resource (8 subtests) =================
[01:58:20] ================= ttm_resource_init_basic =================
[01:58:20] [PASSED] Init resource in TTM_PL_SYSTEM
[01:58:20] [PASSED] Init resource in TTM_PL_VRAM
[01:58:20] [PASSED] Init resource in a private placement
[01:58:20] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[01:58:20] ============= [PASSED] ttm_resource_init_basic =============
[01:58:20] [PASSED] ttm_resource_init_pinned
[01:58:20] [PASSED] ttm_resource_fini_basic
[01:58:20] [PASSED] ttm_resource_manager_init_basic
[01:58:20] [PASSED] ttm_resource_manager_usage_basic
[01:58:20] [PASSED] ttm_resource_manager_set_used_basic
[01:58:20] [PASSED] ttm_sys_man_alloc_basic
[01:58:20] [PASSED] ttm_sys_man_free_basic
[01:58:20] ================== [PASSED] ttm_resource ===================
[01:58:20] =================== ttm_tt (15 subtests) ===================
[01:58:20] ==================== ttm_tt_init_basic ====================
[01:58:20] [PASSED] Page-aligned size
[01:58:20] [PASSED] Extra pages requested
[01:58:20] ================ [PASSED] ttm_tt_init_basic ================
[01:58:20] [PASSED] ttm_tt_init_misaligned
[01:58:20] [PASSED] ttm_tt_fini_basic
[01:58:20] [PASSED] ttm_tt_fini_sg
[01:58:20] [PASSED] ttm_tt_fini_shmem
[01:58:20] [PASSED] ttm_tt_create_basic
[01:58:20] [PASSED] ttm_tt_create_invalid_bo_type
[01:58:20] [PASSED] ttm_tt_create_ttm_exists
[01:58:20] [PASSED] ttm_tt_create_failed
[01:58:20] [PASSED] ttm_tt_destroy_basic
[01:58:20] [PASSED] ttm_tt_populate_null_ttm
[01:58:20] [PASSED] ttm_tt_populate_populated_ttm
[01:58:20] [PASSED] ttm_tt_unpopulate_basic
[01:58:20] [PASSED] ttm_tt_unpopulate_empty_ttm
[01:58:20] [PASSED] ttm_tt_swapin_basic
[01:58:20] ===================== [PASSED] ttm_tt ======================
[01:58:20] =================== ttm_bo (14 subtests) ===================
[01:58:20] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[01:58:20] [PASSED] Cannot be interrupted and sleeps
[01:58:20] [PASSED] Cannot be interrupted, locks straight away
[01:58:20] [PASSED] Can be interrupted, sleeps
[01:58:20] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[01:58:20] [PASSED] ttm_bo_reserve_locked_no_sleep
[01:58:20] [PASSED] ttm_bo_reserve_no_wait_ticket
[01:58:20] [PASSED] ttm_bo_reserve_double_resv
[01:58:20] [PASSED] ttm_bo_reserve_interrupted
[01:58:20] [PASSED] ttm_bo_reserve_deadlock
[01:58:20] [PASSED] ttm_bo_unreserve_basic
[01:58:20] [PASSED] ttm_bo_unreserve_pinned
[01:58:20] [PASSED] ttm_bo_unreserve_bulk
[01:58:20] [PASSED] ttm_bo_put_basic
[01:58:20] [PASSED] ttm_bo_put_shared_resv
[01:58:20] [PASSED] ttm_bo_pin_basic
[01:58:20] [PASSED] ttm_bo_pin_unpin_resource
[01:58:20] [PASSED] ttm_bo_multiple_pin_one_unpin
[01:58:20] ===================== [PASSED] ttm_bo ======================
[01:58:20] ============== ttm_bo_validate (22 subtests) ===============
[01:58:20] ============== ttm_bo_init_reserved_sys_man ===============
[01:58:20] [PASSED] Buffer object for userspace
[01:58:20] [PASSED] Kernel buffer object
[01:58:20] [PASSED] Shared buffer object
[01:58:20] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[01:58:20] ============== ttm_bo_init_reserved_mock_man ==============
[01:58:20] [PASSED] Buffer object for userspace
[01:58:20] [PASSED] Kernel buffer object
[01:58:20] [PASSED] Shared buffer object
[01:58:20] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[01:58:20] [PASSED] ttm_bo_init_reserved_resv
[01:58:20] ================== ttm_bo_validate_basic ==================
[01:58:20] [PASSED] Buffer object for userspace
[01:58:20] [PASSED] Kernel buffer object
[01:58:20] [PASSED] Shared buffer object
[01:58:20] ============== [PASSED] ttm_bo_validate_basic ==============
[01:58:20] [PASSED] ttm_bo_validate_invalid_placement
[01:58:20] ============= ttm_bo_validate_same_placement ==============
[01:58:20] [PASSED] System manager
[01:58:20] [PASSED] VRAM manager
[01:58:20] ========= [PASSED] ttm_bo_validate_same_placement ==========
[01:58:20] [PASSED] ttm_bo_validate_failed_alloc
[01:58:20] [PASSED] ttm_bo_validate_pinned
[01:58:20] [PASSED] ttm_bo_validate_busy_placement
[01:58:20] ================ ttm_bo_validate_multihop =================
[01:58:20] [PASSED] Buffer object for userspace
[01:58:20] [PASSED] Kernel buffer object
[01:58:20] [PASSED] Shared buffer object
[01:58:20] ============ [PASSED] ttm_bo_validate_multihop =============
[01:58:20] ========== ttm_bo_validate_no_placement_signaled ==========
[01:58:20] [PASSED] Buffer object in system domain, no page vector
[01:58:20] [PASSED] Buffer object in system domain with an existing page vector
[01:58:20] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[01:58:20] ======== ttm_bo_validate_no_placement_not_signaled ========
[01:58:20] [PASSED] Buffer object for userspace
[01:58:20] [PASSED] Kernel buffer object
[01:58:20] [PASSED] Shared buffer object
[01:58:20] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[01:58:20] [PASSED] ttm_bo_validate_move_fence_signaled
[01:58:20] ========= ttm_bo_validate_move_fence_not_signaled =========
[01:58:20] [PASSED] Waits for GPU
[01:58:20] [PASSED] Tries to lock straight away
[01:58:21] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[01:58:21] [PASSED] ttm_bo_validate_swapout
[01:58:21] [PASSED] ttm_bo_validate_happy_evict
[01:58:21] [PASSED] ttm_bo_validate_all_pinned_evict
[01:58:21] [PASSED] ttm_bo_validate_allowed_only_evict
[01:58:21] [PASSED] ttm_bo_validate_deleted_evict
[01:58:21] [PASSED] ttm_bo_validate_busy_domain_evict
[01:58:21] [PASSED] ttm_bo_validate_evict_gutting
[01:58:21] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[01:58:21] ================= [PASSED] ttm_bo_validate =================
[01:58:21] ============================================================
[01:58:21] Testing complete. Ran 102 tests: passed: 102
[01:58:21] Elapsed time: 11.256s total, 1.744s configuring, 8.890s building, 0.518s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 31+ messages in thread
* ✓ CI.Build: success for drm/xe/oa: xe_syncs for OA (rev4)
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
` (9 preceding siblings ...)
2024-08-28 1:58 ` ✓ CI.KUnit: " Patchwork
@ 2024-08-28 2:10 ` Patchwork
2024-08-28 2:12 ` ✓ CI.Hooks: " Patchwork
` (3 subsequent siblings)
14 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2024-08-28 2:10 UTC (permalink / raw)
To: Ashutosh Dixit; +Cc: intel-xe
== Series Details ==
Series: drm/xe/oa: xe_syncs for OA (rev4)
URL : https://patchwork.freedesktop.org/series/137058/
State : success
== Summary ==
lib/modules/6.11.0-rc5-xe/kernel/sound/core/seq/
lib/modules/6.11.0-rc5-xe/kernel/sound/core/seq/snd-seq.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/core/snd-seq-device.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/core/snd-hwdep.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/core/snd.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/core/snd-pcm.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/core/snd-compress.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/core/snd-timer.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soundcore.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/intel/
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/intel/atom/
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/intel/atom/sst/
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/intel/atom/sst/snd-intel-sst-acpi.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/intel/atom/sst/snd-intel-sst-core.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/intel/common/
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/intel/common/snd-soc-acpi-intel-match.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/amd/
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/amd/snd-acp-config.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/intel/
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-tgl.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-mlink.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-cnl.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-lnl.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-common.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-generic.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-mtl.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/amd/
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/amd/snd-sof-amd-renoir.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/amd/snd-sof-amd-acp.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/snd-sof-utils.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/snd-sof-pci.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/snd-sof.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/snd-sof-probes.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/xtensa/
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/sof/xtensa/snd-sof-xtensa-dsp.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/snd-soc-core.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/snd-soc-acpi.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/codecs/
lib/modules/6.11.0-rc5-xe/kernel/sound/soc/codecs/snd-soc-hdac-hda.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/hda/
lib/modules/6.11.0-rc5-xe/kernel/sound/hda/snd-intel-sdw-acpi.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/hda/ext/
lib/modules/6.11.0-rc5-xe/kernel/sound/hda/ext/snd-hda-ext-core.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/hda/snd-intel-dspcfg.ko
lib/modules/6.11.0-rc5-xe/kernel/sound/hda/snd-hda-core.ko
lib/modules/6.11.0-rc5-xe/kernel/arch/
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/kernel/
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/kernel/msr.ko
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/kernel/cpuid.ko
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/crypto/
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/crypto/sha512-ssse3.ko
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/crypto/crct10dif-pclmul.ko
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/crypto/ghash-clmulni-intel.ko
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/crypto/sha1-ssse3.ko
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/crypto/crc32-pclmul.ko
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/crypto/sha256-ssse3.ko
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/crypto/aesni-intel.ko
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/crypto/polyval-clmulni.ko
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/events/
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/events/intel/
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/events/intel/intel-cstate.ko
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/events/rapl.ko
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/kvm/
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/kvm/kvm.ko
lib/modules/6.11.0-rc5-xe/kernel/arch/x86/kvm/kvm-intel.ko
lib/modules/6.11.0-rc5-xe/kernel/crypto/
lib/modules/6.11.0-rc5-xe/kernel/crypto/crypto_simd.ko
lib/modules/6.11.0-rc5-xe/kernel/crypto/cmac.ko
lib/modules/6.11.0-rc5-xe/kernel/crypto/ccm.ko
lib/modules/6.11.0-rc5-xe/kernel/crypto/cryptd.ko
lib/modules/6.11.0-rc5-xe/kernel/crypto/polyval-generic.ko
lib/modules/6.11.0-rc5-xe/kernel/crypto/async_tx/
lib/modules/6.11.0-rc5-xe/kernel/crypto/async_tx/async_xor.ko
lib/modules/6.11.0-rc5-xe/kernel/crypto/async_tx/async_tx.ko
lib/modules/6.11.0-rc5-xe/kernel/crypto/async_tx/async_memcpy.ko
lib/modules/6.11.0-rc5-xe/kernel/crypto/async_tx/async_pq.ko
lib/modules/6.11.0-rc5-xe/kernel/crypto/async_tx/async_raid6_recov.ko
lib/modules/6.11.0-rc5-xe/build
lib/modules/6.11.0-rc5-xe/modules.alias.bin
lib/modules/6.11.0-rc5-xe/modules.builtin
lib/modules/6.11.0-rc5-xe/modules.softdep
lib/modules/6.11.0-rc5-xe/modules.alias
lib/modules/6.11.0-rc5-xe/modules.order
lib/modules/6.11.0-rc5-xe/modules.symbols
lib/modules/6.11.0-rc5-xe/modules.dep.bin
+ mv kernel-nodebug.tar.gz ..
+ cd ..
+ rm -rf archive
++ date +%s
^[[0Ksection_end:1724810995:package_x86_64_nodebug
^[[0K
+ echo -e '\e[0Ksection_end:1724810995:package_x86_64_nodebug\r\e[0K'
+ sync
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 31+ messages in thread
* ✓ CI.Hooks: success for drm/xe/oa: xe_syncs for OA (rev4)
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
` (10 preceding siblings ...)
2024-08-28 2:10 ` ✓ CI.Build: " Patchwork
@ 2024-08-28 2:12 ` Patchwork
2024-08-28 2:14 ` ✓ CI.checksparse: " Patchwork
` (2 subsequent siblings)
14 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2024-08-28 2:12 UTC (permalink / raw)
To: Ashutosh Dixit; +Cc: intel-xe
== Series Details ==
Series: drm/xe/oa: xe_syncs for OA (rev4)
URL : https://patchwork.freedesktop.org/series/137058/
State : success
== Summary ==
run-parts: executing /workspace/ci/hooks/00-showenv
+ export
+ grep -Ei '(^|\W)CI_'
declare -x CI_KERNEL_BUILD_DIR="/workspace/kernel/build64-default"
declare -x CI_KERNEL_SRC_DIR="/workspace/kernel"
declare -x CI_TOOLS_SRC_DIR="/workspace/ci"
declare -x CI_WORKSPACE_DIR="/workspace"
run-parts: executing /workspace/ci/hooks/10-build-W1
+ SRC_DIR=/workspace/kernel
+ RESTORE_DISPLAY_CONFIG=0
+ '[' -n /workspace/kernel/build64-default ']'
+ BUILD_DIR=/workspace/kernel/build64-default
+ cd /workspace/kernel
++ nproc
+ make -j48 O=/workspace/kernel/build64-default modules_prepare
make[1]: Entering directory '/workspace/kernel/build64-default'
GEN Makefile
UPD include/generated/compile.h
UPD include/config/kernel.release
mkdir -p /workspace/kernel/build64-default/tools/objtool && make O=/workspace/kernel/build64-default subdir=tools/objtool --no-print-directory -C objtool
UPD include/generated/utsrelease.h
CALL ../scripts/checksyscalls.sh
HOSTCC /workspace/kernel/build64-default/tools/objtool/fixdep.o
HOSTLD /workspace/kernel/build64-default/tools/objtool/fixdep-in.o
LINK /workspace/kernel/build64-default/tools/objtool/fixdep
INSTALL libsubcmd_headers
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/exec-cmd.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/help.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/pager.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/parse-options.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/run-command.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/sigchain.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/subcmd-config.o
LD /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd-in.o
AR /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd.a
CC /workspace/kernel/build64-default/tools/objtool/weak.o
CC /workspace/kernel/build64-default/tools/objtool/check.o
CC /workspace/kernel/build64-default/tools/objtool/special.o
CC /workspace/kernel/build64-default/tools/objtool/builtin-check.o
CC /workspace/kernel/build64-default/tools/objtool/elf.o
CC /workspace/kernel/build64-default/tools/objtool/objtool.o
CC /workspace/kernel/build64-default/tools/objtool/orc_gen.o
CC /workspace/kernel/build64-default/tools/objtool/orc_dump.o
CC /workspace/kernel/build64-default/tools/objtool/libstring.o
CC /workspace/kernel/build64-default/tools/objtool/libctype.o
CC /workspace/kernel/build64-default/tools/objtool/str_error_r.o
CC /workspace/kernel/build64-default/tools/objtool/librbtree.o
CC /workspace/kernel/build64-default/tools/objtool/arch/x86/special.o
CC /workspace/kernel/build64-default/tools/objtool/arch/x86/decode.o
CC /workspace/kernel/build64-default/tools/objtool/arch/x86/orc.o
LD /workspace/kernel/build64-default/tools/objtool/arch/x86/objtool-in.o
LD /workspace/kernel/build64-default/tools/objtool/objtool-in.o
LINK /workspace/kernel/build64-default/tools/objtool/objtool
make[1]: Leaving directory '/workspace/kernel/build64-default'
++ nproc
+ make -j48 O=/workspace/kernel/build64-default W=1 drivers/gpu/drm/xe
make[1]: Entering directory '/workspace/kernel/build64-default'
make[2]: Nothing to be done for 'drivers/gpu/drm/xe'.
make[1]: Leaving directory '/workspace/kernel/build64-default'
run-parts: executing /workspace/ci/hooks/11-build-32b
+++ realpath /workspace/ci/hooks/11-build-32b
++ dirname /workspace/ci/hooks/11-build-32b
+ THIS_SCRIPT_DIR=/workspace/ci/hooks
+ SRC_DIR=/workspace/kernel
+ TOOLS_SRC_DIR=/workspace/ci
+ '[' -n /workspace/kernel/build64-default ']'
+ BUILD_DIR=/workspace/kernel/build64-default
+ BUILD_DIR=/workspace/kernel/build64-default/build32
+ cd /workspace/kernel
+ mkdir -p /workspace/kernel/build64-default/build32
++ nproc
+ make -j48 ARCH=i386 O=/workspace/kernel/build64-default/build32 defconfig
make[1]: Entering directory '/workspace/kernel/build64-default/build32'
GEN Makefile
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/confdata.o
HOSTCC scripts/kconfig/expr.o
LEX scripts/kconfig/lexer.lex.c
YACC scripts/kconfig/parser.tab.[ch]
HOSTCC scripts/kconfig/menu.o
HOSTCC scripts/kconfig/preprocess.o
HOSTCC scripts/kconfig/symbol.o
HOSTCC scripts/kconfig/util.o
HOSTCC scripts/kconfig/lexer.lex.o
HOSTCC scripts/kconfig/parser.tab.o
HOSTLD scripts/kconfig/conf
*** Default configuration is based on 'i386_defconfig'
#
# configuration written to .config
#
make[1]: Leaving directory '/workspace/kernel/build64-default/build32'
+ cd /workspace/kernel/build64-default/build32
+ /workspace/kernel/scripts/kconfig/merge_config.sh .config /workspace/ci/kernel/10-xe.fragment
Using .config as base
Merging /workspace/ci/kernel/10-xe.fragment
Value of CONFIG_DRM_XE is redefined by fragment /workspace/ci/kernel/10-xe.fragment:
Previous value: # CONFIG_DRM_XE is not set
New value: CONFIG_DRM_XE=m
Value of CONFIG_SND_DEBUG is redefined by fragment /workspace/ci/kernel/10-xe.fragment:
Previous value: # CONFIG_SND_DEBUG is not set
New value: CONFIG_SND_DEBUG=y
Value of CONFIG_SND_HDA_INTEL is redefined by fragment /workspace/ci/kernel/10-xe.fragment:
Previous value: CONFIG_SND_HDA_INTEL=y
New value: CONFIG_SND_HDA_INTEL=m
Value of CONFIG_SND_HDA_CODEC_HDMI is redefined by fragment /workspace/ci/kernel/10-xe.fragment:
Previous value: # CONFIG_SND_HDA_CODEC_HDMI is not set
New value: CONFIG_SND_HDA_CODEC_HDMI=m
GEN Makefile
WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
Selected by [m]:
- DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m]
#
# configuration written to .config
#
Value requested for CONFIG_HAVE_UID16 not in final .config
Requested value: CONFIG_HAVE_UID16=y
Actual value:
Value requested for CONFIG_UID16 not in final .config
Requested value: CONFIG_UID16=y
Actual value:
Value requested for CONFIG_X86_32 not in final .config
Requested value: CONFIG_X86_32=y
Actual value:
Value requested for CONFIG_OUTPUT_FORMAT not in final .config
Requested value: CONFIG_OUTPUT_FORMAT="elf32-i386"
Actual value: CONFIG_OUTPUT_FORMAT="elf64-x86-64"
Value requested for CONFIG_ARCH_MMAP_RND_BITS_MIN not in final .config
Requested value: CONFIG_ARCH_MMAP_RND_BITS_MIN=8
Actual value: CONFIG_ARCH_MMAP_RND_BITS_MIN=28
Value requested for CONFIG_ARCH_MMAP_RND_BITS_MAX not in final .config
Requested value: CONFIG_ARCH_MMAP_RND_BITS_MAX=16
Actual value: CONFIG_ARCH_MMAP_RND_BITS_MAX=32
Value requested for CONFIG_PGTABLE_LEVELS not in final .config
Requested value: CONFIG_PGTABLE_LEVELS=2
Actual value: CONFIG_PGTABLE_LEVELS=5
Value requested for CONFIG_X86_BIGSMP not in final .config
Requested value: # CONFIG_X86_BIGSMP is not set
Actual value:
Value requested for CONFIG_X86_INTEL_QUARK not in final .config
Requested value: # CONFIG_X86_INTEL_QUARK is not set
Actual value:
Value requested for CONFIG_X86_RDC321X not in final .config
Requested value: # CONFIG_X86_RDC321X is not set
Actual value:
Value requested for CONFIG_X86_32_NON_STANDARD not in final .config
Requested value: # CONFIG_X86_32_NON_STANDARD is not set
Actual value:
Value requested for CONFIG_X86_32_IRIS not in final .config
Requested value: # CONFIG_X86_32_IRIS is not set
Actual value:
Value requested for CONFIG_M486SX not in final .config
Requested value: # CONFIG_M486SX is not set
Actual value:
Value requested for CONFIG_M486 not in final .config
Requested value: # CONFIG_M486 is not set
Actual value:
Value requested for CONFIG_M586 not in final .config
Requested value: # CONFIG_M586 is not set
Actual value:
Value requested for CONFIG_M586TSC not in final .config
Requested value: # CONFIG_M586TSC is not set
Actual value:
Value requested for CONFIG_M586MMX not in final .config
Requested value: # CONFIG_M586MMX is not set
Actual value:
Value requested for CONFIG_M686 not in final .config
Requested value: CONFIG_M686=y
Actual value:
Value requested for CONFIG_MPENTIUMII not in final .config
Requested value: # CONFIG_MPENTIUMII is not set
Actual value:
Value requested for CONFIG_MPENTIUMIII not in final .config
Requested value: # CONFIG_MPENTIUMIII is not set
Actual value:
Value requested for CONFIG_MPENTIUMM not in final .config
Requested value: # CONFIG_MPENTIUMM is not set
Actual value:
Value requested for CONFIG_MPENTIUM4 not in final .config
Requested value: # CONFIG_MPENTIUM4 is not set
Actual value:
Value requested for CONFIG_MK6 not in final .config
Requested value: # CONFIG_MK6 is not set
Actual value:
Value requested for CONFIG_MK7 not in final .config
Requested value: # CONFIG_MK7 is not set
Actual value:
Value requested for CONFIG_MCRUSOE not in final .config
Requested value: # CONFIG_MCRUSOE is not set
Actual value:
Value requested for CONFIG_MEFFICEON not in final .config
Requested value: # CONFIG_MEFFICEON is not set
Actual value:
Value requested for CONFIG_MWINCHIPC6 not in final .config
Requested value: # CONFIG_MWINCHIPC6 is not set
Actual value:
Value requested for CONFIG_MWINCHIP3D not in final .config
Requested value: # CONFIG_MWINCHIP3D is not set
Actual value:
Value requested for CONFIG_MELAN not in final .config
Requested value: # CONFIG_MELAN is not set
Actual value:
Value requested for CONFIG_MGEODEGX1 not in final .config
Requested value: # CONFIG_MGEODEGX1 is not set
Actual value:
Value requested for CONFIG_MGEODE_LX not in final .config
Requested value: # CONFIG_MGEODE_LX is not set
Actual value:
Value requested for CONFIG_MCYRIXIII not in final .config
Requested value: # CONFIG_MCYRIXIII is not set
Actual value:
Value requested for CONFIG_MVIAC3_2 not in final .config
Requested value: # CONFIG_MVIAC3_2 is not set
Actual value:
Value requested for CONFIG_MVIAC7 not in final .config
Requested value: # CONFIG_MVIAC7 is not set
Actual value:
Value requested for CONFIG_X86_GENERIC not in final .config
Requested value: # CONFIG_X86_GENERIC is not set
Actual value:
Value requested for CONFIG_X86_INTERNODE_CACHE_SHIFT not in final .config
Requested value: CONFIG_X86_INTERNODE_CACHE_SHIFT=5
Actual value: CONFIG_X86_INTERNODE_CACHE_SHIFT=6
Value requested for CONFIG_X86_L1_CACHE_SHIFT not in final .config
Requested value: CONFIG_X86_L1_CACHE_SHIFT=5
Actual value: CONFIG_X86_L1_CACHE_SHIFT=6
Value requested for CONFIG_X86_USE_PPRO_CHECKSUM not in final .config
Requested value: CONFIG_X86_USE_PPRO_CHECKSUM=y
Actual value:
Value requested for CONFIG_X86_MINIMUM_CPU_FAMILY not in final .config
Requested value: CONFIG_X86_MINIMUM_CPU_FAMILY=6
Actual value: CONFIG_X86_MINIMUM_CPU_FAMILY=64
Value requested for CONFIG_CPU_SUP_TRANSMETA_32 not in final .config
Requested value: CONFIG_CPU_SUP_TRANSMETA_32=y
Actual value:
Value requested for CONFIG_CPU_SUP_VORTEX_32 not in final .config
Requested value: CONFIG_CPU_SUP_VORTEX_32=y
Actual value:
Value requested for CONFIG_HPET_TIMER not in final .config
Requested value: # CONFIG_HPET_TIMER is not set
Actual value: CONFIG_HPET_TIMER=y
Value requested for CONFIG_NR_CPUS_RANGE_END not in final .config
Requested value: CONFIG_NR_CPUS_RANGE_END=8
Actual value: CONFIG_NR_CPUS_RANGE_END=512
Value requested for CONFIG_NR_CPUS_DEFAULT not in final .config
Requested value: CONFIG_NR_CPUS_DEFAULT=8
Actual value: CONFIG_NR_CPUS_DEFAULT=64
Value requested for CONFIG_X86_ANCIENT_MCE not in final .config
Requested value: # CONFIG_X86_ANCIENT_MCE is not set
Actual value:
Value requested for CONFIG_X86_LEGACY_VM86 not in final .config
Requested value: # CONFIG_X86_LEGACY_VM86 is not set
Actual value:
Value requested for CONFIG_X86_ESPFIX32 not in final .config
Requested value: CONFIG_X86_ESPFIX32=y
Actual value:
Value requested for CONFIG_TOSHIBA not in final .config
Requested value: # CONFIG_TOSHIBA is not set
Actual value:
Value requested for CONFIG_X86_REBOOTFIXUPS not in final .config
Requested value: # CONFIG_X86_REBOOTFIXUPS is not set
Actual value:
Value requested for CONFIG_MICROCODE_INITRD32 not in final .config
Requested value: CONFIG_MICROCODE_INITRD32=y
Actual value:
Value requested for CONFIG_NOHIGHMEM not in final .config
Requested value: # CONFIG_NOHIGHMEM is not set
Actual value:
Value requested for CONFIG_HIGHMEM4G not in final .config
Requested value: CONFIG_HIGHMEM4G=y
Actual value:
Value requested for CONFIG_HIGHMEM64G not in final .config
Requested value: # CONFIG_HIGHMEM64G is not set
Actual value:
Value requested for CONFIG_VMSPLIT_3G not in final .config
Requested value: CONFIG_VMSPLIT_3G=y
Actual value:
Value requested for CONFIG_VMSPLIT_3G_OPT not in final .config
Requested value: # CONFIG_VMSPLIT_3G_OPT is not set
Actual value:
Value requested for CONFIG_VMSPLIT_2G not in final .config
Requested value: # CONFIG_VMSPLIT_2G is not set
Actual value:
Value requested for CONFIG_VMSPLIT_2G_OPT not in final .config
Requested value: # CONFIG_VMSPLIT_2G_OPT is not set
Actual value:
Value requested for CONFIG_VMSPLIT_1G not in final .config
Requested value: # CONFIG_VMSPLIT_1G is not set
Actual value:
Value requested for CONFIG_PAGE_OFFSET not in final .config
Requested value: CONFIG_PAGE_OFFSET=0xC0000000
Actual value:
Value requested for CONFIG_HIGHMEM not in final .config
Requested value: CONFIG_HIGHMEM=y
Actual value:
Value requested for CONFIG_X86_PAE not in final .config
Requested value: # CONFIG_X86_PAE is not set
Actual value:
Value requested for CONFIG_ARCH_FLATMEM_ENABLE not in final .config
Requested value: CONFIG_ARCH_FLATMEM_ENABLE=y
Actual value:
Value requested for CONFIG_ARCH_SELECT_MEMORY_MODEL not in final .config
Requested value: CONFIG_ARCH_SELECT_MEMORY_MODEL=y
Actual value:
Value requested for CONFIG_ILLEGAL_POINTER_VALUE not in final .config
Requested value: CONFIG_ILLEGAL_POINTER_VALUE=0
Actual value: CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
Value requested for CONFIG_HIGHPTE not in final .config
Requested value: # CONFIG_HIGHPTE is not set
Actual value:
Value requested for CONFIG_COMPAT_VDSO not in final .config
Requested value: # CONFIG_COMPAT_VDSO is not set
Actual value:
Value requested for CONFIG_FUNCTION_PADDING_CFI not in final .config
Requested value: CONFIG_FUNCTION_PADDING_CFI=0
Actual value: CONFIG_FUNCTION_PADDING_CFI=11
Value requested for CONFIG_FUNCTION_PADDING_BYTES not in final .config
Requested value: CONFIG_FUNCTION_PADDING_BYTES=4
Actual value: CONFIG_FUNCTION_PADDING_BYTES=16
Value requested for CONFIG_APM not in final .config
Requested value: # CONFIG_APM is not set
Actual value:
Value requested for CONFIG_X86_POWERNOW_K6 not in final .config
Requested value: # CONFIG_X86_POWERNOW_K6 is not set
Actual value:
Value requested for CONFIG_X86_POWERNOW_K7 not in final .config
Requested value: # CONFIG_X86_POWERNOW_K7 is not set
Actual value:
Value requested for CONFIG_X86_GX_SUSPMOD not in final .config
Requested value: # CONFIG_X86_GX_SUSPMOD is not set
Actual value:
Value requested for CONFIG_X86_SPEEDSTEP_ICH not in final .config
Requested value: # CONFIG_X86_SPEEDSTEP_ICH is not set
Actual value:
Value requested for CONFIG_X86_SPEEDSTEP_SMI not in final .config
Requested value: # CONFIG_X86_SPEEDSTEP_SMI is not set
Actual value:
Value requested for CONFIG_X86_CPUFREQ_NFORCE2 not in final .config
Requested value: # CONFIG_X86_CPUFREQ_NFORCE2 is not set
Actual value:
Value requested for CONFIG_X86_LONGRUN not in final .config
Requested value: # CONFIG_X86_LONGRUN is not set
Actual value:
Value requested for CONFIG_X86_LONGHAUL not in final .config
Requested value: # CONFIG_X86_LONGHAUL is not set
Actual value:
Value requested for CONFIG_X86_E_POWERSAVER not in final .config
Requested value: # CONFIG_X86_E_POWERSAVER is not set
Actual value:
Value requested for CONFIG_PCI_GOBIOS not in final .config
Requested value: # CONFIG_PCI_GOBIOS is not set
Actual value:
Value requested for CONFIG_PCI_GOMMCONFIG not in final .config
Requested value: # CONFIG_PCI_GOMMCONFIG is not set
Actual value:
Value requested for CONFIG_PCI_GODIRECT not in final .config
Requested value: # CONFIG_PCI_GODIRECT is not set
Actual value:
Value requested for CONFIG_PCI_GOANY not in final .config
Requested value: CONFIG_PCI_GOANY=y
Actual value:
Value requested for CONFIG_PCI_BIOS not in final .config
Requested value: CONFIG_PCI_BIOS=y
Actual value:
Value requested for CONFIG_ISA not in final .config
Requested value: # CONFIG_ISA is not set
Actual value:
Value requested for CONFIG_SCx200 not in final .config
Requested value: # CONFIG_SCx200 is not set
Actual value:
Value requested for CONFIG_OLPC not in final .config
Requested value: # CONFIG_OLPC is not set
Actual value:
Value requested for CONFIG_ALIX not in final .config
Requested value: # CONFIG_ALIX is not set
Actual value:
Value requested for CONFIG_NET5501 not in final .config
Requested value: # CONFIG_NET5501 is not set
Actual value:
Value requested for CONFIG_GEOS not in final .config
Requested value: # CONFIG_GEOS is not set
Actual value:
Value requested for CONFIG_COMPAT_32 not in final .config
Requested value: CONFIG_COMPAT_32=y
Actual value:
Value requested for CONFIG_HAVE_ATOMIC_IOMAP not in final .config
Requested value: CONFIG_HAVE_ATOMIC_IOMAP=y
Actual value:
Value requested for CONFIG_ARCH_32BIT_OFF_T not in final .config
Requested value: CONFIG_ARCH_32BIT_OFF_T=y
Actual value:
Value requested for CONFIG_ARCH_WANT_IPC_PARSE_VERSION not in final .config
Requested value: CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
Actual value:
Value requested for CONFIG_MODULES_USE_ELF_REL not in final .config
Requested value: CONFIG_MODULES_USE_ELF_REL=y
Actual value:
Value requested for CONFIG_ARCH_MMAP_RND_BITS not in final .config
Requested value: CONFIG_ARCH_MMAP_RND_BITS=8
Actual value: CONFIG_ARCH_MMAP_RND_BITS=28
Value requested for CONFIG_CLONE_BACKWARDS not in final .config
Requested value: CONFIG_CLONE_BACKWARDS=y
Actual value:
Value requested for CONFIG_OLD_SIGSUSPEND3 not in final .config
Requested value: CONFIG_OLD_SIGSUSPEND3=y
Actual value:
Value requested for CONFIG_OLD_SIGACTION not in final .config
Requested value: CONFIG_OLD_SIGACTION=y
Actual value:
Value requested for CONFIG_ARCH_SPLIT_ARG64 not in final .config
Requested value: CONFIG_ARCH_SPLIT_ARG64=y
Actual value:
Value requested for CONFIG_FUNCTION_ALIGNMENT not in final .config
Requested value: CONFIG_FUNCTION_ALIGNMENT=4
Actual value: CONFIG_FUNCTION_ALIGNMENT=16
Value requested for CONFIG_SELECT_MEMORY_MODEL not in final .config
Requested value: CONFIG_SELECT_MEMORY_MODEL=y
Actual value:
Value requested for CONFIG_FLATMEM_MANUAL not in final .config
Requested value: CONFIG_FLATMEM_MANUAL=y
Actual value:
Value requested for CONFIG_SPARSEMEM_MANUAL not in final .config
Requested value: # CONFIG_SPARSEMEM_MANUAL is not set
Actual value:
Value requested for CONFIG_FLATMEM not in final .config
Requested value: CONFIG_FLATMEM=y
Actual value:
Value requested for CONFIG_SPARSEMEM_STATIC not in final .config
Requested value: CONFIG_SPARSEMEM_STATIC=y
Actual value:
Value requested for CONFIG_BOUNCE not in final .config
Requested value: CONFIG_BOUNCE=y
Actual value:
Value requested for CONFIG_KMAP_LOCAL not in final .config
Requested value: CONFIG_KMAP_LOCAL=y
Actual value:
Value requested for CONFIG_HOTPLUG_PCI_COMPAQ not in final .config
Requested value: # CONFIG_HOTPLUG_PCI_COMPAQ is not set
Actual value:
Value requested for CONFIG_HOTPLUG_PCI_IBM not in final .config
Requested value: # CONFIG_HOTPLUG_PCI_IBM is not set
Actual value:
Value requested for CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH not in final .config
Requested value: CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH=y
Actual value:
Value requested for CONFIG_PCH_PHUB not in final .config
Requested value: # CONFIG_PCH_PHUB is not set
Actual value:
Value requested for CONFIG_SCSI_NSP32 not in final .config
Requested value: # CONFIG_SCSI_NSP32 is not set
Actual value:
Value requested for CONFIG_PATA_CS5520 not in final .config
Requested value: # CONFIG_PATA_CS5520 is not set
Actual value:
Value requested for CONFIG_PATA_CS5530 not in final .config
Requested value: # CONFIG_PATA_CS5530 is not set
Actual value:
Value requested for CONFIG_PATA_CS5535 not in final .config
Requested value: # CONFIG_PATA_CS5535 is not set
Actual value:
Value requested for CONFIG_PATA_CS5536 not in final .config
Requested value: # CONFIG_PATA_CS5536 is not set
Actual value:
Value requested for CONFIG_PATA_SC1200 not in final .config
Requested value: # CONFIG_PATA_SC1200 is not set
Actual value:
Value requested for CONFIG_PCH_GBE not in final .config
Requested value: # CONFIG_PCH_GBE is not set
Actual value:
Value requested for CONFIG_INPUT_WISTRON_BTNS not in final .config
Requested value: # CONFIG_INPUT_WISTRON_BTNS is not set
Actual value:
Value requested for CONFIG_SERIAL_TIMBERDALE not in final .config
Requested value: # CONFIG_SERIAL_TIMBERDALE is not set
Actual value:
Value requested for CONFIG_SERIAL_PCH_UART not in final .config
Requested value: # CONFIG_SERIAL_PCH_UART is not set
Actual value:
Value requested for CONFIG_HW_RANDOM_GEODE not in final .config
Requested value: CONFIG_HW_RANDOM_GEODE=y
Actual value:
Value requested for CONFIG_SONYPI not in final .config
Requested value: # CONFIG_SONYPI is not set
Actual value:
Value requested for CONFIG_PC8736x_GPIO not in final .config
Requested value: # CONFIG_PC8736x_GPIO is not set
Actual value:
Value requested for CONFIG_NSC_GPIO not in final .config
Requested value: # CONFIG_NSC_GPIO is not set
Actual value:
Value requested for CONFIG_I2C_EG20T not in final .config
Requested value: # CONFIG_I2C_EG20T is not set
Actual value:
Value requested for CONFIG_SCx200_ACB not in final .config
Requested value: # CONFIG_SCx200_ACB is not set
Actual value:
Value requested for CONFIG_PTP_1588_CLOCK_PCH not in final .config
Requested value: # CONFIG_PTP_1588_CLOCK_PCH is not set
Actual value:
Value requested for CONFIG_SBC8360_WDT not in final .config
Requested value: # CONFIG_SBC8360_WDT is not set
Actual value:
Value requested for CONFIG_SBC7240_WDT not in final .config
Requested value: # CONFIG_SBC7240_WDT is not set
Actual value:
Value requested for CONFIG_MFD_CS5535 not in final .config
Requested value: # CONFIG_MFD_CS5535 is not set
Actual value:
Value requested for CONFIG_AGP_ALI not in final .config
Requested value: # CONFIG_AGP_ALI is not set
Actual value:
Value requested for CONFIG_AGP_ATI not in final .config
Requested value: # CONFIG_AGP_ATI is not set
Actual value:
Value requested for CONFIG_AGP_AMD not in final .config
Requested value: # CONFIG_AGP_AMD is not set
Actual value:
Value requested for CONFIG_AGP_NVIDIA not in final .config
Requested value: # CONFIG_AGP_NVIDIA is not set
Actual value:
Value requested for CONFIG_AGP_SWORKS not in final .config
Requested value: # CONFIG_AGP_SWORKS is not set
Actual value:
Value requested for CONFIG_AGP_EFFICEON not in final .config
Requested value: # CONFIG_AGP_EFFICEON is not set
Actual value:
Value requested for CONFIG_SND_PCM not in final .config
Requested value: CONFIG_SND_PCM=y
Actual value: CONFIG_SND_PCM=m
Value requested for CONFIG_SND_HWDEP not in final .config
Requested value: CONFIG_SND_HWDEP=y
Actual value: CONFIG_SND_HWDEP=m
Value requested for CONFIG_SND_DYNAMIC_MINORS not in final .config
Requested value: # CONFIG_SND_DYNAMIC_MINORS is not set
Actual value: CONFIG_SND_DYNAMIC_MINORS=y
Value requested for CONFIG_SND_CS5530 not in final .config
Requested value: # CONFIG_SND_CS5530 is not set
Actual value:
Value requested for CONFIG_SND_CS5535AUDIO not in final .config
Requested value: # CONFIG_SND_CS5535AUDIO is not set
Actual value:
Value requested for CONFIG_SND_SIS7019 not in final .config
Requested value: # CONFIG_SND_SIS7019 is not set
Actual value:
Value requested for CONFIG_SND_HDA not in final .config
Requested value: CONFIG_SND_HDA=y
Actual value: CONFIG_SND_HDA=m
Value requested for CONFIG_SND_HDA_CORE not in final .config
Requested value: CONFIG_SND_HDA_CORE=y
Actual value: CONFIG_SND_HDA_CORE=m
Value requested for CONFIG_SND_INTEL_DSP_CONFIG not in final .config
Requested value: CONFIG_SND_INTEL_DSP_CONFIG=y
Actual value: CONFIG_SND_INTEL_DSP_CONFIG=m
Value requested for CONFIG_SND_INTEL_SOUNDWIRE_ACPI not in final .config
Requested value: CONFIG_SND_INTEL_SOUNDWIRE_ACPI=y
Actual value: CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m
Value requested for CONFIG_LEDS_OT200 not in final .config
Requested value: # CONFIG_LEDS_OT200 is not set
Actual value:
Value requested for CONFIG_PCH_DMA not in final .config
Requested value: # CONFIG_PCH_DMA is not set
Actual value:
Value requested for CONFIG_CLKSRC_I8253 not in final .config
Requested value: CONFIG_CLKSRC_I8253=y
Actual value:
Value requested for CONFIG_MAILBOX not in final .config
Requested value: # CONFIG_MAILBOX is not set
Actual value: CONFIG_MAILBOX=y
Value requested for CONFIG_CRYPTO_SERPENT_SSE2_586 not in final .config
Requested value: # CONFIG_CRYPTO_SERPENT_SSE2_586 is not set
Actual value:
Value requested for CONFIG_CRYPTO_TWOFISH_586 not in final .config
Requested value: # CONFIG_CRYPTO_TWOFISH_586 is not set
Actual value:
Value requested for CONFIG_CRYPTO_DEV_GEODE not in final .config
Requested value: # CONFIG_CRYPTO_DEV_GEODE is not set
Actual value:
Value requested for CONFIG_CRYPTO_DEV_HIFN_795X not in final .config
Requested value: # CONFIG_CRYPTO_DEV_HIFN_795X is not set
Actual value:
Value requested for CONFIG_CRYPTO_LIB_POLY1305_RSIZE not in final .config
Requested value: CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
Actual value: CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
Value requested for CONFIG_AUDIT_GENERIC not in final .config
Requested value: CONFIG_AUDIT_GENERIC=y
Actual value:
Value requested for CONFIG_GENERIC_VDSO_32 not in final .config
Requested value: CONFIG_GENERIC_VDSO_32=y
Actual value:
Value requested for CONFIG_DEBUG_KMAP_LOCAL not in final .config
Requested value: # CONFIG_DEBUG_KMAP_LOCAL is not set
Actual value:
Value requested for CONFIG_DEBUG_HIGHMEM not in final .config
Requested value: # CONFIG_DEBUG_HIGHMEM is not set
Actual value:
Value requested for CONFIG_HAVE_DEBUG_STACKOVERFLOW not in final .config
Requested value: CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
Actual value:
Value requested for CONFIG_DEBUG_STACKOVERFLOW not in final .config
Requested value: # CONFIG_DEBUG_STACKOVERFLOW is not set
Actual value:
Value requested for CONFIG_HAVE_FUNCTION_GRAPH_TRACER not in final .config
Requested value: CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
Actual value:
Value requested for CONFIG_HAVE_FUNCTION_GRAPH_RETVAL not in final .config
Requested value: CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y
Actual value:
Value requested for CONFIG_DRM_KUNIT_TEST not in final .config
Requested value: CONFIG_DRM_KUNIT_TEST=m
Actual value:
Value requested for CONFIG_DRM_XE_WERROR not in final .config
Requested value: CONFIG_DRM_XE_WERROR=y
Actual value:
Value requested for CONFIG_DRM_XE_DEBUG not in final .config
Requested value: CONFIG_DRM_XE_DEBUG=y
Actual value:
Value requested for CONFIG_DRM_XE_DEBUG_MEM not in final .config
Requested value: CONFIG_DRM_XE_DEBUG_MEM=y
Actual value:
Value requested for CONFIG_DRM_XE_KUNIT_TEST not in final .config
Requested value: CONFIG_DRM_XE_KUNIT_TEST=m
Actual value:
++ nproc
+ make -j48 ARCH=i386 olddefconfig
GEN Makefile
WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
Selected by [m]:
- DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m]
#
# configuration written to .config
#
++ nproc
+ make -j48 ARCH=i386
SYNC include/config/auto.conf.cmd
GEN Makefile
WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
Selected by [m]:
- DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m]
WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
Selected by [m]:
- DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m]
WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
Selected by [m]:
- DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m]
GEN Makefile
WRAP arch/x86/include/generated/uapi/asm/bpf_perf_event.h
UPD include/generated/uapi/linux/version.h
WRAP arch/x86/include/generated/uapi/asm/errno.h
WRAP arch/x86/include/generated/uapi/asm/fcntl.h
WRAP arch/x86/include/generated/uapi/asm/ioctl.h
WRAP arch/x86/include/generated/uapi/asm/ioctls.h
WRAP arch/x86/include/generated/uapi/asm/ipcbuf.h
WRAP arch/x86/include/generated/uapi/asm/param.h
WRAP arch/x86/include/generated/uapi/asm/poll.h
WRAP arch/x86/include/generated/uapi/asm/resource.h
WRAP arch/x86/include/generated/uapi/asm/socket.h
WRAP arch/x86/include/generated/uapi/asm/sockios.h
WRAP arch/x86/include/generated/uapi/asm/termbits.h
WRAP arch/x86/include/generated/uapi/asm/termios.h
WRAP arch/x86/include/generated/uapi/asm/types.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h
SYSTBL arch/x86/include/generated/asm/syscalls_32.h
WRAP arch/x86/include/generated/asm/early_ioremap.h
WRAP arch/x86/include/generated/asm/mcs_spinlock.h
WRAP arch/x86/include/generated/asm/irq_regs.h
UPD include/generated/compile.h
WRAP arch/x86/include/generated/asm/local64.h
HOSTCC arch/x86/tools/relocs_32.o
WRAP arch/x86/include/generated/asm/kmap_size.h
HOSTCC arch/x86/tools/relocs_64.o
WRAP arch/x86/include/generated/asm/module.lds.h
WRAP arch/x86/include/generated/asm/mmiowb.h
HOSTCC arch/x86/tools/relocs_common.o
WRAP arch/x86/include/generated/asm/rwonce.h
WRAP arch/x86/include/generated/asm/unaligned.h
HOSTCC scripts/kallsyms
HOSTCC scripts/sorttable
HOSTCC scripts/asn1_compiler
HOSTCC scripts/selinux/mdp/mdp
HOSTCC scripts/selinux/genheaders/genheaders
HOSTLD arch/x86/tools/relocs
UPD include/config/kernel.release
UPD include/generated/utsrelease.h
CC scripts/mod/empty.o
HOSTCC scripts/mod/mk_elfconfig
CC scripts/mod/devicetable-offsets.s
UPD scripts/mod/devicetable-offsets.h
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/modpost.o
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/sumversion.o
HOSTCC scripts/mod/symsearch.o
HOSTLD scripts/mod/modpost
CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-arch-fallback.h
CC kernel/bounds.s
CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-instrumented.h
CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-long.h
UPD include/generated/timeconst.h
UPD include/generated/bounds.h
CC arch/x86/kernel/asm-offsets.s
UPD include/generated/asm-offsets.h
CALL /workspace/kernel/scripts/checksyscalls.sh
LDS scripts/module.lds
CC init/main.o
CC init/do_mounts.o
CC ipc/util.o
HOSTCC usr/gen_init_cpio
CC ipc/msgutil.o
UPD init/utsversion-tmp.h
CC certs/system_keyring.o
CC init/do_mounts_initrd.o
CC init/initramfs.o
CC ipc/msg.o
CC ipc/sem.o
CC block/bdev.o
CC arch/x86/power/cpu.o
CC init/calibrate.o
CC ipc/shm.o
CC io_uring/io_uring.o
AS arch/x86/lib/atomic64_cx8_32.o
CC block/fops.o
CC security/commoncap.o
CC init/init_task.o
CC block/partitions/core.o
CC arch/x86/video/video-common.o
CC arch/x86/pci/i386.o
CC mm/filemap.o
CC arch/x86/realmode/init.o
CC security/keys/gc.o
AR arch/x86/net/built-in.a
GEN security/selinux/flask.h security/selinux/av_permissions.h
AR virt/lib/built-in.a
AR arch/x86/crypto/built-in.a
CC fs/iomap/trace.o
CC fs/nfs_common/nfsacl.o
CC security/integrity/iint.o
CC fs/quota/dquot.o
CC fs/notify/dnotify/dnotify.o
CC security/selinux/avc.o
AR sound/drivers/opl3/built-in.a
AR drivers/cache/built-in.a
AR arch/x86/platform/atom/built-in.a
AR virt/built-in.a
CC arch/x86/mm/pat/set_memory.o
CC arch/x86/events/amd/core.o
AR sound/i2c/other/built-in.a
CC lib/math/div64.o
CC sound/core/seq/seq.o
CC lib/math/gcd.o
CC net/core/sock.o
CC arch/x86/kernel/fpu/init.o
AR drivers/irqchip/built-in.a
AR arch/x86/virt/svm/built-in.a
AS arch/x86/lib/checksum_32.o
AR sound/i2c/built-in.a
AR arch/x86/platform/ce4100/built-in.a
CC arch/x86/entry/vdso/vma.o
CC lib/crypto/mpi/generic_mpih-lshift.o
AR arch/x86/virt/vmx/built-in.a
AR sound/drivers/opl4/built-in.a
CC arch/x86/platform/efi/memmap.o
CC security/lsm_syscalls.o
AR drivers/bus/mhi/built-in.a
AR arch/x86/entry/vsyscall/built-in.a
AR arch/x86/virt/built-in.a
AR sound/drivers/mpu401/built-in.a
CC kernel/sched/core.o
AR drivers/bus/built-in.a
CC arch/x86/lib/cmdline.o
CC arch/x86/mm/init.o
CC crypto/asymmetric_keys/asymmetric_type.o
AR sound/drivers/vx/built-in.a
AS arch/x86/realmode/rm/header.o
AR drivers/pwm/built-in.a
CC fs/proc/task_mmu.o
AR sound/drivers/pcsp/built-in.a
AR sound/drivers/built-in.a
AS arch/x86/realmode/rm/trampoline_32.o
CC drivers/pci/msi/pcidev_msi.o
CC lib/math/lcm.o
AS arch/x86/realmode/rm/stack.o
CC drivers/video/console/dummycon.o
AS arch/x86/realmode/rm/reboot.o
AS arch/x86/lib/cmpxchg8b_emu.o
CC lib/math/int_log.o
AS arch/x86/realmode/rm/wakeup_asm.o
CC arch/x86/lib/cpu.o
CC drivers/video/console/vgacon.o
CC arch/x86/realmode/rm/wakemain.o
CC lib/math/int_pow.o
GEN usr/initramfs_data.cpio
HOSTCC certs/extract-cert
COPY usr/initramfs_inc_data
AS usr/initramfs_data.o
CC arch/x86/kernel/fpu/bugs.o
CC arch/x86/realmode/rm/video-mode.o
CC lib/math/int_sqrt.o
AR usr/built-in.a
CC lib/crypto/memneq.o
CC lib/math/reciprocal_div.o
CC arch/x86/kernel/fpu/core.o
AS arch/x86/realmode/rm/copy.o
AS arch/x86/realmode/rm/bioscall.o
CC arch/x86/realmode/rm/regs.o
CC lib/math/rational.o
CC sound/core/seq/seq_lock.o
CC arch/x86/realmode/rm/video-vga.o
AR arch/x86/video/built-in.a
CC net/ethernet/eth.o
CC lib/crypto/mpi/generic_mpih-mul1.o
CC arch/x86/power/hibernate_32.o
CERT certs/x509_certificate_list
CERT certs/signing_key.x509
AS certs/system_certificates.o
CC arch/x86/lib/delay.o
AR certs/built-in.a
CC security/integrity/integrity_audit.o
CC init/version.o
CC fs/nfs_common/grace.o
CC lib/zlib_inflate/inffast.o
CC arch/x86/pci/init.o
CC arch/x86/realmode/rm/video-vesa.o
CC lib/zlib_deflate/deflate.o
CC ipc/syscall.o
CC security/keys/key.o
CC drivers/pci/msi/api.o
AR fs/notify/dnotify/built-in.a
CC crypto/asymmetric_keys/restrict.o
CC fs/notify/inotify/inotify_fsnotify.o
CC security/keys/keyring.o
CC arch/x86/realmode/rm/video-bios.o
CC arch/x86/events/amd/lbr.o
CC arch/x86/entry/vdso/extable.o
CC security/min_addr.o
CC arch/x86/platform/efi/quirks.o
CC block/partitions/msdos.o
CC fs/notify/inotify/inotify_user.o
CC lib/zlib_inflate/inflate.o
PASYMS arch/x86/realmode/rm/pasyms.h
AR net/802/built-in.a
LDS arch/x86/realmode/rm/realmode.lds
CC sound/core/sound.o
LD arch/x86/realmode/rm/realmode.elf
RELOCS arch/x86/realmode/rm/realmode.relocs
OBJCOPY arch/x86/realmode/rm/realmode.bin
AS arch/x86/realmode/rmpiggy.o
AR lib/math/built-in.a
AS arch/x86/lib/getuser.o
CC security/selinux/hooks.o
AR arch/x86/realmode/built-in.a
CC security/security.o
CC drivers/pci/msi/msi.o
CC security/selinux/selinuxfs.o
GEN arch/x86/lib/inat-tables.c
CC drivers/pci/msi/irqdomain.o
CC sound/core/seq/seq_clientmgr.o
CC lib/zlib_deflate/deftree.o
CC lib/zlib_inflate/infutil.o
CC arch/x86/lib/insn-eval.o
CC arch/x86/platform/efi/efi.o
CC crypto/asymmetric_keys/signature.o
LDS arch/x86/entry/vdso/vdso32/vdso32.lds
AS arch/x86/entry/vdso/vdso32/note.o
CC fs/iomap/iter.o
CC lib/crypto/mpi/generic_mpih-mul2.o
CC block/bio.o
CC fs/iomap/buffered-io.o
CC fs/quota/quota_v2.o
CC fs/kernfs/mount.o
AR drivers/video/console/built-in.a
CC drivers/video/backlight/backlight.o
AS arch/x86/power/hibernate_asm_32.o
CC arch/x86/mm/pat/memtype.o
CC arch/x86/lib/insn.o
CC arch/x86/pci/pcbios.o
CC arch/x86/power/hibernate.o
AR security/integrity/built-in.a
CC sound/core/seq/seq_memory.o
CC block/elevator.o
AR fs/nfs_common/built-in.a
AR init/built-in.a
CC lib/zlib_deflate/deflate_syms.o
CC sound/core/init.o
CC lib/crypto/utils.o
CC fs/sysfs/file.o
AR drivers/video/fbdev/core/built-in.a
CC lib/zlib_inflate/inftrees.o
AR drivers/video/fbdev/omap/built-in.a
CC arch/x86/kernel/fpu/regset.o
CC sound/core/memory.o
AR drivers/video/fbdev/omap2/omapfb/dss/built-in.a
CC arch/x86/kernel/fpu/signal.o
AR drivers/video/fbdev/omap2/omapfb/displays/built-in.a
AS arch/x86/entry/vdso/vdso32/system_call.o
CC ipc/ipc_sysctl.o
AR drivers/video/fbdev/omap2/omapfb/built-in.a
CC arch/x86/kernel/fpu/xstate.o
AS arch/x86/entry/vdso/vdso32/sigreturn.o
AR drivers/video/fbdev/omap2/built-in.a
AR drivers/video/fbdev/built-in.a
CC arch/x86/entry/vdso/vdso32/vclock_gettime.o
CC arch/x86/events/amd/ibs.o
CC lib/zlib_inflate/inflate_syms.o
CC ipc/mqueue.o
CC crypto/asymmetric_keys/public_key.o
CC arch/x86/pci/mmconfig_32.o
CC block/partitions/efi.o
CC arch/x86/mm/pat/memtype_interval.o
CC security/lsm_audit.o
CC lib/crypto/mpi/generic_mpih-mul3.o
CC fs/proc/inode.o
AR fs/notify/inotify/built-in.a
CC lib/lzo/lzo1x_compress.o
CC kernel/sched/fair.o
AR fs/notify/fanotify/built-in.a
AR lib/zlib_deflate/built-in.a
CC lib/lzo/lzo1x_decompress_safe.o
CC fs/notify/fsnotify.o
CC arch/x86/lib/kaslr.o
CC sound/core/seq/seq_queue.o
CC arch/x86/pci/direct.o
AR net/ethernet/built-in.a
CC fs/quota/quota_tree.o
CC net/sched/sch_generic.o
AR drivers/pci/msi/built-in.a
CC drivers/pci/pcie/portdrv.o
CC net/sched/sch_mq.o
AR lib/zlib_inflate/built-in.a
CC security/keys/keyctl.o
AR arch/x86/power/built-in.a
CC fs/iomap/direct-io.o
CC net/netlink/af_netlink.o
AR net/bpf/built-in.a
CC arch/x86/lib/memcpy_32.o
CC arch/x86/platform/efi/efi_32.o
AS arch/x86/platform/efi/efi_stub_32.o
CC fs/kernfs/inode.o
CC arch/x86/platform/efi/runtime-map.o
AS arch/x86/lib/memmove_32.o
CC fs/quota/quota.o
CC arch/x86/lib/misc.o
AR drivers/video/backlight/built-in.a
CC drivers/video/aperture.o
CC arch/x86/lib/pc-conf-reg.o
CC fs/kernfs/dir.o
CC arch/x86/pci/mmconfig-shared.o
CC drivers/pci/pcie/rcec.o
CC fs/sysfs/dir.o
CC security/keys/permission.o
CC security/device_cgroup.o
AR lib/lzo/built-in.a
ASN.1 crypto/asymmetric_keys/x509.asn1.[ch]
CC io_uring/opdef.o
ASN.1 crypto/asymmetric_keys/x509_akid.asn1.[ch]
CC crypto/asymmetric_keys/x509_loader.o
CC lib/lz4/lz4_decompress.o
AS arch/x86/lib/putuser.o
AS arch/x86/lib/retpoline.o
CC crypto/asymmetric_keys/x509_public_key.o
AR arch/x86/mm/pat/built-in.a
CC arch/x86/entry/vdso/vdso32/vgetcpu.o
CC arch/x86/lib/string_32.o
CC arch/x86/mm/init_32.o
ASN.1 crypto/asymmetric_keys/pkcs7.asn1.[ch]
CC lib/crypto/mpi/generic_mpih-rshift.o
CC sound/core/control.o
CC arch/x86/lib/strstr_32.o
HOSTCC arch/x86/entry/vdso/vdso2c
CC arch/x86/entry/vdso/vdso32-setup.o
CC arch/x86/lib/usercopy.o
AR drivers/pci/pwrctl/built-in.a
CC crypto/asymmetric_keys/pkcs7_trust.o
CC fs/proc/root.o
CC fs/proc/base.o
AR block/partitions/built-in.a
CC io_uring/kbuf.o
CC io_uring/rsrc.o
CC sound/core/seq/seq_fifo.o
CC fs/proc/generic.o
CC fs/notify/notification.o
CC fs/sysfs/symlink.o
AS arch/x86/entry/entry.o
CC fs/kernfs/file.o
AR arch/x86/kernel/fpu/built-in.a
CC fs/devpts/inode.o
CC arch/x86/kernel/cpu/mce/core.o
CC arch/x86/kernel/cpu/mtrr/mtrr.o
CC arch/x86/lib/usercopy_32.o
AR arch/x86/platform/efi/built-in.a
CC arch/x86/events/amd/uncore.o
AR arch/x86/platform/geode/built-in.a
CC fs/quota/kqid.o
AR arch/x86/platform/iris/built-in.a
CC arch/x86/kernel/cpu/mce/severity.o
CC arch/x86/platform/intel/iosf_mbi.o
VDSO arch/x86/entry/vdso/vdso32.so.dbg
OBJCOPY arch/x86/entry/vdso/vdso32.so
CC drivers/pci/pcie/aspm.o
VDSO2C arch/x86/entry/vdso/vdso-image-32.c
CC block/blk-core.o
CC arch/x86/kernel/cpu/mce/genpool.o
CC arch/x86/entry/vdso/vdso-image-32.o
CC drivers/video/cmdline.o
CC net/core/request_sock.o
CC arch/x86/kernel/acpi/boot.o
CC crypto/asymmetric_keys/pkcs7_verify.o
CC drivers/video/nomodeset.o
CC mm/mempool.o
CC lib/crypto/mpi/generic_mpih-sub1.o
CC arch/x86/kernel/acpi/sleep.o
CC arch/x86/lib/msr-smp.o
CC arch/x86/mm/fault.o
CC arch/x86/pci/fixup.o
CC security/keys/process_keys.o
CC fs/iomap/fiemap.o
CC ipc/namespace.o
AR arch/x86/entry/vdso/built-in.a
CC arch/x86/mm/ioremap.o
AS arch/x86/entry/entry_32.o
CC arch/x86/kernel/cpu/mce/intel.o
CC sound/core/seq/seq_prioq.o
CC arch/x86/entry/syscall_32.o
CC fs/notify/group.o
CC fs/netfs/buffered_read.o
AR arch/x86/platform/intel-mid/built-in.a
CC drivers/video/hdmi.o
CC net/netlink/genetlink.o
CC fs/ext4/balloc.o
CC fs/quota/netlink.o
CC crypto/asymmetric_keys/x509.asn1.o
CC arch/x86/lib/cache-smp.o
CC fs/ext4/bitmap.o
CC crypto/asymmetric_keys/x509_akid.asn1.o
CC fs/sysfs/mount.o
CC crypto/asymmetric_keys/x509_cert_parser.o
CC fs/proc/array.o
CC crypto/asymmetric_keys/pkcs7.asn1.o
CC arch/x86/mm/extable.o
AR lib/lz4/built-in.a
CC lib/crypto/mpi/generic_mpih-add1.o
AR fs/devpts/built-in.a
CC lib/crypto/chacha.o
CC arch/x86/kernel/cpu/mtrr/if.o
CC arch/x86/lib/msr.o
CC lib/zstd/zstd_decompress_module.o
AS arch/x86/lib/msr-reg.o
AR drivers/idle/built-in.a
CC arch/x86/lib/msr-reg-export.o
AR drivers/char/ipmi/built-in.a
AR arch/x86/platform/intel/built-in.a
CC lib/xz/xz_dec_syms.o
AR arch/x86/platform/intel-quark/built-in.a
CC lib/dim/dim.o
CC ipc/mq_sysctl.o
AR arch/x86/platform/olpc/built-in.a
CC lib/crypto/aes.o
CC fs/kernfs/symlink.o
AR arch/x86/platform/scx200/built-in.a
AR arch/x86/platform/ts5500/built-in.a
AS arch/x86/lib/hweight.o
AR arch/x86/platform/uv/built-in.a
CC lib/crypto/arc4.o
CC mm/oom_kill.o
AR arch/x86/platform/built-in.a
CC arch/x86/kernel/cpu/mtrr/generic.o
CC lib/dim/net_dim.o
CC kernel/locking/mutex.o
CC arch/x86/kernel/cpu/mce/amd.o
CC lib/fonts/fonts.o
CC fs/sysfs/group.o
CC fs/iomap/seek.o
CC io_uring/notif.o
CC net/core/skbuff.o
CC sound/core/seq/seq_timer.o
AR arch/x86/events/amd/built-in.a
CC net/sched/sch_frag.o
CC arch/x86/events/intel/core.o
CC fs/notify/mark.o
CC net/core/datagram.o
CC crypto/asymmetric_keys/pkcs7_parser.o
CC lib/xz/xz_dec_stream.o
AS arch/x86/kernel/acpi/wakeup_32.o
CC lib/zstd/decompress/huf_decompress.o
CC arch/x86/pci/acpi.o
CC arch/x86/kernel/acpi/cstate.o
CC drivers/pci/pcie/pme.o
CC lib/crypto/mpi/ec.o
AR ipc/built-in.a
CC kernel/power/qos.o
CC kernel/sched/build_policy.o
AR drivers/video/built-in.a
CC kernel/printk/printk.o
CC security/keys/request_key.o
CC fs/jbd2/transaction.o
AR fs/quota/built-in.a
CC fs/jbd2/commit.o
CC fs/ramfs/inode.o
CC fs/hugetlbfs/inode.o
CC fs/ramfs/file-mmu.o
CC lib/fonts/font_8x16.o
CC lib/crypto/gf128mul.o
CC net/sched/sch_api.o
CC kernel/irq/irqdesc.o
CC arch/x86/mm/mmap.o
CC kernel/irq/handle.o
CC security/selinux/netlink.o
CC arch/x86/entry/common.o
AR fs/kernfs/built-in.a
CC arch/x86/lib/iomem.o
CC lib/crypto/blake2s.o
CC lib/crypto/blake2s-generic.o
CC fs/proc/fd.o
CC lib/xz/xz_dec_lzma2.o
AR fs/sysfs/built-in.a
CC fs/netfs/buffered_write.o
CC fs/iomap/swapfile.o
AR crypto/asymmetric_keys/built-in.a
CC crypto/api.o
AR arch/x86/kernel/acpi/built-in.a
CC arch/x86/kernel/cpu/microcode/core.o
AR lib/fonts/built-in.a
CC block/blk-sysfs.o
CC sound/core/seq/seq_system.o
CC sound/core/seq/seq_ports.o
CC lib/dim/rdma_dim.o
CC drivers/pci/hotplug/pci_hotplug_core.o
CC arch/x86/kernel/cpu/mtrr/cleanup.o
CC arch/x86/pci/legacy.o
AR drivers/pci/pcie/built-in.a
CC drivers/pci/hotplug/acpi_pcihp.o
CC fs/fat/cache.o
CC fs/isofs/namei.o
CC fs/notify/fdinfo.o
CC arch/x86/lib/atomic64_32.o
CC kernel/printk/printk_safe.o
AR fs/ramfs/built-in.a
CC lib/crypto/sha1.o
CC arch/x86/kernel/apic/apic.o
CC net/netlink/policy.o
CC kernel/printk/nbcon.o
CC arch/x86/mm/pgtable.o
CC arch/x86/lib/inat.o
CC arch/x86/kernel/apic/apic_common.o
CC security/keys/request_key_auth.o
CC io_uring/tctx.o
CC kernel/locking/semaphore.o
CC fs/fat/dir.o
CC kernel/irq/manage.o
AR lib/dim/built-in.a
CC kernel/irq/spurious.o
AR arch/x86/lib/built-in.a
AR arch/x86/lib/lib.a
CC lib/crypto/mpi/mpicoder.o
CC security/selinux/nlmsgtab.o
CC arch/x86/mm/physaddr.o
CC lib/xz/xz_dec_bcj.o
CC block/blk-flush.o
CC kernel/power/main.o
CC mm/fadvise.o
AS arch/x86/entry/thunk.o
AR fs/iomap/built-in.a
CC block/blk-settings.o
CC lib/zstd/decompress/zstd_ddict.o
CC arch/x86/kernel/cpu/mce/threshold.o
AR arch/x86/entry/built-in.a
CC security/keys/user_defined.o
CC arch/x86/kernel/cpu/microcode/intel.o
CC arch/x86/kernel/cpu/microcode/amd.o
CC fs/isofs/inode.o
CC fs/proc/proc_tty.o
CC arch/x86/pci/irq.o
CC crypto/cipher.o
AR fs/hugetlbfs/built-in.a
CC sound/core/seq/seq_info.o
CC arch/x86/kernel/cpu/mtrr/amd.o
CC lib/zstd/decompress/zstd_decompress.o
CC sound/core/seq/seq_dummy.o
CC drivers/acpi/acpica/dsargs.o
AR drivers/acpi/pmic/built-in.a
CC fs/ext4/block_validity.o
CC net/sched/sch_blackhole.o
CC drivers/acpi/acpica/dscontrol.o
AR fs/notify/built-in.a
AR drivers/pci/hotplug/built-in.a
CC drivers/acpi/dptf/int340x_thermal.o
CC kernel/rcu/update.o
CC kernel/rcu/sync.o
AR drivers/pci/controller/dwc/built-in.a
AR drivers/pci/controller/mobiveil/built-in.a
CC kernel/rcu/srcutree.o
AR drivers/pci/controller/plda/built-in.a
CC kernel/rcu/tree.o
CC fs/jbd2/recovery.o
AR drivers/pci/controller/built-in.a
CC kernel/rcu/rcu_segcblist.o
AR drivers/pci/switch/built-in.a
CC drivers/pci/access.o
CC block/blk-ioc.o
CC drivers/pci/bus.o
CC fs/netfs/direct_read.o
AR lib/xz/built-in.a
CC kernel/irq/resend.o
CC arch/x86/mm/tlb.o
CC arch/x86/mm/cpu_entry_area.o
CC kernel/locking/rwsem.o
AR net/netlink/built-in.a
CC fs/nfs/client.o
CC arch/x86/mm/maccess.o
CC fs/nfs/dir.o
CC lib/zstd/decompress/zstd_decompress_block.o
CC drivers/acpi/acpica/dsdebug.o
CC lib/crypto/mpi/mpi-add.o
CC security/keys/proc.o
CC io_uring/filetable.o
AR drivers/acpi/dptf/built-in.a
CC fs/nfs/file.o
CC arch/x86/kernel/cpu/mtrr/cyrix.o
CC kernel/printk/printk_ringbuffer.o
AR sound/core/seq/built-in.a
CC sound/core/misc.o
CC crypto/compress.o
CC fs/proc/cmdline.o
CC mm/maccess.o
CC fs/exportfs/expfs.o
CC security/selinux/netif.o
CC drivers/pci/probe.o
CC arch/x86/mm/pgprot.o
CC fs/nfs/getroot.o
CC lib/crypto/mpi/mpi-bit.o
CC lib/zstd/zstd_common_module.o
AR arch/x86/kernel/cpu/microcode/built-in.a
CC lib/zstd/common/debug.o
CC kernel/irq/chip.o
CC arch/x86/kernel/cpu/cacheinfo.o
CC fs/lockd/clntlock.o
CC arch/x86/kernel/cpu/scattered.o
CC kernel/power/console.o
CC drivers/acpi/acpica/dsfield.o
CC fs/lockd/clntproc.o
CC block/blk-map.o
CC net/sched/cls_api.o
CC drivers/acpi/x86/apple.o
CC arch/x86/kernel/cpu/topology_common.o
CC fs/fat/fatent.o
AR arch/x86/kernel/cpu/mce/built-in.a
CC drivers/acpi/x86/cmos_rtc.o
CC fs/ext4/dir.o
CC security/keys/sysctl.o
CC arch/x86/pci/common.o
CC fs/isofs/dir.o
CC fs/jbd2/checkpoint.o
CC kernel/printk/sysctl.o
CC kernel/locking/percpu-rwsem.o
CC fs/netfs/direct_write.o
CC fs/proc/consoles.o
CC arch/x86/kernel/cpu/mtrr/centaur.o
CC drivers/pci/host-bridge.o
CC arch/x86/kernel/cpu/mtrr/legacy.o
CC security/keys/keyctl_pkey.o
CC crypto/algapi.o
CC kernel/sched/build_utility.o
CC drivers/acpi/acpica/dsinit.o
CC arch/x86/kernel/apic/apic_noop.o
CC arch/x86/mm/pgtable_32.o
CC arch/x86/kernel/cpu/topology_ext.o
CC sound/core/device.o
AR fs/exportfs/built-in.a
CC arch/x86/kernel/cpu/topology_amd.o
CC fs/isofs/util.o
AR kernel/printk/built-in.a
AR kernel/livepatch/built-in.a
CC mm/page-writeback.o
CC fs/nfs/inode.o
CC io_uring/rw.o
CC lib/crypto/mpi/mpi-cmp.o
CC arch/x86/kernel/cpu/common.o
CC arch/x86/events/intel/bts.o
CC drivers/acpi/x86/lpss.o
CC kernel/power/process.o
CC kernel/dma/mapping.o
CC drivers/acpi/x86/s2idle.o
CC drivers/acpi/acpica/dsmethod.o
CC arch/x86/kernel/apic/ipi.o
CC fs/nfs/super.o
AR arch/x86/kernel/cpu/mtrr/built-in.a
CC sound/core/info.o
CC kernel/irq/dummychip.o
CC drivers/pci/remove.o
CC security/selinux/netnode.o
CC fs/proc/cpuinfo.o
CC kernel/locking/spinlock.o
CC kernel/entry/common.o
CC kernel/module/main.o
CC arch/x86/events/intel/ds.o
CC kernel/module/strict_rwx.o
AR security/keys/built-in.a
CC drivers/acpi/tables.o
CC kernel/module/kmod.o
CC sound/core/isadma.o
CC arch/x86/pci/early.o
CC arch/x86/events/intel/knc.o
CC arch/x86/mm/iomap_32.o
CC block/blk-merge.o
CC fs/isofs/rock.o
CC lib/crypto/mpi/mpi-sub-ui.o
CC fs/ext4/ext4_jbd2.o
CC net/ethtool/ioctl.o
CC drivers/acpi/acpica/dsmthdat.o
CC fs/fat/file.o
CC fs/netfs/io.o
CC kernel/locking/osq_lock.o
CC fs/jbd2/revoke.o
CC net/ethtool/common.o
CC kernel/irq/devres.o
CC fs/lockd/clntxdr.o
CC arch/x86/kernel/apic/vector.o
CC kernel/module/tree_lookup.o
CC fs/proc/devices.o
CC kernel/entry/syscall_user_dispatch.o
CC net/ethtool/netlink.o
CC crypto/scatterwalk.o
CC drivers/pci/pci.o
CC kernel/locking/qspinlock.o
CC crypto/proc.o
CC lib/zstd/common/entropy_common.o
CC fs/jbd2/journal.o
CC drivers/acpi/x86/utils.o
CC drivers/acpi/acpica/dsobject.o
CC arch/x86/mm/hugetlbpage.o
CC arch/x86/pci/bus_numa.o
CC kernel/dma/direct.o
CC sound/core/vmaster.o
CC lib/crypto/mpi/mpi-div.o
CC lib/zstd/common/error_private.o
CC kernel/power/suspend.o
CC kernel/dma/ops_helpers.o
CC lib/zstd/common/fse_decompress.o
CC arch/x86/events/zhaoxin/core.o
CC kernel/irq/autoprobe.o
CC io_uring/net.o
CC drivers/acpi/osi.o
CC arch/x86/events/intel/lbr.o
CC kernel/dma/dummy.o
CC fs/isofs/export.o
CC net/core/stream.o
CC security/selinux/netport.o
CC kernel/locking/rtmutex_api.o
CC arch/x86/mm/dump_pagetables.o
AR kernel/entry/built-in.a
CC arch/x86/pci/amd_bus.o
CC drivers/acpi/acpica/dsopcode.o
CC fs/proc/interrupts.o
CC arch/x86/kernel/cpu/rdrand.o
CC net/ethtool/bitset.o
CC net/ethtool/strset.o
CC drivers/acpi/x86/blacklist.o
CC crypto/aead.o
CC fs/fat/inode.o
CC arch/x86/kernel/cpu/match.o
CC net/netfilter/core.o
CC sound/core/ctljack.o
CC net/netfilter/nf_log.o
CC lib/zstd/common/zstd_common.o
CC kernel/time/time.o
CC fs/nfs/io.o
CC kernel/irq/irqdomain.o
CC arch/x86/kernel/kprobes/core.o
CC fs/nfs/direct.o
CC lib/crypto/mpi/mpi-inv.o
CC mm/folio-compat.o
CC kernel/dma/remap.o
AR lib/zstd/built-in.a
CC fs/lockd/host.o
CC kernel/futex/core.o
CC fs/netfs/iterator.o
CC drivers/acpi/acpica/dspkginit.o
CC kernel/futex/syscalls.o
CC fs/proc/loadavg.o
CC arch/x86/kernel/kprobes/opt.o
AR drivers/acpi/x86/built-in.a
CC net/sched/act_api.o
LDS arch/x86/kernel/vmlinux.lds
CC fs/isofs/joliet.o
CC fs/nfs/pagelist.o
CC arch/x86/kernel/cpu/bugs.o
CC block/blk-timeout.o
CC fs/nls/nls_base.o
CC arch/x86/kernel/cpu/aperfmperf.o
AR arch/x86/events/zhaoxin/built-in.a
AS arch/x86/kernel/head_32.o
CC sound/core/jack.o
AR sound/isa/ad1816a/built-in.a
CC sound/core/timer.o
AR sound/isa/ad1848/built-in.a
CC arch/x86/mm/highmem_32.o
AR arch/x86/pci/built-in.a
CC sound/core/hrtimer.o
AR sound/isa/cs423x/built-in.a
AR sound/isa/es1688/built-in.a
AR sound/isa/galaxy/built-in.a
AR sound/isa/gus/built-in.a
AR sound/isa/msnd/built-in.a
AR sound/isa/opti9xx/built-in.a
AR sound/isa/sb/built-in.a
CC kernel/module/kallsyms.o
CC kernel/locking/qrwlock.o
AR sound/isa/wavefront/built-in.a
CC kernel/power/hibernate.o
AR sound/isa/wss/built-in.a
CC drivers/acpi/acpica/dsutils.o
AR sound/isa/built-in.a
CC crypto/geniv.o
CC arch/x86/kernel/apic/init.o
AR kernel/dma/built-in.a
CC lib/crypto/mpi/mpi-mod.o
CC lib/crypto/mpi/mpi-mul.o
CC fs/ext4/extents.o
CC net/core/scm.o
AR sound/pci/ac97/built-in.a
AR sound/pci/ali5451/built-in.a
AR sound/pci/asihpi/built-in.a
CC security/selinux/status.o
CC fs/proc/meminfo.o
AR sound/pci/au88x0/built-in.a
AR sound/pci/aw2/built-in.a
AR kernel/rcu/built-in.a
CC fs/nls/nls_cp437.o
AR sound/pci/ctxfi/built-in.a
CC fs/proc/stat.o
CC mm/readahead.o
AR sound/pci/ca0106/built-in.a
AR sound/pci/cs46xx/built-in.a
CC arch/x86/events/intel/p4.o
AR sound/pci/cs5535audio/built-in.a
AR sound/pci/lola/built-in.a
CC lib/crypto/mpi/mpih-cmp.o
AR sound/pci/lx6464es/built-in.a
AR sound/pci/echoaudio/built-in.a
CC net/core/gen_stats.o
AR sound/pci/emu10k1/built-in.a
CC fs/isofs/compress.o
CC net/core/gen_estimator.o
AR sound/pci/hda/built-in.a
AR sound/ppc/built-in.a
CC [M] sound/pci/hda/hda_bind.o
AR sound/arm/built-in.a
CC fs/netfs/locking.o
CC fs/netfs/main.o
CC kernel/time/timer.o
CC block/blk-lib.o
AR sound/pci/ice1712/built-in.a
CC kernel/futex/pi.o
CC drivers/acpi/acpica/dswexec.o
AR sound/sh/built-in.a
CC block/blk-mq.o
CC kernel/cgroup/cgroup.o
AR arch/x86/kernel/kprobes/built-in.a
AR arch/x86/mm/built-in.a
CC arch/x86/kernel/apic/hw_nmi.o
AR kernel/locking/built-in.a
CC block/blk-mq-tag.o
CC kernel/trace/trace_clock.o
CC block/blk-stat.o
CC kernel/bpf/core.o
CC drivers/acpi/acpica/dswload.o
CC arch/x86/kernel/head32.o
CC sound/core/seq_device.o
CC kernel/irq/proc.o
CC fs/fat/misc.o
CC fs/nls/nls_ascii.o
CC net/netfilter/nf_queue.o
CC kernel/trace/ring_buffer.o
CC kernel/futex/requeue.o
CC net/ethtool/linkinfo.o
CC fs/lockd/svc.o
CC io_uring/poll.o
CC kernel/module/procfs.o
CC fs/proc/uptime.o
CC lib/crypto/mpi/mpih-div.o
CC fs/proc/util.o
CC drivers/acpi/acpica/dswload2.o
CC crypto/lskcipher.o
AR kernel/sched/built-in.a
AR sound/pci/korg1212/built-in.a
CC fs/ext4/extents_status.o
CC drivers/acpi/acpica/dswscope.o
CC kernel/trace/trace.o
CC fs/nls/nls_iso8859-1.o
CC arch/x86/kernel/apic/io_apic.o
CC kernel/futex/waitwake.o
CC [M] sound/pci/hda/hda_codec.o
AR fs/jbd2/built-in.a
CC drivers/pci/pci-driver.o
CC drivers/pci/search.o
CC drivers/pci/rom.o
AR fs/isofs/built-in.a
CC arch/x86/kernel/ebda.o
AR fs/unicode/built-in.a
CC fs/autofs/init.o
CC security/selinux/ss/ebitmap.o
CC fs/autofs/inode.o
CC arch/x86/events/intel/p6.o
CC [M] sound/core/hwdep.o
CC mm/swap.o
CC fs/autofs/root.o
CC fs/lockd/svclock.o
CC arch/x86/kernel/cpu/cpuid-deps.o
CC kernel/irq/migration.o
CC net/netfilter/nf_sockopt.o
CC net/core/net_namespace.o
CC drivers/acpi/acpica/dswstate.o
CC kernel/power/snapshot.o
CC kernel/module/sysfs.o
CC io_uring/eventfd.o
CC fs/nls/nls_utf8.o
CC arch/x86/kernel/platform-quirks.o
CC net/ipv4/netfilter/nf_defrag_ipv4.o
CC fs/fat/nfs.o
CC fs/proc/version.o
CC arch/x86/kernel/process_32.o
CC net/sched/sch_fifo.o
CC fs/9p/vfs_super.o
CC net/ethtool/linkmodes.o
CC lib/crypto/mpi/mpih-mul.o
CC fs/9p/vfs_inode.o
CC arch/x86/kernel/cpu/umwait.o
CC kernel/irq/cpuhotplug.o
CC fs/netfs/misc.o
AR fs/nls/built-in.a
AR fs/hostfs/built-in.a
CC drivers/acpi/acpica/evevent.o
CC fs/nfs/read.o
CC fs/debugfs/inode.o
CC fs/nfs/symlink.o
CC block/blk-mq-sysfs.o
CC crypto/skcipher.o
CC [M] sound/core/pcm.o
CC fs/debugfs/file.o
AR kernel/futex/built-in.a
CC security/selinux/ss/hashtab.o
CC net/sched/cls_cgroup.o
CC kernel/irq/pm.o
CC fs/proc/softirqs.o
CC kernel/irq/msi.o
CC arch/x86/events/intel/pt.o
AR kernel/module/built-in.a
CC fs/ext4/file.o
CC drivers/pnp/pnpacpi/core.o
CC fs/autofs/symlink.o
CC drivers/pnp/core.o
CC drivers/pnp/pnpacpi/rsparser.o
CC drivers/acpi/acpica/evgpe.o
CC fs/lockd/svcshare.o
CC fs/fat/namei_vfat.o
CC net/netfilter/utils.o
CC security/selinux/ss/symtab.o
CC net/xfrm/xfrm_policy.o
CC security/selinux/ss/sidtab.o
CC drivers/pci/setup-res.o
CC io_uring/uring_cmd.o
MKCAP arch/x86/kernel/cpu/capflags.c
CC kernel/time/hrtimer.o
CC net/xfrm/xfrm_state.o
CC lib/crypto/mpi/mpi-pow.o
CC [M] sound/pci/hda/hda_jack.o
CC net/ipv4/netfilter/nf_reject_ipv4.o
CC security/selinux/ss/avtab.o
CC fs/lockd/svcproc.o
CC fs/proc/namespaces.o
CC kernel/time/timekeeping.o
CC fs/netfs/objects.o
CC net/ethtool/rss.o
CC drivers/acpi/acpica/evgpeblk.o
CC mm/truncate.o
CC net/ethtool/linkstate.o
CC arch/x86/kernel/apic/msi.o
CC net/core/secure_seq.o
CC mm/vmscan.o
CC fs/9p/vfs_inode_dotl.o
CC [M] sound/core/pcm_native.o
CC [M] sound/core/pcm_lib.o
CC fs/autofs/waitq.o
CC arch/x86/kernel/apic/probe_32.o
CC net/ethtool/debug.o
CC kernel/power/swap.o
AR fs/debugfs/built-in.a
CC net/unix/af_unix.o
CC drivers/pnp/card.o
CC net/sched/ematch.o
CC crypto/seqiv.o
CC net/unix/garbage.o
AR drivers/pnp/pnpacpi/built-in.a
CC security/selinux/ss/policydb.o
CC kernel/irq/affinity.o
AR kernel/bpf/built-in.a
CC drivers/pci/irq.o
CC drivers/pci/vpd.o
CC drivers/acpi/acpica/evgpeinit.o
CC net/unix/sysctl_net_unix.o
CC lib/crypto/mpi/mpiutil.o
CC kernel/power/user.o
CC fs/lockd/svcsubs.o
CC arch/x86/events/intel/uncore.o
CC fs/proc/self.o
CC net/ipv6/netfilter/ip6_tables.o
CC fs/fat/namei_msdos.o
CC net/netfilter/nfnetlink.o
CC [M] sound/pci/hda/hda_auto_parser.o
AR arch/x86/kernel/apic/built-in.a
CC net/ipv6/netfilter/ip6table_filter.o
CC drivers/acpi/acpica/evgpeutil.o
CC io_uring/openclose.o
CC fs/lockd/mon.o
CC kernel/irq/matrix.o
CC fs/autofs/expire.o
CC fs/9p/vfs_addr.o
CC fs/9p/vfs_file.o
CC crypto/echainiv.o
CC crypto/ahash.o
CC block/blk-mq-cpumap.o
CC net/core/flow_dissector.o
CC fs/netfs/write_collect.o
CC fs/netfs/write_issue.o
CC drivers/pnp/driver.o
CC kernel/events/core.o
CC fs/nfs/unlink.o
CC drivers/pnp/resource.o
AR lib/crypto/mpi/built-in.a
CC drivers/pnp/manager.o
CC net/ipv4/netfilter/ip_tables.o
CC lib/crypto/sha256.o
CC net/ethtool/wol.o
CC arch/x86/events/core.o
CC [M] sound/core/pcm_misc.o
CC fs/proc/thread_self.o
CC drivers/pci/setup-bus.o
CC drivers/acpi/acpica/evglock.o
CC kernel/time/ntp.o
CC fs/tracefs/inode.o
AR net/sched/built-in.a
CC net/xfrm/xfrm_hash.o
CC kernel/power/poweroff.o
CC fs/ext4/fsmap.o
CC net/xfrm/xfrm_input.o
CC kernel/events/ring_buffer.o
CC kernel/events/callchain.o
CC kernel/cgroup/rstat.o
AR fs/fat/built-in.a
CC block/blk-mq-sched.o
CC net/xfrm/xfrm_output.o
CC kernel/trace/trace_output.o
CC mm/shrinker.o
CC fs/autofs/dev-ioctl.o
CC drivers/acpi/acpica/evhandler.o
CC kernel/trace/trace_seq.o
CC fs/9p/vfs_dir.o
AR kernel/power/built-in.a
CC fs/9p/vfs_dentry.o
CC arch/x86/events/intel/uncore_nhmex.o
CC [M] sound/pci/hda/hda_sysfs.o
CC net/ipv4/netfilter/iptable_filter.o
CC io_uring/sqpoll.o
CC fs/proc/proc_sysctl.o
AR lib/crypto/built-in.a
CC lib/argv_split.o
CC net/ipv4/netfilter/iptable_mangle.o
CC net/netfilter/nfnetlink_log.o
CC fs/proc/proc_net.o
AR drivers/amba/built-in.a
CC crypto/shash.o
CC net/ipv6/af_inet6.o
CC fs/lockd/trace.o
AR kernel/irq/built-in.a
CC net/ipv6/anycast.o
CC drivers/acpi/acpica/evmisc.o
CC drivers/pnp/support.o
CC net/ethtool/features.o
CC lib/bug.o
CC [M] sound/pci/hda/hda_controller.o
CC kernel/time/clocksource.o
CC fs/9p/v9fs.o
CC fs/tracefs/event_inode.o
CC net/netfilter/nf_conntrack_core.o
CC net/ipv6/netfilter/ip6table_mangle.o
AR fs/netfs/built-in.a
CC kernel/events/hw_breakpoint.o
CC net/ipv6/netfilter/nf_defrag_ipv6_hooks.o
CC [M] sound/pci/hda/hda_proc.o
AR sound/synth/emux/built-in.a
CC drivers/pnp/interface.o
AR sound/synth/built-in.a
CC fs/nfs/write.o
CC drivers/acpi/acpica/evregion.o
CC arch/x86/events/probe.o
CC [M] sound/core/pcm_memory.o
AR fs/autofs/built-in.a
AR net/unix/built-in.a
CC arch/x86/events/utils.o
CC arch/x86/events/rapl.o
CC [M] sound/core/memalloc.o
CC kernel/time/jiffies.o
CC kernel/time/timer_list.o
CC arch/x86/events/intel/uncore_snb.o
CC lib/buildid.o
CC block/ioctl.o
CC kernel/cgroup/namespace.o
CC drivers/pci/vc.o
CC lib/clz_tab.o
CC security/selinux/ss/services.o
CC net/ipv4/netfilter/ipt_REJECT.o
CC mm/shmem.o
CC lib/cmdline.o
CC crypto/akcipher.o
CC crypto/sig.o
CC block/genhd.o
CC block/ioprio.o
CC fs/9p/fid.o
CC block/badblocks.o
CC security/selinux/ss/conditional.o
CC crypto/kpp.o
CC drivers/acpi/acpica/evrgnini.o
CC net/xfrm/xfrm_sysctl.o
CC arch/x86/events/msr.o
CC net/core/sysctl_net_core.o
CC drivers/pnp/quirks.o
CC net/netfilter/nf_conntrack_standalone.o
CC fs/lockd/xdr.o
CC kernel/trace/trace_stat.o
CC kernel/trace/trace_printk.o
CC fs/nfs/namespace.o
CC net/ethtool/privflags.o
AR fs/tracefs/built-in.a
CC fs/lockd/clnt4xdr.o
CC net/netfilter/nf_conntrack_expect.o
CC net/netfilter/nf_conntrack_helper.o
CC kernel/time/timeconv.o
CC lib/cpumask.o
CC fs/proc/kcore.o
CC drivers/acpi/acpica/evsci.o
CC net/xfrm/xfrm_replay.o
CC io_uring/xattr.o
CC fs/lockd/xdr4.o
CC [M] fs/efivarfs/inode.o
CC fs/open.o
CC kernel/cgroup/cgroup-v1.o
CC [M] sound/core/pcm_timer.o
CC [M] sound/pci/hda/hda_hwdep.o
CC net/ipv6/netfilter/nf_conntrack_reasm.o
CC drivers/pci/mmap.o
CC fs/ext4/fsync.o
CC net/ipv6/netfilter/nf_reject_ipv6.o
CC io_uring/nop.o
CC io_uring/fs.o
CC security/selinux/ss/mls.o
CC arch/x86/events/intel/uncore_snbep.o
CC fs/9p/xattr.o
ASN.1 crypto/rsapubkey.asn1.[ch]
CC drivers/pnp/system.o
CC kernel/time/timecounter.o
CC kernel/time/alarmtimer.o
CC arch/x86/events/intel/uncore_discovery.o
CC drivers/acpi/acpica/evxface.o
CC io_uring/splice.o
ASN.1 crypto/rsaprivkey.asn1.[ch]
CC crypto/rsa.o
CC block/blk-rq-qos.o
CC [M] net/ipv4/netfilter/iptable_nat.o
CC block/disk-events.o
AR net/ipv4/netfilter/built-in.a
CC kernel/time/posix-timers.o
CC lib/ctype.o
CC arch/x86/events/intel/cstate.o
CC lib/dec_and_lock.o
CC kernel/trace/pid_list.o
CC [M] fs/efivarfs/file.o
CC lib/decompress.o
CC arch/x86/kernel/cpu/powerflags.o
CC net/ethtool/rings.o
LD [M] sound/core/snd-hwdep.o
LD [M] sound/core/snd-pcm.o
AR drivers/pnp/built-in.a
AR sound/core/built-in.a
CC security/selinux/ss/context.o
CC net/ipv6/netfilter/ip6t_ipv6header.o
CC kernel/time/posix-cpu-timers.o
CC [M] fs/efivarfs/super.o
CC drivers/pci/devres.o
CC [M] fs/efivarfs/vars.o
CC net/xfrm/xfrm_device.o
CC [M] sound/pci/hda/patch_hdmi.o
CC lib/decompress_bunzip2.o
CC drivers/acpi/acpica/evxfevnt.o
CC fs/proc/vmcore.o
CC net/ipv6/ip6_output.o
AR sound/usb/misc/built-in.a
AR sound/usb/usx2y/built-in.a
CC kernel/fork.o
AR sound/usb/caiaq/built-in.a
AR sound/pci/mixart/built-in.a
AR sound/usb/6fire/built-in.a
AR sound/usb/hiface/built-in.a
AR sound/firewire/built-in.a
AR sound/usb/bcd2000/built-in.a
AR sound/pci/nm256/built-in.a
AR sound/usb/built-in.a
CC kernel/exec_domain.o
AR fs/9p/built-in.a
CC kernel/panic.o
CC fs/proc/kmsg.o
CC [M] sound/pci/hda/hda_eld.o
CC lib/decompress_inflate.o
CC net/core/dev.o
CC crypto/rsa_helper.o
CC fs/read_write.o
CC fs/lockd/svc4proc.o
CC arch/x86/kernel/signal.o
CC crypto/rsa-pkcs1pad.o
CC crypto/acompress.o
CC block/blk-ia-ranges.o
CC net/ipv6/ip6_input.o
CC net/netfilter/nf_conntrack_proto.o
CC drivers/acpi/acpica/evxfgpe.o
CC fs/file_table.o
CC io_uring/sync.o
CC drivers/acpi/acpica/evxfregn.o
CC fs/ext4/hash.o
CC fs/ext4/ialloc.o
CC kernel/cgroup/freezer.o
CC kernel/time/posix-clock.o
CC kernel/trace/trace_sched_switch.o
CC net/ipv6/netfilter/ip6t_REJECT.o
CC kernel/trace/trace_nop.o
CC drivers/acpi/osl.o
CC kernel/time/itimer.o
CC net/ipv4/route.o
CC [M] sound/pci/hda/hda_intel.o
CC lib/decompress_unlz4.o
AR sound/pci/oxygen/built-in.a
CC lib/decompress_unlzma.o
CC drivers/pci/proc.o
LD [M] fs/efivarfs/efivarfs.o
CC io_uring/msg_ring.o
CC mm/util.o
CC mm/mmzone.o
CC mm/vmstat.o
CC net/netfilter/nf_conntrack_proto_generic.o
CC net/ethtool/channels.o
CC fs/super.o
CC drivers/acpi/acpica/exconcat.o
CC fs/nfs/mount_clnt.o
CC net/xfrm/xfrm_nat_keepalive.o
CC drivers/acpi/acpica/exconfig.o
CC security/selinux/netlabel.o
CC fs/proc/page.o
CC kernel/cpu.o
CC net/ethtool/coalesce.o
CC net/ipv4/inetpeer.o
CC fs/char_dev.o
CC kernel/events/uprobes.o
CC block/early-lookup.o
CC block/bounce.o
CC crypto/scompress.o
CC arch/x86/kernel/signal_32.o
CC io_uring/advise.o
CC io_uring/epoll.o
CC fs/ext4/indirect.o
CC fs/nfs/nfstrace.o
CC fs/nfs/export.o
CC arch/x86/kernel/cpu/topology.o
AR sound/sparc/built-in.a
CC lib/decompress_unlzo.o
CC fs/nfs/sysfs.o
CC io_uring/statx.o
CC drivers/acpi/acpica/exconvrt.o
CC fs/lockd/procfs.o
AR arch/x86/events/intel/built-in.a
AR arch/x86/events/built-in.a
CC drivers/acpi/acpica/excreate.o
CC kernel/cgroup/legacy_freezer.o
CC drivers/pci/pci-sysfs.o
CC kernel/time/clockevents.o
CC io_uring/timeout.o
AR net/ipv6/netfilter/built-in.a
AR fs/proc/built-in.a
CC net/ipv6/addrconf.o
CC net/ipv6/addrlabel.o
CC drivers/acpi/utils.o
CC drivers/acpi/reboot.o
CC block/bsg.o
CC drivers/acpi/nvs.o
CC kernel/cgroup/pids.o
CC block/blk-cgroup.o
CC kernel/trace/blktrace.o
CC net/netfilter/nf_conntrack_proto_tcp.o
CC io_uring/fdinfo.o
CC drivers/acpi/acpica/exdebug.o
CC net/ethtool/pause.o
CC net/core/dev_addr_lists.o
CC lib/decompress_unxz.o
CC fs/ext4/inline.o
CC fs/nfs/fs_context.o
CC arch/x86/kernel/cpu/proc.o
CC block/blk-ioprio.o
CC crypto/algboss.o
CC net/xfrm/xfrm_algo.o
CC block/blk-iolatency.o
CC fs/nfs/nfsroot.o
LD [M] sound/pci/hda/snd-hda-codec.o
LD [M] sound/pci/hda/snd-hda-codec-hdmi.o
LD [M] sound/pci/hda/snd-hda-intel.o
CC fs/nfs/sysctl.o
CC io_uring/cancel.o
AR sound/pci/pcxhr/built-in.a
AR sound/pci/riptide/built-in.a
AR fs/lockd/built-in.a
CC mm/backing-dev.o
CC net/xfrm/xfrm_user.o
CC fs/stat.o
AR sound/pci/rme9652/built-in.a
CC mm/mm_init.o
AR sound/pci/trident/built-in.a
AR sound/pci/ymfpci/built-in.a
AR drivers/clk/actions/built-in.a
AR security/selinux/built-in.a
AR sound/pci/vx222/built-in.a
CC kernel/time/tick-common.o
AR drivers/clk/analogbits/built-in.a
AR security/built-in.a
AR sound/pci/built-in.a
AR drivers/clk/bcm/built-in.a
CC drivers/acpi/acpica/exdump.o
CC io_uring/waitid.o
AR drivers/clk/imgtec/built-in.a
CC kernel/trace/trace_events.o
AR drivers/clk/imx/built-in.a
CC drivers/acpi/wakeup.o
AR sound/spi/built-in.a
AR drivers/clk/ingenic/built-in.a
AR sound/parisc/built-in.a
AR drivers/clk/mediatek/built-in.a
AR sound/pcmcia/vx/built-in.a
AR drivers/clk/microchip/built-in.a
AR sound/pcmcia/pdaudiocf/built-in.a
AR drivers/clk/mstar/built-in.a
AR sound/pcmcia/built-in.a
AR drivers/clk/mvebu/built-in.a
AR sound/mips/built-in.a
AR sound/soc/built-in.a
AR drivers/clk/ralink/built-in.a
AR sound/atmel/built-in.a
AR drivers/clk/renesas/built-in.a
AR sound/hda/built-in.a
AR drivers/clk/socfpga/built-in.a
CC drivers/dma/dw/core.o
CC [M] sound/hda/hda_bus_type.o
AR drivers/clk/sophgo/built-in.a
CC drivers/dma/dw/dw.o
CC kernel/cgroup/rdma.o
CC lib/decompress_unzstd.o
CC drivers/dma/dw/idma32.o
AR drivers/clk/sprd/built-in.a
AR drivers/clk/starfive/built-in.a
CC drivers/dma/dw/acpi.o
AR drivers/clk/sunxi-ng/built-in.a
AR sound/x86/built-in.a
AR drivers/clk/ti/built-in.a
CC fs/nfs/nfs3super.o
CC net/netfilter/nf_conntrack_proto_udp.o
AR drivers/clk/versatile/built-in.a
CC [M] sound/hda/hdac_bus.o
AR drivers/clk/xilinx/built-in.a
AR drivers/clk/built-in.a
CC arch/x86/kernel/cpu/feat_ctl.o
CC drivers/acpi/acpica/exfield.o
CC fs/ext4/inode.o
CC block/blk-iocost.o
AR kernel/events/built-in.a
CC net/ipv4/protocol.o
CC drivers/pci/slot.o
CC kernel/exit.o
CC io_uring/register.o
AR sound/xen/built-in.a
CC lib/dump_stack.o
CC net/ethtool/eee.o
CC crypto/testmgr.o
CC crypto/cmac.o
CC net/ipv4/ip_input.o
CC drivers/acpi/acpica/exfldio.o
CC kernel/trace/trace_export.o
CC arch/x86/kernel/cpu/intel.o
CC lib/earlycpio.o
CC net/core/dst.o
CC net/core/netevent.o
CC block/mq-deadline.o
AR sound/virtio/built-in.a
CC arch/x86/kernel/traps.o
CC sound/sound_core.o
CC kernel/cgroup/cpuset.o
CC fs/nfs/nfs3client.o
CC io_uring/truncate.o
CC block/kyber-iosched.o
CC arch/x86/kernel/cpu/tsx.o
CC net/core/neighbour.o
CC [M] sound/hda/hdac_device.o
CC kernel/trace/trace_event_perf.o
CC kernel/cgroup/misc.o
CC io_uring/memmap.o
CC lib/extable.o
CC fs/ext4/ioctl.o
CC kernel/time/tick-broadcast.o
CC mm/percpu.o
CC block/blk-mq-pci.o
CC sound/last.o
CC block/blk-mq-virtio.o
CC arch/x86/kernel/idt.o
CC net/packet/af_packet.o
CC drivers/pci/pci-acpi.o
CC kernel/cgroup/debug.o
CC fs/ext4/mballoc.o
CC fs/ext4/migrate.o
AR drivers/dma/dw/built-in.a
CC crypto/hmac.o
AR net/dsa/built-in.a
CC drivers/dma/hsu/hsu.o
AR drivers/dma/idxd/built-in.a
CC drivers/acpi/acpica/exmisc.o
CC net/sunrpc/auth_gss/auth_gss.o
AR net/wireless/tests/built-in.a
CC net/wireless/core.o
CC net/sunrpc/auth_gss/gss_generic_token.o
CC kernel/time/tick-broadcast-hrtimer.o
CC lib/flex_proportions.o
CC net/ethtool/tsinfo.o
CC net/wireless/sysfs.o
CC lib/idr.o
AR drivers/soc/apple/built-in.a
AR drivers/soc/aspeed/built-in.a
CC net/netfilter/nf_conntrack_proto_icmp.o
AR drivers/soc/bcm/built-in.a
AR drivers/soc/fsl/built-in.a
AR drivers/soc/fujitsu/built-in.a
AR drivers/dma/mediatek/built-in.a
AR drivers/soc/hisilicon/built-in.a
AR drivers/dma/qcom/built-in.a
AR drivers/soc/imx/built-in.a
AR drivers/dma/stm32/built-in.a
AR drivers/soc/ixp4xx/built-in.a
CC drivers/acpi/acpica/exmutex.o
AR drivers/dma/ti/built-in.a
AR drivers/soc/loongson/built-in.a
AR drivers/soc/mediatek/built-in.a
AR drivers/dma/xilinx/built-in.a
CC io_uring/io-wq.o
AR drivers/soc/microchip/built-in.a
CC net/netfilter/nf_conntrack_extend.o
AR drivers/soc/nuvoton/built-in.a
CC io_uring/futex.o
AR drivers/soc/pxa/built-in.a
AR drivers/soc/amlogic/built-in.a
CC block/blk-mq-debugfs.o
CC io_uring/napi.o
AR drivers/soc/qcom/built-in.a
AR drivers/soc/renesas/built-in.a
CC net/core/rtnetlink.o
CC block/blk-pm.o
CC block/holder.o
AR drivers/soc/rockchip/built-in.a
CC kernel/time/tick-oneshot.o
AR drivers/soc/sunxi/built-in.a
AR drivers/soc/ti/built-in.a
CC [M] sound/hda/hdac_sysfs.o
CC arch/x86/kernel/cpu/intel_epb.o
AR drivers/soc/xilinx/built-in.a
AR drivers/soc/built-in.a
CC arch/x86/kernel/irq.o
CC crypto/crypto_null.o
CC kernel/time/tick-sched.o
CC kernel/trace/trace_events_filter.o
CC kernel/trace/trace_events_trigger.o
CC kernel/time/timer_migration.o
CC arch/x86/kernel/irq_32.o
CC drivers/virtio/virtio.o
CC drivers/tty/vt/vt_ioctl.o
AR drivers/dma/hsu/built-in.a
CC lib/irq_regs.o
CC drivers/dma/dmaengine.o
CC net/ipv4/ip_fragment.o
CC drivers/tty/hvc/hvc_console.o
CC drivers/acpi/acpica/exnames.o
CC drivers/tty/serial/8250/8250_core.o
CC drivers/tty/serial/serial_core.o
CC drivers/acpi/acpica/exoparg1.o
CC drivers/pci/iomap.o
CC lib/is_single_threaded.o
CC arch/x86/kernel/cpu/amd.o
AR net/xfrm/built-in.a
CC drivers/tty/serial/serial_base_bus.o
CC net/sunrpc/auth_gss/gss_mech_switch.o
AR net/mac80211/tests/built-in.a
CC net/mac80211/main.o
CC drivers/tty/serial/serial_ctrl.o
CC net/ethtool/cabletest.o
CC net/mac80211/status.o
CC net/sunrpc/clnt.o
CC crypto/md5.o
CC net/ipv4/ip_forward.o
CC arch/x86/kernel/dumpstack_32.o
CC arch/x86/kernel/time.o
CC [M] sound/hda/hdac_regmap.o
CC drivers/acpi/acpica/exoparg2.o
CC lib/klist.o
CC net/ipv4/ip_options.o
CC net/netfilter/nf_conntrack_acct.o
CC drivers/virtio/virtio_ring.o
CC drivers/acpi/acpica/exoparg3.o
AR block/built-in.a
CC arch/x86/kernel/cpu/hygon.o
CC drivers/pci/quirks.o
CC drivers/tty/serial/serial_port.o
AR drivers/tty/hvc/built-in.a
CC drivers/tty/vt/vc_screen.o
CC lib/kobject.o
AR drivers/tty/ipwireless/built-in.a
CC drivers/tty/tty_io.o
CC drivers/tty/n_tty.o
CC drivers/acpi/acpica/exoparg6.o
AR kernel/cgroup/built-in.a
CC drivers/tty/serial/earlycon.o
CC kernel/softirq.o
CC drivers/tty/serial/8250/8250_platform.o
CC drivers/tty/tty_ioctl.o
CC fs/nfs/nfs3proc.o
CC crypto/sha256_generic.o
CC arch/x86/kernel/ioport.o
CC crypto/sha512_generic.o
CC net/ipv6/route.o
CC mm/slab_common.o
CC kernel/trace/trace_eprobe.o
CC net/ipv4/ip_output.o
CC drivers/acpi/acpica/exprep.o
CC drivers/dma/virt-dma.o
CC arch/x86/kernel/cpu/centaur.o
CC net/netfilter/nf_conntrack_seqadj.o
AR io_uring/built-in.a
CC drivers/acpi/sleep.o
CC fs/ext4/mmp.o
CC net/ethtool/tunnels.o
CC fs/nfs/nfs3xdr.o
CC [M] sound/hda/hdac_controller.o
CC mm/compaction.o
CC net/ethtool/fec.o
CC kernel/time/vsyscall.o
CC drivers/acpi/acpica/exregion.o
CC lib/kobject_uevent.o
CC arch/x86/kernel/dumpstack.o
CC drivers/char/hw_random/core.o
CC net/netfilter/nf_conntrack_proto_icmpv6.o
CC drivers/char/hw_random/intel-rng.o
CC net/sunrpc/auth_gss/svcauth_gss.o
CC arch/x86/kernel/cpu/transmeta.o
AR drivers/iommu/amd/built-in.a
CC net/ethtool/eeprom.o
AR drivers/iommu/intel/built-in.a
CC drivers/tty/serial/8250/8250_pnp.o
CC net/ethtool/stats.o
AR drivers/iommu/arm/arm-smmu/built-in.a
AR drivers/iommu/arm/arm-smmu-v3/built-in.a
CC drivers/tty/vt/selection.o
AR drivers/iommu/arm/built-in.a
CC arch/x86/kernel/nmi.o
AR drivers/iommu/iommufd/built-in.a
CC drivers/iommu/iommu.o
CC drivers/dma/acpi-dma.o
CC drivers/tty/vt/keyboard.o
CC kernel/time/timekeeping_debug.o
CC crypto/sha3_generic.o
CC drivers/tty/vt/vt.o
CC net/sunrpc/auth_gss/gss_rpc_upcall.o
CC drivers/acpi/acpica/exresnte.o
AR net/packet/built-in.a
CC net/netlabel/netlabel_user.o
CC drivers/virtio/virtio_anchor.o
CC net/netlabel/netlabel_kapi.o
CC fs/ext4/move_extent.o
CC net/ethtool/phc_vclocks.o
CC arch/x86/kernel/cpu/zhaoxin.o
CC [M] sound/hda/hdac_stream.o
CC drivers/char/hw_random/amd-rng.o
CC drivers/char/hw_random/geode-rng.o
CC kernel/resource.o
CC arch/x86/kernel/ldt.o
CC net/core/utils.o
CC kernel/trace/trace_kprobe.o
CC drivers/tty/tty_ldisc.o
CC drivers/acpi/acpica/exresolv.o
CC net/wireless/radiotap.o
CC drivers/tty/serial/8250/8250_rsa.o
CC crypto/ecb.o
CC drivers/tty/serial/8250/8250_port.o
CC kernel/time/namespace.o
CC net/netfilter/nf_conntrack_netlink.o
CC net/ethtool/mm.o
CC net/netfilter/nf_conntrack_ftp.o
CC net/netfilter/nf_conntrack_irc.o
AR drivers/dma/built-in.a
CC net/wireless/util.o
AR drivers/gpu/host1x/built-in.a
CC lib/logic_pio.o
CC fs/ext4/namei.o
CC drivers/virtio/virtio_pci_modern_dev.o
CC arch/x86/kernel/cpu/vortex.o
CC net/core/link_watch.o
CC net/rfkill/core.o
CC drivers/pci/pci-label.o
CC net/rfkill/input.o
COPY drivers/tty/vt/defkeymap.c
AR drivers/gpu/drm/arm/built-in.a
AR drivers/gpu/drm/tests/built-in.a
CC drivers/acpi/acpica/exresop.o
CC drivers/gpu/drm/display/drm_display_helper_mod.o
CC drivers/tty/vt/consolemap.o
CC crypto/cbc.o
CC kernel/sysctl.o
CC crypto/ctr.o
CC drivers/char/hw_random/via-rng.o
CC drivers/tty/tty_buffer.o
CC drivers/iommu/iommu-traces.o
CC arch/x86/kernel/cpu/perfctr-watchdog.o
CC net/netfilter/nf_conntrack_sip.o
CC net/ethtool/module.o
CC drivers/tty/serial/8250/8250_dma.o
CC arch/x86/kernel/cpu/vmware.o
CC drivers/tty/serial/8250/8250_dwlib.o
CC net/ethtool/cmis_fw_update.o
CC [M] sound/hda/array.o
AR kernel/time/built-in.a
CC net/ipv4/ip_sockglue.o
CC arch/x86/kernel/setup.o
CC lib/maple_tree.o
CC drivers/pci/vgaarb.o
CC drivers/gpu/drm/display/drm_dp_dual_mode_helper.o
CC drivers/acpi/acpica/exserial.o
HOSTCC drivers/tty/vt/conmakehash
AR drivers/char/hw_random/built-in.a
CC arch/x86/kernel/x86_init.o
CC arch/x86/kernel/i8259.o
CC net/mac80211/driver-ops.o
CC drivers/char/agp/backend.o
CC drivers/char/agp/generic.o
CC drivers/tty/vt/defkeymap.o
CC net/netlabel/netlabel_domainhash.o
CC drivers/char/agp/isoch.o
CC crypto/gcm.o
CC drivers/gpu/drm/display/drm_dp_helper.o
CC drivers/virtio/virtio_pci_legacy_dev.o
CC fs/ext4/page-io.o
CC net/wireless/reg.o
CC fs/ext4/readpage.o
CC kernel/capability.o
CC kernel/ptrace.o
CC fs/nfs/nfs3acl.o
CC net/wireless/scan.o
CC net/sunrpc/auth_gss/gss_rpc_xdr.o
AR net/rfkill/built-in.a
CC net/ipv6/ip6_fib.o
CC net/netfilter/nf_nat_core.o
CC drivers/acpi/acpica/exstore.o
CC net/ipv6/ipv6_sockglue.o
CC net/core/filter.o
CC drivers/tty/tty_port.o
CC arch/x86/kernel/cpu/hypervisor.o
CC [M] sound/hda/hdmi_chmap.o
CC drivers/connector/cn_queue.o
CC drivers/iommu/iommu-sysfs.o
CC drivers/tty/serial/8250/8250_pcilib.o
CC [M] sound/hda/trace.o
CC arch/x86/kernel/cpu/mshyperv.o
CC mm/show_mem.o
CC mm/shmem_quota.o
CC drivers/char/agp/amd64-agp.o
CC net/9p/mod.o
CC crypto/ccm.o
CC net/dns_resolver/dns_key.o
CC net/9p/client.o
CC drivers/acpi/acpica/exstoren.o
CC kernel/trace/error_report-traces.o
CC drivers/virtio/virtio_pci_modern.o
CC net/9p/error.o
CC net/netlabel/netlabel_addrlist.o
CONMK drivers/tty/vt/consolemap_deftbl.c
CC net/ethtool/cmis_cdb.o
CC drivers/tty/vt/consolemap_deftbl.o
AR drivers/tty/vt/built-in.a
AR drivers/pci/built-in.a
CC kernel/trace/power-traces.o
CC drivers/tty/tty_mutex.o
CC drivers/base/power/sysfs.o
CC drivers/char/mem.o
CC mm/interval_tree.o
CC drivers/char/agp/intel-agp.o
CC mm/list_lru.o
CC drivers/tty/tty_ldsem.o
CC drivers/iommu/dma-iommu.o
CC drivers/acpi/acpica/exstorob.o
CC drivers/tty/tty_baudrate.o
CC drivers/tty/serial/8250/8250_early.o
CC arch/x86/kernel/cpu/debugfs.o
CC net/ipv6/ndisc.o
CC arch/x86/kernel/cpu/capflags.o
CC drivers/block/loop.o
CC net/netfilter/nf_nat_proto.o
CC net/netfilter/nf_nat_helper.o
CC fs/ext4/resize.o
CC net/netfilter/nf_nat_masquerade.o
CC [M] sound/hda/hdac_component.o
CC net/dns_resolver/dns_query.o
CC net/sunrpc/auth_gss/trace.o
CC fs/nfs/nfs4proc.o
CC drivers/iommu/iova.o
CC arch/x86/kernel/irqinit.o
CC drivers/acpi/device_sysfs.o
AR drivers/misc/eeprom/built-in.a
CC drivers/connector/connector.o
AR drivers/misc/cb710/built-in.a
AR drivers/misc/ti-st/built-in.a
CC drivers/base/regmap/regmap.o
CC drivers/acpi/acpica/exsystem.o
CC drivers/base/power/generic_ops.o
AR drivers/misc/lis3lv02d/built-in.a
CC drivers/base/firmware_loader/builtin/main.o
AR drivers/misc/cardreader/built-in.a
AR drivers/misc/keba/built-in.a
CC net/netfilter/nf_nat_ftp.o
CC drivers/virtio/virtio_pci_common.o
AR drivers/misc/built-in.a
CC net/ipv6/udp.o
CC crypto/aes_generic.o
CC net/ipv4/inet_hashtables.o
CC net/ipv4/inet_timewait_sock.o
CC mm/workingset.o
CC drivers/tty/tty_jobctrl.o
AR arch/x86/kernel/cpu/built-in.a
CC drivers/tty/n_null.o
CC net/ipv4/inet_connection_sock.o
CC net/netfilter/nf_nat_irc.o
CC drivers/tty/serial/8250/8250_exar.o
CC drivers/char/agp/intel-gtt.o
AR drivers/mfd/built-in.a
CC mm/debug.o
CC drivers/gpu/drm/display/drm_dp_mst_topology.o
AR drivers/base/firmware_loader/builtin/built-in.a
CC drivers/base/firmware_loader/main.o
AR drivers/nfc/built-in.a
CC net/netlabel/netlabel_mgmt.o
CC net/ipv6/udplite.o
CC net/ethtool/pse-pd.o
CC drivers/acpi/acpica/extrace.o
CC [M] sound/hda/hdac_i915.o
AR net/dns_resolver/built-in.a
CC drivers/base/power/common.o
CC drivers/gpu/drm/ttm/ttm_tt.o
CC drivers/gpu/drm/ttm/ttm_bo.o
CC net/ipv6/raw.o
CC net/handshake/alert.o
CC net/handshake/genl.o
CC arch/x86/kernel/jump_label.o
CC drivers/acpi/acpica/exutils.o
CC net/9p/protocol.o
CC drivers/tty/pty.o
CC crypto/crc32c_generic.o
CC drivers/virtio/virtio_pci_legacy.o
CC drivers/connector/cn_proc.o
AR drivers/iommu/built-in.a
CC drivers/tty/tty_audit.o
CC drivers/gpu/drm/display/drm_dsc_helper.o
CC mm/gup.o
CC drivers/base/power/qos.o
CC drivers/base/power/runtime.o
CC mm/mmap_lock.o
CC mm/highmem.o
CC drivers/block/virtio_blk.o
CC kernel/trace/rpm-traces.o
CC kernel/trace/trace_dynevent.o
CC [M] sound/hda/intel-dsp-config.o
CC drivers/tty/sysrq.o
CC drivers/acpi/acpica/hwacpi.o
CC net/mac80211/sta_info.o
CC drivers/tty/serial/8250/8250_lpss.o
AR drivers/char/agp/built-in.a
CC drivers/virtio/virtio_pci_admin_legacy_io.o
CC drivers/char/random.o
AR drivers/base/firmware_loader/built-in.a
CC crypto/authenc.o
CC crypto/authencesn.o
CC fs/nfs/nfs4xdr.o
CC net/netfilter/nf_nat_sip.o
CC drivers/gpu/drm/ttm/ttm_bo_util.o
CC net/ipv6/icmp.o
CC arch/x86/kernel/irq_work.o
CC net/ethtool/plca.o
CC net/handshake/netlink.o
CC fs/ext4/super.o
CC fs/ext4/symlink.o
CC net/netlabel/netlabel_unlabeled.o
CC crypto/lzo.o
CC drivers/acpi/acpica/hwesleep.o
CC net/ipv6/mcast.o
CC net/9p/trans_common.o
AR drivers/gpu/vga/built-in.a
CC drivers/gpu/drm/i915/i915_config.o
CC net/ipv6/reassembly.o
AR drivers/gpu/drm/renesas/rcar-du/built-in.a
AR drivers/gpu/drm/renesas/rz-du/built-in.a
AR drivers/gpu/drm/renesas/built-in.a
CC fs/ext4/sysfs.o
CC [M] sound/hda/intel-nhlt.o
CC net/handshake/request.o
CC drivers/virtio/virtio_input.o
CC net/netlabel/netlabel_cipso_v4.o
CC mm/memory.o
CC drivers/tty/serial/8250/8250_mid.o
CC drivers/acpi/acpica/hwgpe.o
CC net/sunrpc/auth_gss/gss_krb5_mech.o
CC net/ipv6/tcp_ipv6.o
CC drivers/gpu/drm/i915/i915_driver.o
AR drivers/connector/built-in.a
CC net/ipv6/ping.o
CC net/9p/trans_fd.o
CC net/ipv4/tcp.o
CC drivers/tty/serial/8250/8250_pci.o
CC kernel/trace/trace_probe.o
CC net/sunrpc/xprt.o
CC lib/memcat_p.o
CC drivers/acpi/device_pm.o
AR drivers/block/built-in.a
CC [M] sound/hda/intel-sdw-acpi.o
CC drivers/base/regmap/regcache.o
CC drivers/base/power/wakeirq.o
CC drivers/base/power/main.o
CC net/ipv6/exthdrs.o
CC crypto/lzo-rle.o
CC drivers/gpu/drm/ttm/ttm_bo_vm.o
CC net/ipv6/datagram.o
CC lib/nmi_backtrace.o
CC lib/objpool.o
CC drivers/acpi/acpica/hwregs.o
CC drivers/base/power/wakeup.o
CC arch/x86/kernel/probe_roms.o
LD [M] sound/hda/snd-hda-core.o
LD [M] sound/hda/snd-intel-dspcfg.o
CC arch/x86/kernel/sys_ia32.o
CC drivers/tty/serial/8250/8250_pericom.o
AR net/ethtool/built-in.a
CC net/ipv4/tcp_input.o
CC drivers/char/misc.o
CC net/netfilter/x_tables.o
CC net/ipv4/tcp_output.o
CC drivers/gpu/drm/display/drm_hdcp_helper.o
CC drivers/virtio/virtio_dma_buf.o
CC drivers/gpu/drm/display/drm_hdmi_helper.o
CC net/wireless/nl80211.o
LD [M] sound/hda/snd-intel-sdw-acpi.o
CC drivers/gpu/drm/display/drm_scdc_helper.o
AR sound/built-in.a
CC net/sunrpc/auth_gss/gss_krb5_seal.o
CC net/sunrpc/auth_gss/gss_krb5_unseal.o
CC drivers/acpi/proc.o
CC net/ipv6/ip6_flowlabel.o
CC crypto/rng.o
CC net/netlabel/netlabel_calipso.o
CC drivers/acpi/acpica/hwsleep.o
CC net/ipv6/inet6_connection_sock.o
CC net/ipv6/udp_offload.o
CC drivers/gpu/drm/ttm/ttm_module.o
CC net/ipv4/tcp_timer.o
AR drivers/dax/hmem/built-in.a
AR drivers/dax/built-in.a
CC net/9p/trans_virtio.o
CC drivers/base/power/wakeup_stats.o
CC drivers/base/power/trace.o
CC drivers/base/regmap/regcache-rbtree.o
CC arch/x86/kernel/ksysfs.o
CC net/sunrpc/auth_gss/gss_krb5_wrap.o
CC net/handshake/tlshd.o
CC net/handshake/trace.o
AR drivers/virtio/built-in.a
CC arch/x86/kernel/bootflag.o
CC drivers/char/virtio_console.o
CC arch/x86/kernel/e820.o
CC drivers/acpi/acpica/hwvalid.o
CC lib/plist.o
CC lib/radix-tree.o
CC net/ipv6/seg6.o
AR drivers/tty/serial/8250/built-in.a
CC net/ipv6/fib6_notifier.o
AR drivers/tty/serial/built-in.a
CC net/netfilter/xt_tcpudp.o
AR drivers/tty/built-in.a
CC drivers/char/hpet.o
CC net/devres.o
AR drivers/gpu/drm/display/built-in.a
CC net/mac80211/wep.o
CC mm/mincore.o
CC kernel/trace/trace_uprobe.o
CC drivers/gpu/drm/i915/i915_drm_client.o
CC drivers/gpu/drm/ttm/ttm_execbuf_util.o
CC mm/mlock.o
CC mm/mmap.o
CC crypto/drbg.o
CC drivers/acpi/acpica/hwxface.o
CC net/core/sock_diag.o
CC net/core/dev_ioctl.o
CC lib/ratelimit.o
CC net/sunrpc/auth_gss/gss_krb5_crypto.o
CC net/ipv6/rpl.o
CC arch/x86/kernel/pci-dma.o
AR drivers/base/power/built-in.a
CC drivers/base/regmap/regcache-flat.o
CC drivers/acpi/acpica/hwxfsleep.o
AR net/netlabel/built-in.a
CC net/mac80211/aead_api.o
CC drivers/dma-buf/dma-buf.o
CC net/sunrpc/auth_gss/gss_krb5_keys.o
CC drivers/char/nvram.o
CC crypto/jitterentropy.o
CC drivers/acpi/acpica/hwpci.o
CC drivers/dma-buf/dma-fence.o
CC drivers/gpu/drm/ttm/ttm_range_manager.o
CC net/ipv6/ioam6.o
CC crypto/jitterentropy-kcapi.o
CC lib/rbtree.o
CC drivers/gpu/drm/ttm/ttm_resource.o
CC drivers/gpu/drm/ttm/ttm_pool.o
CC net/netfilter/xt_CONNSECMARK.o
CC net/socket.o
CC net/ipv6/sysctl_net_ipv6.o
AR net/9p/built-in.a
CC net/sysctl_net.o
CC net/ipv6/xfrm6_policy.o
CC drivers/acpi/acpica/nsaccess.o
CC mm/mmu_gather.o
CC net/netfilter/xt_NFLOG.o
CC drivers/base/regmap/regcache-maple.o
CC drivers/base/regmap/regmap-debugfs.o
AR drivers/base/test/built-in.a
CC net/mac80211/wpa.o
CC drivers/base/component.o
AR drivers/cxl/core/built-in.a
CC drivers/gpu/drm/ttm/ttm_device.o
AR drivers/cxl/built-in.a
CC drivers/gpu/drm/ttm/ttm_sys_manager.o
CC net/mac80211/scan.o
CC drivers/gpu/drm/ttm/ttm_agp_backend.o
CC lib/seq_buf.o
CC fs/nfs/nfs4state.o
CC drivers/dma-buf/dma-fence-array.o
CC arch/x86/kernel/quirks.o
CC arch/x86/kernel/kdebugfs.o
CC crypto/ghash-generic.o
AR net/handshake/built-in.a
CC fs/ext4/xattr.o
CC drivers/gpu/drm/i915/i915_getparam.o
CC drivers/gpu/drm/i915/i915_ioctl.o
CC drivers/dma-buf/dma-fence-chain.o
CC drivers/acpi/acpica/nsalloc.o
CC net/ipv4/tcp_ipv4.o
AR drivers/char/built-in.a
CC net/core/tso.o
CC drivers/gpu/drm/i915/i915_irq.o
CC mm/mprotect.o
CC net/sunrpc/socklib.o
AR net/sunrpc/auth_gss/built-in.a
CC crypto/hash_info.o
CC fs/nfs/nfs4renewd.o
CC net/sunrpc/xprtsock.o
CC crypto/rsapubkey.asn1.o
CC crypto/rsaprivkey.asn1.o
CC drivers/dma-buf/dma-fence-unwrap.o
CC drivers/acpi/acpica/nsarguments.o
CC drivers/macintosh/mac_hid.o
AR crypto/built-in.a
CC drivers/dma-buf/dma-resv.o
AR drivers/scsi/pcmcia/built-in.a
AR drivers/nvme/common/built-in.a
CC drivers/scsi/scsi.o
CC drivers/scsi/hosts.o
AR drivers/nvme/host/built-in.a
CC drivers/scsi/scsi_ioctl.o
CC drivers/scsi/scsicam.o
AR drivers/nvme/target/built-in.a
CC lib/siphash.o
CC net/ipv4/tcp_minisocks.o
AR drivers/nvme/built-in.a
CC net/mac80211/offchannel.o
CC lib/string.o
CC fs/ext4/xattr_hurd.o
AR drivers/gpu/drm/ttm/built-in.a
AR drivers/base/regmap/built-in.a
CC lib/timerqueue.o
CC lib/vsprintf.o
CC drivers/base/core.o
CC kernel/trace/rethook.o
CC lib/win_minmax.o
CC kernel/user.o
CC kernel/signal.o
CC fs/ext4/xattr_trusted.o
CC net/netfilter/xt_SECMARK.o
CC lib/xarray.o
CC net/ipv4/tcp_cong.o
CC arch/x86/kernel/alternative.o
CC net/sunrpc/sched.o
CC drivers/acpi/bus.o
CC drivers/gpu/drm/i915/i915_mitigations.o
CC net/sunrpc/auth.o
CC drivers/acpi/acpica/nsconvert.o
CC net/wireless/mlme.o
CC drivers/dma-buf/sync_file.o
CC lib/lockref.o
AR drivers/macintosh/built-in.a
CC net/ipv4/tcp_metrics.o
CC drivers/ata/libata-core.o
CC kernel/sys.o
CC net/wireless/ibss.o
CC drivers/gpu/drm/i915/i915_module.o
CC net/ipv6/xfrm6_state.o
CC drivers/ata/libata-scsi.o
CC drivers/scsi/scsi_error.o
AR kernel/trace/built-in.a
CC drivers/base/bus.o
CC lib/bcd.o
CC kernel/umh.o
CC drivers/acpi/acpica/nsdump.o
CC kernel/workqueue.o
CC net/core/sock_reuseport.o
CC fs/ext4/xattr_user.o
AR drivers/gpu/drm/omapdrm/built-in.a
CC lib/sort.o
CC drivers/scsi/scsi_lib.o
CC mm/mremap.o
CC drivers/acpi/acpica/nseval.o
CC mm/msync.o
CC drivers/ata/libata-eh.o
CC net/netfilter/xt_TCPMSS.o
CC drivers/scsi/constants.o
CC drivers/base/dd.o
AR drivers/dma-buf/built-in.a
CC drivers/acpi/glue.o
AR drivers/gpu/drm/tilcdc/built-in.a
AR drivers/net/phy/qcom/built-in.a
CC drivers/net/phy/mdio-boardinfo.o
CC drivers/acpi/scan.o
AR drivers/net/pse-pd/built-in.a
CC drivers/net/mdio/acpi_mdio.o
AR drivers/net/pcs/built-in.a
CC arch/x86/kernel/i8253.o
CC drivers/acpi/acpica/nsinit.o
CC net/ipv4/tcp_fastopen.o
CC drivers/gpu/drm/i915/i915_params.o
CC net/ipv4/tcp_rate.o
CC lib/parser.o
CC drivers/net/mdio/fwnode_mdio.o
CC drivers/base/syscore.o
CC mm/page_vma_mapped.o
CC net/ipv4/tcp_recovery.o
CC net/ipv6/xfrm6_input.o
CC drivers/scsi/scsi_lib_dma.o
CC drivers/acpi/mipi-disco-img.o
CC drivers/net/phy/stubs.o
CC arch/x86/kernel/hw_breakpoint.o
CC kernel/pid.o
CC drivers/acpi/acpica/nsload.o
CC arch/x86/kernel/tsc.o
CC arch/x86/kernel/tsc_msr.o
CC fs/ext4/fast_commit.o
CC fs/nfs/nfs4super.o
CC fs/nfs/nfs4file.o
CC drivers/gpu/drm/virtio/virtgpu_drv.o
CC fs/nfs/delegation.o
CC fs/ext4/orphan.o
CC drivers/base/driver.o
CC net/netfilter/xt_conntrack.o
CC drivers/acpi/acpica/nsnames.o
CC net/netfilter/xt_policy.o
CC net/core/fib_notifier.o
CC drivers/gpu/drm/virtio/virtgpu_kms.o
CC net/mac80211/ht.o
CC lib/debug_locks.o
CC kernel/task_work.o
CC arch/x86/kernel/io_delay.o
CC drivers/gpu/drm/i915/i915_pci.o
AR drivers/net/mdio/built-in.a
CC mm/pagewalk.o
CC net/ipv6/xfrm6_output.o
CC drivers/base/class.o
CC drivers/acpi/resource.o
CC net/mac80211/agg-tx.o
CC lib/random32.o
CC kernel/extable.o
CC drivers/net/phy/mdio_devres.o
CC drivers/gpu/drm/virtio/virtgpu_gem.o
CC drivers/scsi/scsi_scan.o
CC net/ipv4/tcp_ulp.o
CC arch/x86/kernel/rtc.o
CC net/mac80211/agg-rx.o
CC net/netfilter/xt_state.o
CC drivers/acpi/acpica/nsobject.o
CC drivers/base/platform.o
GEN drivers/scsi/scsi_devinfo_tbl.c
CC drivers/base/cpu.o
CC net/ipv4/tcp_offload.o
AR drivers/net/ethernet/3com/built-in.a
CC arch/x86/kernel/resource.o
CC drivers/net/ethernet/8390/ne2k-pci.o
AR drivers/net/wireless/admtek/built-in.a
AR drivers/net/wireless/ath/built-in.a
AR drivers/net/wireless/atmel/built-in.a
AR drivers/net/wireless/broadcom/built-in.a
AR drivers/net/wireless/intel/built-in.a
AR drivers/net/wireless/intersil/built-in.a
AR drivers/net/wireless/marvell/built-in.a
AR drivers/net/wireless/mediatek/built-in.a
CC lib/bust_spinlocks.o
AS arch/x86/kernel/irqflags.o
AR drivers/net/wireless/purelifi/built-in.a
AR drivers/net/wireless/microchip/built-in.a
CC drivers/net/ethernet/8390/8390.o
AR drivers/net/wireless/quantenna/built-in.a
CC net/ipv4/tcp_plb.o
AR drivers/net/usb/built-in.a
AR drivers/net/wireless/ralink/built-in.a
AR drivers/net/wireless/realtek/built-in.a
CC net/ipv4/datagram.o
AR drivers/net/wireless/rsi/built-in.a
AR drivers/net/wireless/silabs/built-in.a
AR drivers/net/wireless/st/built-in.a
CC arch/x86/kernel/static_call.o
CC arch/x86/kernel/process.o
AR drivers/net/wireless/ti/built-in.a
CC fs/nfs/nfs4idmap.o
AR drivers/net/wireless/zydas/built-in.a
AR drivers/net/wireless/virtual/built-in.a
CC drivers/gpu/drm/virtio/virtgpu_vram.o
AR drivers/net/wireless/built-in.a
CC lib/kasprintf.o
CC kernel/params.o
CC drivers/acpi/acpica/nsparse.o
CC net/ipv6/xfrm6_protocol.o
CC net/core/xdp.o
CC kernel/kthread.o
CC kernel/sys_ni.o
CC drivers/ata/libata-transport.o
CC drivers/ata/libata-trace.o
CC drivers/base/firmware.o
CC drivers/base/init.o
CC drivers/net/mii.o
CC mm/pgtable-generic.o
CC drivers/acpi/acpi_processor.o
CC drivers/net/phy/phy.o
CC drivers/net/loopback.o
CC fs/ext4/acl.o
CC [M] net/netfilter/nf_log_syslog.o
CC drivers/gpu/drm/i915/i915_scatterlist.o
CC arch/x86/kernel/ptrace.o
CC lib/bitmap.o
CC drivers/acpi/acpica/nspredef.o
CC drivers/gpu/drm/i915/i915_suspend.o
CC lib/scatterlist.o
CC arch/x86/kernel/tls.o
CC drivers/ata/libata-sata.o
CC drivers/net/netconsole.o
CC fs/ext4/xattr_security.o
CC net/ipv4/raw.o
CC drivers/scsi/scsi_devinfo.o
CC drivers/gpu/drm/virtio/virtgpu_display.o
CC net/ipv6/netfilter.o
CC net/wireless/sme.o
CC fs/nfs/callback.o
CC fs/nfs/callback_xdr.o
CC net/wireless/chan.o
CC drivers/base/map.o
CC drivers/acpi/acpica/nsprepkg.o
AR drivers/net/ethernet/8390/built-in.a
AR drivers/net/ethernet/adaptec/built-in.a
CC drivers/acpi/acpica/nsrepair.o
AR drivers/net/ethernet/agere/built-in.a
AR drivers/net/ethernet/alacritech/built-in.a
AR drivers/net/ethernet/alteon/built-in.a
CC mm/rmap.o
AR drivers/net/ethernet/amazon/built-in.a
CC net/ipv4/udp.o
CC net/ipv4/udplite.o
CC fs/nfs/callback_proc.o
AR drivers/net/ethernet/amd/built-in.a
CC drivers/ata/libata-sff.o
CC net/ipv6/proc.o
AR drivers/net/ethernet/aquantia/built-in.a
AR drivers/net/ethernet/arc/built-in.a
CC net/wireless/ethtool.o
AR drivers/net/ethernet/asix/built-in.a
AR drivers/net/ethernet/atheros/built-in.a
AR drivers/net/ethernet/cadence/built-in.a
CC drivers/net/ethernet/broadcom/bnx2.o
AR drivers/net/ethernet/brocade/built-in.a
CC lib/list_sort.o
AR drivers/gpu/drm/imx/built-in.a
AR drivers/net/ethernet/cavium/common/built-in.a
AR drivers/net/ethernet/cavium/thunder/built-in.a
CC net/ipv4/udp_offload.o
AR drivers/net/ethernet/cavium/liquidio/built-in.a
CC net/ipv4/arp.o
AR drivers/net/ethernet/cavium/octeon/built-in.a
CC mm/vmalloc.o
AR drivers/net/ethernet/cavium/built-in.a
CC fs/nfs/nfs4namespace.o
CC fs/exec.o
CC [M] net/netfilter/xt_mark.o
CC drivers/base/devres.o
AR drivers/gpu/drm/i2c/built-in.a
CC fs/nfs/nfs4getroot.o
AR drivers/gpu/drm/panel/built-in.a
CC mm/process_vm_access.o
CC drivers/acpi/acpica/nsrepair2.o
AR drivers/gpu/drm/bridge/analogix/built-in.a
AR drivers/gpu/drm/bridge/cadence/built-in.a
CC mm/page_alloc.o
AR drivers/gpu/drm/bridge/imx/built-in.a
CC arch/x86/kernel/step.o
AR drivers/gpu/drm/bridge/synopsys/built-in.a
CC mm/init-mm.o
CC mm/memblock.o
AR drivers/gpu/drm/bridge/built-in.a
AR fs/ext4/built-in.a
CC drivers/gpu/drm/virtio/virtgpu_vq.o
CC kernel/nsproxy.o
CC kernel/notifier.o
CC mm/slub.o
CC drivers/scsi/scsi_sysctl.o
CC fs/nfs/nfs4client.o
CC drivers/ata/libata-pmp.o
CC lib/uuid.o
CC net/core/flow_offload.o
CC drivers/net/virtio_net.o
CC drivers/gpu/drm/i915/i915_switcheroo.o
CC drivers/ata/libata-acpi.o
CC fs/nfs/nfs4session.o
CC lib/iov_iter.o
CC drivers/scsi/scsi_proc.o
CC drivers/net/phy/phy-c45.o
CC drivers/acpi/processor_core.o
CC drivers/acpi/acpica/nssearch.o
CC [M] net/netfilter/xt_nat.o
CC drivers/firewire/init_ohci1394_dma.o
CC [M] net/netfilter/xt_LOG.o
CC net/ipv4/icmp.o
CC [M] net/netfilter/xt_MASQUERADE.o
CC drivers/base/attribute_container.o
CC arch/x86/kernel/i8237.o
CC net/mac80211/vht.o
CC drivers/acpi/processor_pdc.o
AR drivers/gpu/drm/hisilicon/built-in.a
CC drivers/acpi/ec.o
CC drivers/ata/libata-pata-timings.o
CC drivers/acpi/acpica/nsutils.o
CC net/ipv6/syncookies.o
CC mm/madvise.o
CC fs/nfs/dns_resolve.o
CC net/mac80211/he.o
CC [M] net/netfilter/xt_addrtype.o
CC arch/x86/kernel/stacktrace.o
CC net/mac80211/s1g.o
CC kernel/ksysfs.o
CC drivers/scsi/scsi_debugfs.o
CC fs/nfs/nfs4trace.o
CC drivers/acpi/acpica/nswalk.o
CC drivers/base/transport_class.o
CC drivers/ata/ahci.o
CC drivers/gpu/drm/i915/i915_sysfs.o
CC drivers/acpi/dock.o
CC drivers/gpu/drm/virtio/virtgpu_fence.o
CC drivers/gpu/drm/virtio/virtgpu_object.o
CC net/ipv6/calipso.o
AR drivers/firewire/built-in.a
CC drivers/acpi/acpica/nsxfeval.o
CC drivers/cdrom/cdrom.o
CC drivers/acpi/acpica/nsxfname.o
CC net/core/gro.o
CC mm/page_io.o
AR drivers/auxdisplay/built-in.a
CC drivers/ata/libahci.o
CC drivers/base/topology.o
CC drivers/acpi/pci_root.o
CC drivers/ata/ata_piix.o
CC drivers/gpu/drm/virtio/virtgpu_debugfs.o
CC drivers/acpi/pci_link.o
CC drivers/base/container.o
CC drivers/net/phy/phy-core.o
CC arch/x86/kernel/reboot.o
CC arch/x86/kernel/msr.o
CC drivers/net/phy/phy_device.o
CC kernel/cred.o
CC drivers/net/phy/linkmode.o
CC net/ipv6/ah6.o
CC net/ipv4/devinet.o
CC drivers/scsi/scsi_trace.o
CC drivers/acpi/acpica/nsxfobj.o
CC drivers/acpi/pci_irq.o
CC fs/nfs/nfs4sysctl.o
CC drivers/acpi/acpi_apd.o
CC arch/x86/kernel/cpuid.o
CC drivers/base/property.o
CC drivers/base/cacheinfo.o
CC drivers/gpu/drm/virtio/virtgpu_plane.o
CC drivers/acpi/acpica/psargs.o
CC net/mac80211/ibss.o
CC lib/clz_ctz.o
CC drivers/gpu/drm/i915/i915_utils.o
CC net/mac80211/iface.o
AR net/netfilter/built-in.a
CC drivers/acpi/acpica/psloop.o
CC net/wireless/mesh.o
CC lib/bsearch.o
CC net/wireless/ap.o
CC mm/swap_state.o
CC mm/swapfile.o
CC fs/pipe.o
AR drivers/gpu/drm/mxsfb/built-in.a
CC drivers/acpi/acpi_platform.o
AR drivers/gpu/drm/tiny/built-in.a
CC drivers/acpi/acpi_pnp.o
CC lib/find_bit.o
CC drivers/acpi/power.o
CC net/mac80211/link.o
AR drivers/gpu/drm/xlnx/built-in.a
CC net/mac80211/rate.o
CC arch/x86/kernel/early-quirks.o
AR drivers/gpu/drm/gud/built-in.a
CC net/sunrpc/auth_null.o
CC drivers/net/phy/mdio_bus.o
CC drivers/acpi/acpica/psobject.o
CC drivers/scsi/scsi_logging.o
CC drivers/acpi/acpica/psopcode.o
CC fs/namei.o
CC drivers/gpu/drm/i915/intel_clock_gating.o
CC lib/llist.o
CC drivers/acpi/event.o
CC kernel/reboot.o
CC net/wireless/trace.o
CC drivers/pcmcia/cs.o
AR drivers/gpu/drm/solomon/built-in.a
CC drivers/pcmcia/socket_sysfs.o
CC drivers/gpu/drm/i915/intel_device_info.o
CC [M] drivers/gpu/drm/scheduler/sched_main.o
CC drivers/ata/pata_amd.o
CC drivers/gpu/drm/virtio/virtgpu_ioctl.o
CC drivers/base/swnode.o
CC net/wireless/ocb.o
CC drivers/gpu/drm/i915/intel_memory_region.o
AR drivers/cdrom/built-in.a
CC drivers/net/phy/mdio_device.o
CC lib/lwq.o
CC net/core/netdev-genl.o
CC drivers/usb/common/common.o
CC drivers/acpi/acpica/psopinfo.o
CC drivers/usb/common/debug.o
CC net/ipv6/esp6.o
AR drivers/net/ethernet/chelsio/built-in.a
CC drivers/scsi/scsi_pm.o
CC drivers/input/serio/serio.o
CC drivers/scsi/scsi_bsg.o
CC drivers/acpi/evged.o
CC lib/memweight.o
CC mm/swap_slots.o
CC drivers/input/serio/i8042.o
CC net/mac80211/michael.o
CC drivers/acpi/sysfs.o
CC lib/kfifo.o
CC drivers/scsi/scsi_common.o
CC drivers/acpi/acpica/psparse.o
CC drivers/usb/core/usb.o
CC arch/x86/kernel/smp.o
CC net/mac80211/tkip.o
CC drivers/pcmcia/cardbus.o
CC net/sunrpc/auth_tls.o
CC drivers/pcmcia/ds.o
CC drivers/net/phy/swphy.o
CC mm/dmapool.o
CC drivers/scsi/scsi_transport_spi.o
AR drivers/usb/common/built-in.a
CC drivers/net/ethernet/broadcom/tg3.o
AR drivers/usb/phy/built-in.a
CC kernel/async.o
CC drivers/net/net_failover.o
CC drivers/ata/pata_oldpiix.o
AR drivers/net/ethernet/cisco/built-in.a
CC drivers/base/auxiliary.o
AR drivers/net/ethernet/cortina/built-in.a
CC drivers/gpu/drm/virtio/virtgpu_prime.o
AR drivers/net/ethernet/dec/tulip/built-in.a
CC drivers/scsi/virtio_scsi.o
AR drivers/net/ethernet/dec/built-in.a
CC net/ipv4/af_inet.o
CC drivers/usb/core/hub.o
CC drivers/acpi/property.o
CC net/ipv4/igmp.o
CC mm/hugetlb.o
CC drivers/scsi/sd.o
CC drivers/gpu/drm/i915/intel_pcode.o
CC drivers/acpi/acpica/psscope.o
CC drivers/input/serio/serport.o
CC drivers/gpu/drm/virtio/virtgpu_trace_points.o
CC drivers/net/phy/fixed_phy.o
CC drivers/ata/pata_sch.o
AR drivers/net/ethernet/dlink/built-in.a
CC drivers/usb/mon/mon_main.o
CC drivers/usb/host/pci-quirks.o
CC lib/percpu-refcount.o
CC drivers/usb/host/ehci-hcd.o
CC [M] drivers/gpu/drm/scheduler/sched_fence.o
CC drivers/acpi/acpica/pstree.o
CC drivers/base/devtmpfs.o
CC kernel/range.o
CC drivers/net/phy/realtek.o
CC arch/x86/kernel/smpboot.o
AR fs/nfs/built-in.a
CC fs/fcntl.o
CC kernel/smpboot.o
CC arch/x86/kernel/tsc_sync.o
CC net/core/netdev-genl-gen.o
CC net/ipv4/fib_frontend.o
CC net/core/gso.o
CC mm/mmu_notifier.o
CC [M] drivers/gpu/drm/scheduler/sched_entity.o
CC drivers/ata/pata_mpiix.o
CC net/sunrpc/auth_unix.o
CC drivers/input/serio/libps2.o
CC drivers/acpi/acpica/psutils.o
CC drivers/pcmcia/pcmcia_resource.o
CC drivers/acpi/acpica/pswalk.o
CC arch/x86/kernel/setup_percpu.o
CC drivers/usb/mon/mon_stat.o
CC drivers/pcmcia/cistpl.o
CC drivers/gpu/drm/virtio/virtgpu_submit.o
CC net/ipv6/sit.o
CC lib/rhashtable.o
CC net/ipv6/addrconf_core.o
CC drivers/scsi/sr.o
CC drivers/usb/core/hcd.o
CC arch/x86/kernel/mpparse.o
CC kernel/ucount.o
CC drivers/gpu/drm/i915/intel_region_ttm.o
CC drivers/usb/class/usblp.o
CC drivers/usb/storage/scsiglue.o
CC net/wireless/pmsr.o
CC arch/x86/kernel/trace_clock.o
CC drivers/scsi/sr_ioctl.o
CC drivers/acpi/acpica/psxface.o
CC drivers/usb/host/ehci-pci.o
CC net/sunrpc/svc.o
CC drivers/ata/ata_generic.o
CC drivers/base/module.o
CC net/mac80211/aes_cmac.o
LD [M] drivers/gpu/drm/scheduler/gpu-sched.o
CC arch/x86/kernel/trace.o
CC net/core/net-sysfs.o
CC net/core/hotdata.o
CC drivers/usb/mon/mon_text.o
CC net/mac80211/aes_gmac.o
AR drivers/input/serio/built-in.a
CC net/ipv6/exthdrs_core.o
CC drivers/input/keyboard/atkbd.o
CC net/ipv6/ip6_checksum.o
CC arch/x86/kernel/rethook.o
CC drivers/rtc/lib.o
AR drivers/net/phy/built-in.a
CC arch/x86/kernel/vmcore_info_32.o
CC kernel/regset.o
CC drivers/acpi/acpica/rsaddr.o
CC net/mac80211/fils_aead.o
CC fs/ioctl.o
CC drivers/base/auxiliary_sysfs.o
CC net/core/net-procfs.o
CC drivers/usb/mon/mon_bin.o
AR drivers/gpu/drm/virtio/built-in.a
AR drivers/usb/misc/built-in.a
CC drivers/input/mouse/psmouse-base.o
GEN net/wireless/shipped-certs.c
CC net/wireless/shipped-certs.o
CC drivers/input/mouse/synaptics.o
CC drivers/usb/storage/protocol.o
CC drivers/gpu/drm/drm_aperture.o
HOSTCC drivers/gpu/drm/xe/xe_gen_wa_oob
CC drivers/gpu/drm/drm_atomic.o
CC net/ipv4/fib_semantics.o
CC drivers/acpi/acpica/rscalc.o
CC drivers/gpu/drm/drm_atomic_uapi.o
CC net/sunrpc/svcsock.o
CC kernel/ksyms_common.o
AR drivers/ata/built-in.a
CC lib/base64.o
CC net/sunrpc/svcauth.o
CC drivers/gpu/drm/drm_auth.o
AR drivers/usb/class/built-in.a
CC drivers/gpu/drm/i915/intel_runtime_pm.o
CC net/mac80211/cfg.o
CC drivers/base/devcoredump.o
GEN xe_wa_oob.c xe_wa_oob.h
CC drivers/base/platform-msi.o
CC [M] drivers/gpu/drm/xe/xe_bb.o
CC drivers/rtc/class.o
CC drivers/base/physical_location.o
CC kernel/groups.o
CC lib/once.o
CC drivers/pcmcia/pcmcia_cis.o
CC arch/x86/kernel/machine_kexec_32.o
AS arch/x86/kernel/relocate_kernel_32.o
CC drivers/scsi/sr_vendor.o
CC drivers/pcmcia/rsrc_mgr.o
CC net/ipv4/fib_trie.o
CC net/ipv6/ip6_icmp.o
CC drivers/usb/storage/transport.o
CC [M] drivers/gpu/drm/xe/xe_bo.o
CC drivers/gpu/drm/i915/intel_sbi.o
CC drivers/acpi/acpica/rscreate.o
CC drivers/usb/core/urb.o
CC drivers/input/mouse/focaltech.o
AR drivers/input/keyboard/built-in.a
CC drivers/usb/core/message.o
AR drivers/input/joystick/built-in.a
CC net/ipv6/output_core.o
AR drivers/input/tablet/built-in.a
CC lib/refcount.o
AR drivers/input/touchscreen/built-in.a
CC net/ipv6/protocol.o
CC drivers/input/input.o
AR drivers/input/misc/built-in.a
CC drivers/input/mouse/alps.o
CC drivers/base/trace.o
CC drivers/rtc/interface.o
CC fs/readdir.o
CC drivers/pcmcia/rsrc_nonstatic.o
CC arch/x86/kernel/crash_dump_32.o
CC net/ipv6/ip6_offload.o
CC drivers/acpi/debugfs.o
CC drivers/input/mouse/byd.o
AR drivers/usb/mon/built-in.a
CC drivers/gpu/drm/drm_blend.o
CC drivers/gpu/drm/drm_bridge.o
CC lib/rcuref.o
CC drivers/scsi/sg.o
CC drivers/pcmcia/yenta_socket.o
CC kernel/kcmp.o
CC drivers/input/mouse/logips2pp.o
CC drivers/acpi/acpica/rsdumpinfo.o
CC drivers/usb/early/ehci-dbgp.o
CC drivers/usb/host/ohci-hcd.o
CC drivers/usb/host/ohci-pci.o
CC drivers/input/mouse/lifebook.o
CC lib/usercopy.o
CC net/ipv4/fib_notifier.o
CC drivers/input/mouse/trackpoint.o
CC net/ipv6/tcpv6_offload.o
CC [M] drivers/gpu/drm/xe/xe_bo_evict.o
CC mm/migrate.o
CC drivers/gpu/drm/drm_cache.o
CC drivers/usb/host/uhci-hcd.o
CC drivers/gpu/drm/drm_client.o
CC net/core/netpoll.o
CC drivers/acpi/acpica/rsinfo.o
CC drivers/usb/storage/usb.o
CC drivers/gpu/drm/drm_client_modeset.o
CC lib/errseq.o
CC drivers/gpu/drm/i915/intel_step.o
CC arch/x86/kernel/crash.o
CC mm/page_counter.o
CC mm/hugetlb_cgroup.o
CC net/mac80211/ethtool.o
AR drivers/base/built-in.a
CC lib/bucket_locks.o
CC drivers/i2c/algos/i2c-algo-bit.o
CC drivers/rtc/nvmem.o
CC net/ipv6/exthdrs_offload.o
CC fs/select.o
CC drivers/input/mouse/cypress_ps2.o
CC fs/dcache.o
CC drivers/acpi/acpi_lpat.o
CC net/mac80211/rx.o
CC lib/generic-radix-tree.o
CC drivers/acpi/acpica/rsio.o
CC kernel/freezer.o
CC arch/x86/kernel/module.o
CC kernel/profile.o
AR drivers/usb/early/built-in.a
CC drivers/input/mouse/psmouse-smbus.o
CC kernel/stacktrace.o
CC drivers/usb/core/driver.o
CC drivers/gpu/drm/i915/intel_uncore.o
CC net/sunrpc/svcauth_unix.o
CC drivers/acpi/acpica/rsirq.o
CC net/mac80211/spectmgmt.o
CC net/ipv6/inet6_hashtables.o
CC drivers/acpi/acpica/rslist.o
CC net/sunrpc/addr.o
CC lib/bitmap-str.o
CC drivers/gpu/drm/i915/intel_wakeref.o
CC lib/string_helpers.o
AR drivers/pcmcia/built-in.a
CC net/sunrpc/rpcb_clnt.o
CC arch/x86/kernel/doublefault_32.o
AR drivers/i3c/built-in.a
CC [M] drivers/gpu/drm/xe/xe_devcoredump.o
CC lib/hexdump.o
CC lib/kstrtox.o
AR drivers/media/i2c/built-in.a
CC lib/iomap.o
AR drivers/media/tuners/built-in.a
CC drivers/rtc/dev.o
CC net/ipv6/mcast_snoop.o
AR drivers/media/rc/keymaps/built-in.a
AR drivers/media/rc/built-in.a
AR drivers/media/common/b2c2/built-in.a
AR drivers/media/platform/allegro-dvt/built-in.a
CC drivers/usb/storage/initializers.o
AR drivers/media/common/saa7146/built-in.a
CC drivers/acpi/acpi_pcc.o
AR drivers/media/common/siano/built-in.a
CC drivers/acpi/ac.o
AR drivers/media/platform/amlogic/meson-ge2d/built-in.a
CC drivers/scsi/scsi_sysfs.o
AR drivers/media/platform/amlogic/built-in.a
CC drivers/gpu/drm/i915/vlv_sideband.o
AR drivers/media/common/v4l2-tpg/built-in.a
CC arch/x86/kernel/early_printk.o
AR drivers/media/common/videobuf2/built-in.a
AR drivers/media/common/built-in.a
AR drivers/media/platform/amphion/built-in.a
AR drivers/pps/clients/built-in.a
AR drivers/i2c/algos/built-in.a
AR drivers/media/platform/aspeed/built-in.a
AR drivers/pps/generators/built-in.a
AR drivers/media/platform/atmel/built-in.a
CC drivers/i2c/busses/i2c-i801.o
CC drivers/pps/pps.o
CC drivers/pps/kapi.o
CC drivers/input/input-compat.o
CC drivers/ptp/ptp_clock.o
AR drivers/media/platform/broadcom/built-in.a
CC drivers/acpi/acpica/rsmemory.o
AR drivers/media/platform/cadence/built-in.a
CC drivers/ptp/ptp_chardev.o
AR drivers/media/platform/chips-media/coda/built-in.a
CC net/ipv4/inet_fragment.o
CC drivers/ptp/ptp_sysfs.o
CC drivers/power/supply/power_supply_core.o
AR drivers/media/platform/chips-media/wave5/built-in.a
CC kernel/dma.o
AR drivers/media/platform/chips-media/built-in.a
AR drivers/media/platform/imagination/built-in.a
CC mm/early_ioremap.o
AR drivers/media/platform/intel/built-in.a
CC kernel/smp.o
AR drivers/media/platform/marvell/built-in.a
CC mm/secretmem.o
AR drivers/media/platform/mediatek/jpeg/built-in.a
AR drivers/media/platform/mediatek/mdp/built-in.a
AR drivers/media/platform/mediatek/vcodec/common/built-in.a
AR drivers/input/mouse/built-in.a
AR drivers/media/platform/mediatek/vcodec/encoder/built-in.a
AR drivers/media/platform/mediatek/vpu/built-in.a
AR drivers/media/platform/mediatek/vcodec/decoder/built-in.a
CC drivers/input/input-mt.o
AR drivers/media/platform/mediatek/vcodec/built-in.a
AR drivers/media/platform/microchip/built-in.a
CC drivers/usb/storage/sierra_ms.o
AR drivers/media/platform/mediatek/mdp3/built-in.a
AR drivers/media/platform/mediatek/built-in.a
CC lib/iomap_copy.o
AR drivers/media/platform/nuvoton/built-in.a
CC drivers/usb/host/xhci.o
CC net/core/fib_rules.o
CC drivers/acpi/acpica/rsmisc.o
AR drivers/media/platform/nvidia/tegra-vde/built-in.a
AR drivers/media/platform/nvidia/built-in.a
CC lib/devres.o
CC lib/check_signature.o
CC drivers/rtc/proc.o
CC drivers/acpi/acpica/rsserial.o
AR drivers/media/platform/nxp/dw100/built-in.a
AR drivers/media/platform/nxp/imx-jpeg/built-in.a
CC fs/inode.o
CC [M] drivers/gpu/drm/xe/xe_device.o
AR drivers/media/platform/nxp/imx8-isi/built-in.a
CC [M] drivers/gpu/drm/xe/xe_device_sysfs.o
AR drivers/media/platform/nxp/built-in.a
CC drivers/acpi/button.o
CC arch/x86/kernel/hpet.o
CC arch/x86/kernel/amd_nb.o
AR drivers/media/platform/qcom/camss/built-in.a
CC drivers/input/input-poller.o
CC net/core/net-traces.o
CC drivers/acpi/fan_core.o
AR drivers/media/platform/qcom/venus/built-in.a
AR drivers/media/platform/qcom/built-in.a
CC net/core/selftests.o
CC drivers/usb/core/config.o
CC drivers/acpi/fan_attr.o
AR drivers/media/platform/raspberrypi/pisp_be/built-in.a
AR drivers/media/platform/raspberrypi/built-in.a
CC drivers/pps/sysfs.o
CC drivers/acpi/fan_hwmon.o
AR drivers/media/platform/renesas/rcar-vin/built-in.a
AR drivers/media/platform/renesas/rzg2l-cru/built-in.a
AR drivers/media/platform/renesas/vsp1/built-in.a
CC kernel/uid16.o
AR drivers/media/platform/renesas/built-in.a
AR drivers/media/platform/rockchip/rga/built-in.a
CC fs/attr.o
AR drivers/media/platform/samsung/exynos-gsc/built-in.a
AR drivers/media/platform/rockchip/rkisp1/built-in.a
AR drivers/media/platform/rockchip/built-in.a
AR drivers/media/platform/samsung/exynos4-is/built-in.a
CC fs/bad_inode.o
AR drivers/media/platform/samsung/s3c-camif/built-in.a
CC net/sunrpc/timer.o
AR drivers/media/platform/samsung/s5p-g2d/built-in.a
AR drivers/media/platform/samsung/s5p-jpeg/built-in.a
AR drivers/media/platform/samsung/s5p-mfc/built-in.a
CC net/sunrpc/xdr.o
CC drivers/usb/storage/option_ms.o
AR drivers/media/platform/samsung/built-in.a
CC drivers/power/supply/power_supply_sysfs.o
CC drivers/usb/storage/usual-tables.o
CC lib/interval_tree.o
CC lib/assoc_array.o
CC drivers/acpi/acpica/rsutils.o
CC drivers/ptp/ptp_vclock.o
AR drivers/media/platform/st/sti/bdisp/built-in.a
AR drivers/media/platform/st/sti/c8sectpfe/built-in.a
AR drivers/media/platform/st/sti/delta/built-in.a
AR net/ipv6/built-in.a
AR drivers/media/platform/sunxi/sun4i-csi/built-in.a
AR drivers/media/platform/st/sti/hva/built-in.a
AR drivers/media/platform/st/stm32/built-in.a
CC drivers/rtc/sysfs.o
AR drivers/media/platform/sunxi/sun6i-csi/built-in.a
CC drivers/usb/host/xhci-mem.o
AR drivers/media/platform/st/built-in.a
CC drivers/input/ff-core.o
AR drivers/media/platform/sunxi/sun6i-mipi-csi2/built-in.a
AR drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/built-in.a
AR drivers/media/platform/sunxi/sun8i-di/built-in.a
AR drivers/media/platform/sunxi/sun8i-rotate/built-in.a
AR drivers/media/platform/verisilicon/built-in.a
AR drivers/media/platform/sunxi/built-in.a
AR drivers/media/platform/ti/am437x/built-in.a
AR drivers/media/platform/ti/cal/built-in.a
CC fs/file.o
AR drivers/pps/built-in.a
AR drivers/media/platform/ti/vpe/built-in.a
AR drivers/net/ethernet/emulex/built-in.a
CC mm/hmm.o
CC mm/memfd.o
CC drivers/gpu/drm/i915/vlv_suspend.o
CC kernel/kallsyms.o
AR drivers/media/platform/ti/davinci/built-in.a
AR drivers/scsi/built-in.a
AR drivers/net/ethernet/engleder/built-in.a
AR drivers/media/platform/ti/j721e-csi2rx/built-in.a
CC drivers/input/touchscreen.o
CC drivers/rtc/rtc-mc146818-lib.o
AR drivers/media/platform/ti/omap/built-in.a
CC drivers/rtc/rtc-cmos.o
CC net/mac80211/tx.o
AR drivers/media/platform/ti/omap3isp/built-in.a
AR drivers/media/platform/ti/built-in.a
CC arch/x86/kernel/kvm.o
AR drivers/media/platform/via/built-in.a
CC mm/ptdump.o
CC arch/x86/kernel/kvmclock.o
AR drivers/media/platform/xilinx/built-in.a
AR drivers/media/platform/built-in.a
AR drivers/i2c/busses/built-in.a
AR drivers/i2c/muxes/built-in.a
CC drivers/i2c/i2c-boardinfo.o
CC drivers/input/ff-memless.o
AR drivers/media/pci/ttpci/built-in.a
CC fs/filesystems.o
AR drivers/media/pci/b2c2/built-in.a
CC lib/bitrev.o
AR drivers/media/pci/pluto2/built-in.a
AR drivers/media/pci/dm1105/built-in.a
CC drivers/i2c/i2c-core-base.o
AR drivers/media/pci/pt1/built-in.a
CC drivers/acpi/acpica/rsxface.o
AR drivers/media/pci/pt3/built-in.a
CC drivers/power/supply/power_supply_leds.o
AR drivers/media/pci/mantis/built-in.a
CC arch/x86/kernel/paravirt.o
CC drivers/power/supply/power_supply_hwmon.o
AR drivers/media/pci/ngene/built-in.a
AR drivers/media/pci/ddbridge/built-in.a
AR drivers/media/pci/saa7146/built-in.a
CC fs/namespace.o
AR drivers/media/pci/smipcie/built-in.a
AR drivers/media/pci/netup_unidvb/built-in.a
AR drivers/usb/storage/built-in.a
AR drivers/media/pci/intel/ipu3/built-in.a
AR drivers/media/pci/intel/ivsc/built-in.a
CC arch/x86/kernel/pvclock.o
AR drivers/media/pci/intel/built-in.a
CC drivers/usb/core/file.o
CC drivers/i2c/i2c-core-smbus.o
AR drivers/media/pci/built-in.a
CC net/ipv4/ping.o
CC drivers/input/sparse-keymap.o
AR drivers/media/usb/b2c2/built-in.a
AR drivers/media/usb/dvb-usb/built-in.a
CC drivers/i2c/i2c-core-acpi.o
AR drivers/media/usb/dvb-usb-v2/built-in.a
CC fs/seq_file.o
CC drivers/i2c/i2c-smbus.o
CC drivers/ptp/ptp_kvm_x86.o
AR drivers/media/usb/s2255/built-in.a
CC lib/crc-ccitt.o
AR drivers/media/usb/siano/built-in.a
CC [M] drivers/gpu/drm/xe/xe_dma_buf.o
AR drivers/media/usb/ttusb-budget/built-in.a
AR drivers/media/usb/ttusb-dec/built-in.a
AR drivers/media/usb/built-in.a
CC drivers/usb/core/buffer.o
AR drivers/media/mmc/siano/built-in.a
CC kernel/acct.o
CC lib/crc16.o
AR drivers/media/mmc/built-in.a
CC kernel/vmcore_info.o
CC drivers/acpi/acpica/tbdata.o
AR drivers/media/firewire/built-in.a
CC kernel/elfcorehdr.o
AR drivers/media/spi/built-in.a
AR drivers/media/test-drivers/built-in.a
AR drivers/media/built-in.a
CC drivers/gpu/drm/drm_color_mgmt.o
CC net/core/ptp_classifier.o
CC fs/xattr.o
AR drivers/power/supply/built-in.a
CC net/core/netprio_cgroup.o
CC drivers/hwmon/hwmon.o
CC net/core/netclassid_cgroup.o
AR drivers/power/built-in.a
CC arch/x86/kernel/pcspeaker.o
CC net/mac80211/key.o
CC mm/execmem.o
CC drivers/acpi/acpica/tbfadt.o
CC [M] drivers/gpu/drm/xe/xe_drm_client.o
CC drivers/ptp/ptp_kvm_common.o
HOSTCC lib/gen_crc32table
CC net/core/dst_cache.o
CC drivers/usb/core/sysfs.o
AR drivers/rtc/built-in.a
CC net/mac80211/util.o
CC net/ipv4/ip_tunnel_core.o
CC lib/xxhash.o
CC arch/x86/kernel/check.o
CC lib/genalloc.o
CC arch/x86/kernel/uprobes.o
CC lib/percpu_counter.o
CC drivers/input/vivaldi-fmap.o
CC fs/libfs.o
CC drivers/gpu/drm/i915/soc/intel_dram.o
CC arch/x86/kernel/perf_regs.o
CC lib/audit.o
CC drivers/usb/core/endpoint.o
CC arch/x86/kernel/tracepoint.o
CC fs/fs-writeback.o
CC drivers/acpi/acpica/tbfind.o
CC fs/pnode.o
AR drivers/thermal/broadcom/built-in.a
AR drivers/thermal/renesas/built-in.a
CC fs/splice.o
AR drivers/thermal/samsung/built-in.a
CC drivers/thermal/intel/intel_tcc.o
CC kernel/crash_reserve.o
AR mm/built-in.a
CC drivers/thermal/intel/therm_throt.o
CC arch/x86/kernel/itmt.o
AR drivers/watchdog/built-in.a
CC fs/sync.o
CC drivers/input/input-leds.o
AR drivers/thermal/st/built-in.a
CC [M] drivers/thermal/intel/x86_pkg_temp_thermal.o
CC drivers/md/md.o
CC net/core/gro_cells.o
AR drivers/ptp/built-in.a
CC net/mac80211/parse.o
AR drivers/thermal/qcom/built-in.a
CC drivers/cpufreq/cpufreq.o
CC drivers/cpufreq/freq_table.o
CC drivers/usb/core/devio.o
CC drivers/gpu/drm/drm_connector.o
CC drivers/acpi/acpica/tbinstal.o
CC drivers/acpi/acpica/tbprint.o
CC [M] drivers/gpu/drm/xe/xe_exec.o
CC kernel/kexec_core.o
CC drivers/input/evdev.o
CC lib/syscall.o
CC drivers/cpufreq/cpufreq_performance.o
CC drivers/gpu/drm/i915/soc/intel_gmch.o
CC drivers/usb/host/xhci-ext-caps.o
CC net/core/failover.o
CC arch/x86/kernel/umip.o
CC net/ipv4/gre_offload.o
CC drivers/usb/core/notify.o
CC drivers/cpufreq/cpufreq_userspace.o
AR drivers/i2c/built-in.a
CC drivers/cpufreq/cpufreq_ondemand.o
CC net/ipv4/metrics.o
CC drivers/cpufreq/cpufreq_governor.o
CC kernel/crash_core.o
CC kernel/kexec.o
AR drivers/hwmon/built-in.a
CC drivers/gpu/drm/drm_crtc.o
CC drivers/usb/core/generic.o
CC drivers/gpu/drm/drm_displayid.o
CC arch/x86/kernel/unwind_frame.o
CC drivers/acpi/acpica/tbutils.o
CC kernel/utsname.o
CC drivers/gpu/drm/i915/soc/intel_pch.o
CC drivers/cpufreq/cpufreq_governor_attr_set.o
CC drivers/cpufreq/acpi-cpufreq.o
CC drivers/usb/host/xhci-ring.o
CC [M] drivers/gpu/drm/xe/xe_execlist.o
CC lib/errname.o
CC net/ipv4/netlink.o
CC lib/nlattr.o
CC fs/utimes.o
CC kernel/pid_namespace.o
AR drivers/thermal/intel/built-in.a
AR drivers/thermal/tegra/built-in.a
CC kernel/stop_machine.o
AR drivers/thermal/mediatek/built-in.a
CC kernel/audit.o
CC drivers/thermal/thermal_core.o
CC drivers/acpi/acpica/tbxface.o
CC drivers/usb/host/xhci-hub.o
CC drivers/usb/host/xhci-dbg.o
CC net/mac80211/wme.o
CC drivers/acpi/acpica/tbxfload.o
CC drivers/usb/core/quirks.o
CC drivers/thermal/thermal_sysfs.o
CC net/sunrpc/sunrpc_syms.o
AR drivers/net/ethernet/broadcom/built-in.a
CC drivers/cpufreq/amd-pstate.o
CC net/sunrpc/cache.o
AR drivers/net/ethernet/ezchip/built-in.a
AR drivers/input/built-in.a
CC drivers/usb/core/devices.o
AR drivers/net/ethernet/fujitsu/built-in.a
CC drivers/usb/core/phy.o
AR drivers/net/ethernet/fungible/built-in.a
AR drivers/net/ethernet/google/built-in.a
CC drivers/thermal/thermal_trip.o
CC drivers/usb/core/port.o
AR arch/x86/kernel/built-in.a
AR drivers/net/ethernet/huawei/built-in.a
CC net/sunrpc/rpc_pipe.o
CC kernel/auditfilter.o
AR arch/x86/built-in.a
CC drivers/net/ethernet/intel/e1000/e1000_main.o
CC drivers/net/ethernet/intel/e1000e/82571.o
CC drivers/acpi/acpica/tbxfroot.o
CC fs/d_path.o
CC drivers/net/ethernet/intel/e1000/e1000_hw.o
CC drivers/net/ethernet/intel/e100.o
CC lib/cpu_rmap.o
CC drivers/usb/core/hcd-pci.o
CC drivers/thermal/thermal_helpers.o
CC drivers/cpuidle/governors/menu.o
CC drivers/cpuidle/cpuidle.o
CC net/ipv4/nexthop.o
CC net/ipv4/udp_tunnel_stub.o
CC fs/stack.o
CC drivers/gpu/drm/drm_drv.o
CC drivers/acpi/acpica/utaddress.o
CC net/sunrpc/sysfs.o
CC [M] drivers/gpu/drm/xe/xe_exec_queue.o
CC net/mac80211/chan.o
CC [M] drivers/gpu/drm/xe/xe_force_wake.o
CC drivers/usb/host/xhci-trace.o
CC fs/fs_struct.o
CC kernel/auditsc.o
CC drivers/gpu/drm/i915/i915_memcpy.o
CC drivers/cpuidle/governors/haltpoll.o
CC lib/dynamic_queue_limits.o
CC drivers/net/ethernet/intel/e1000e/ich8lan.o
CC drivers/cpuidle/driver.o
CC drivers/gpu/drm/i915/i915_mm.o
AR net/wireless/built-in.a
AR drivers/mmc/built-in.a
AR net/core/built-in.a
CC drivers/gpu/drm/i915/i915_sw_fence.o
CC drivers/usb/core/usb-acpi.o
CC drivers/gpu/drm/i915/i915_sw_fence_work.o
CC drivers/gpu/drm/drm_dumb_buffers.o
CC drivers/cpuidle/governor.o
CC net/mac80211/trace.o
CC drivers/net/ethernet/intel/e1000/e1000_ethtool.o
CC drivers/acpi/acpica/utalloc.o
CC net/sunrpc/svc_xprt.o
CC drivers/net/ethernet/intel/e1000/e1000_param.o
CC fs/statfs.o
CC drivers/cpuidle/sysfs.o
CC net/mac80211/mlme.o
CC drivers/net/ethernet/intel/e1000e/80003es2lan.o
CC drivers/net/ethernet/intel/e1000e/mac.o
CC net/ipv4/ip_tunnel.o
CC drivers/gpu/drm/drm_edid.o
CC kernel/audit_watch.o
CC drivers/cpufreq/amd-pstate-trace.o
CC drivers/cpuidle/poll_state.o
CC drivers/thermal/thermal_hwmon.o
CC drivers/thermal/gov_step_wise.o
CC drivers/acpi/acpica/utascii.o
CC [M] drivers/gpu/drm/xe/xe_ggtt.o
CC net/ipv4/sysctl_net_ipv4.o
CC drivers/gpu/drm/drm_eld.o
CC [M] drivers/gpu/drm/xe/xe_gpu_scheduler.o
CC drivers/cpufreq/intel_pstate.o
CC drivers/acpi/acpica/utbuffer.o
CC lib/glob.o
CC net/sunrpc/xprtmultipath.o
CC drivers/cpuidle/cpuidle-haltpoll.o
CC drivers/acpi/acpica/utcksum.o
CC [M] drivers/gpu/drm/xe/xe_gsc.o
AR drivers/usb/core/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gsc_proxy.o
CC net/mac80211/tdls.o
CC kernel/audit_fsnotify.o
CC drivers/acpi/acpi_video.o
CC drivers/usb/host/xhci-debugfs.o
CC net/sunrpc/stats.o
AR drivers/cpuidle/governors/built-in.a
CC net/sunrpc/sysctl.o
CC drivers/thermal/gov_user_space.o
CC drivers/acpi/acpica/utcopy.o
CC fs/fs_pin.o
CC drivers/acpi/acpica/utexcep.o
CC drivers/gpu/drm/i915/i915_syncmap.o
CC drivers/net/ethernet/intel/e1000e/manage.o
CC [M] drivers/gpu/drm/xe/xe_gsc_submit.o
CC drivers/usb/host/xhci-pci.o
CC drivers/acpi/video_detect.o
CC lib/strncpy_from_user.o
CC fs/nsfs.o
CC fs/fs_types.o
AR drivers/cpuidle/built-in.a
AR drivers/ufs/built-in.a
AR drivers/leds/trigger/built-in.a
AR drivers/firmware/arm_ffa/built-in.a
AR drivers/leds/blink/built-in.a
AR drivers/firmware/arm_scmi/built-in.a
AR drivers/leds/simple/built-in.a
CC drivers/leds/led-core.o
AR drivers/firmware/broadcom/built-in.a
CC drivers/leds/led-class.o
CC kernel/audit_tree.o
AR drivers/firmware/cirrus/built-in.a
AR drivers/firmware/meson/built-in.a
CC drivers/leds/led-triggers.o
AR drivers/firmware/microchip/built-in.a
AR drivers/crypto/stm32/built-in.a
AR drivers/crypto/xilinx/built-in.a
AR drivers/thermal/built-in.a
AR drivers/crypto/hisilicon/built-in.a
CC drivers/firmware/efi/efi-bgrt.o
CC drivers/clocksource/acpi_pm.o
AR drivers/crypto/intel/keembay/built-in.a
CC drivers/firmware/efi/libstub/efi-stub-helper.o
AR drivers/crypto/intel/ixp4xx/built-in.a
CC drivers/firmware/efi/efi.o
CC drivers/gpu/drm/i915/i915_user_extensions.o
CC drivers/acpi/acpica/utdebug.o
AR drivers/crypto/intel/built-in.a
AR drivers/crypto/starfive/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gt.o
CC drivers/firmware/efi/libstub/gop.o
AR drivers/crypto/built-in.a
CC drivers/net/ethernet/intel/e1000e/nvm.o
CC [M] drivers/gpu/drm/xe/xe_gt_ccs_mode.o
AR drivers/firmware/imx/built-in.a
CC kernel/kprobes.o
CC fs/fs_context.o
CC kernel/seccomp.o
CC net/mac80211/ocb.o
CC lib/strnlen_user.o
CC kernel/relay.o
AR drivers/firmware/psci/built-in.a
CC drivers/md/md-bitmap.o
CC net/mac80211/airtime.o
CC drivers/acpi/acpica/utdecode.o
CC drivers/acpi/acpica/utdelete.o
CC [M] drivers/gpu/drm/xe/xe_gt_clock.o
CC drivers/gpu/drm/i915/i915_debugfs.o
CC kernel/utsname_sysctl.o
CC fs/fs_parser.o
CC drivers/firmware/efi/libstub/secureboot.o
CC drivers/gpu/drm/i915/i915_debugfs_params.o
CC drivers/gpu/drm/i915/i915_pmu.o
CC drivers/gpu/drm/i915/gt/gen2_engine_cs.o
CC drivers/firmware/efi/libstub/tpm.o
CC drivers/hid/usbhid/hid-core.o
CC drivers/hid/usbhid/hiddev.o
CC drivers/firmware/efi/vars.o
CC drivers/acpi/processor_driver.o
AR drivers/firmware/qcom/built-in.a
AR drivers/firmware/smccc/built-in.a
CC drivers/acpi/processor_thermal.o
CC net/mac80211/eht.o
AR drivers/leds/built-in.a
CC drivers/clocksource/i8253.o
AR drivers/firmware/tegra/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gt_freq.o
CC net/ipv4/proc.o
AR drivers/firmware/xilinx/built-in.a
CC drivers/md/md-autodetect.o
CC drivers/firmware/efi/reboot.o
AR drivers/net/ethernet/intel/e1000/built-in.a
CC drivers/hid/usbhid/hid-pidff.o
CC net/ipv4/fib_rules.o
CC drivers/firmware/efi/libstub/file.o
CC lib/net_utils.o
CC drivers/acpi/acpica/uterror.o
CC drivers/gpu/drm/drm_encoder.o
CC [M] drivers/gpu/drm/xe/xe_gt_idle.o
CC drivers/firmware/efi/libstub/mem.o
CC kernel/delayacct.o
CC drivers/firmware/efi/libstub/random.o
AR drivers/clocksource/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gt_mcr.o
CC drivers/firmware/efi/memattr.o
CC drivers/firmware/efi/tpm.o
AR drivers/platform/x86/amd/built-in.a
AR drivers/platform/x86/intel/built-in.a
CC drivers/platform/x86/wmi.o
CC drivers/firmware/efi/memmap.o
CC drivers/firmware/efi/capsule.o
AR drivers/usb/host/built-in.a
CC fs/fsopen.o
CC drivers/net/ethernet/intel/e1000e/phy.o
AR drivers/usb/built-in.a
AR drivers/cpufreq/built-in.a
CC drivers/firmware/efi/esrt.o
CC [M] drivers/gpu/drm/xe/xe_gt_pagefault.o
CC drivers/gpu/drm/drm_file.o
CC [M] drivers/gpu/drm/xe/xe_gt_sysfs.o
CC drivers/acpi/acpica/uteval.o
CC drivers/firmware/efi/runtime-wrappers.o
CC drivers/platform/x86/wmi-bmof.o
CC drivers/acpi/acpica/utglobal.o
CC drivers/gpu/drm/i915/gt/gen6_engine_cs.o
CC kernel/taskstats.o
CC fs/init.o
CC lib/sg_pool.o
CC drivers/firmware/efi/libstub/randomalloc.o
CC drivers/platform/x86/eeepc-laptop.o
CC drivers/mailbox/mailbox.o
CC drivers/platform/x86/p2sb.o
CC kernel/tsacct.o
AR drivers/perf/built-in.a
CC drivers/gpu/drm/drm_fourcc.o
CC net/mac80211/led.o
CC [M] drivers/gpu/drm/xe/xe_gt_throttle.o
AR drivers/hwtracing/intel_th/built-in.a
CC drivers/firmware/efi/libstub/pci.o
CC drivers/mailbox/pcc.o
CC drivers/acpi/acpica/uthex.o
CC drivers/firmware/dmi_scan.o
CC lib/stackdepot.o
CC drivers/hid/hid-core.o
CC drivers/firmware/efi/libstub/skip_spaces.o
CC drivers/firmware/efi/libstub/lib-cmdline.o
CC drivers/md/dm.o
CC drivers/acpi/acpica/utids.o
CC drivers/gpu/drm/i915/gt/gen6_ppgtt.o
CC drivers/md/dm-table.o
AR net/sunrpc/built-in.a
CC drivers/md/dm-target.o
CC drivers/firmware/efi/capsule-loader.o
AR drivers/hid/usbhid/built-in.a
CC drivers/gpu/drm/i915/gt/gen7_renderclear.o
CC drivers/hid/hid-input.o
CC drivers/hid/hid-quirks.o
CC drivers/firmware/efi/earlycon.o
CC drivers/firmware/dmi-id.o
CC drivers/firmware/memmap.o
CC kernel/tracepoint.o
AR drivers/android/built-in.a
AR drivers/nvmem/layouts/built-in.a
AR drivers/platform/surface/built-in.a
CC drivers/nvmem/core.o
CC drivers/net/ethernet/intel/e1000e/param.o
CC drivers/acpi/acpica/utinit.o
CC [M] drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o
CC drivers/md/dm-linear.o
CC fs/kernel_read_file.o
CC lib/asn1_decoder.o
CC net/ipv4/ipmr.o
GEN lib/oid_registry_data.c
CC drivers/acpi/processor_idle.o
CC fs/mnt_idmapping.o
CC drivers/acpi/processor_throttling.o
CC drivers/net/ethernet/intel/e1000e/ethtool.o
CC drivers/firmware/efi/libstub/lib-ctype.o
CC kernel/irq_work.o
CC [M] drivers/gpu/drm/xe/xe_gt_topology.o
CC drivers/hid/hid-debug.o
CC drivers/md/dm-stripe.o
CC drivers/net/ethernet/intel/e1000e/netdev.o
CC drivers/acpi/acpica/utlock.o
AR drivers/mailbox/built-in.a
CC drivers/acpi/acpica/utmath.o
CC drivers/md/dm-ioctl.o
CC net/mac80211/pm.o
CC lib/ucs2_string.o
CC drivers/acpi/acpica/utmisc.o
CC drivers/md/dm-io.o
CC drivers/acpi/processor_perflib.o
CC drivers/firmware/efi/libstub/alignedmem.o
CC lib/sbitmap.o
CC net/ipv4/ipmr_base.o
CC lib/group_cpus.o
CC drivers/gpu/drm/i915/gt/gen8_engine_cs.o
CC [M] drivers/gpu/drm/xe/xe_guc.o
CC lib/fw_table.o
CC [M] drivers/gpu/drm/xe/xe_guc_ads.o
AR drivers/platform/x86/built-in.a
AR drivers/platform/built-in.a
CC drivers/acpi/container.o
CC drivers/acpi/acpica/utmutex.o
CC drivers/acpi/thermal_lib.o
CC net/mac80211/rc80211_minstrel_ht.o
CC drivers/acpi/thermal.o
CC fs/remap_range.o
CC drivers/acpi/nhlt.o
CC [M] drivers/gpu/drm/xe/xe_guc_ct.o
CC kernel/static_call.o
CC drivers/gpu/drm/drm_framebuffer.o
CC fs/pidfs.o
CC fs/buffer.o
CC drivers/acpi/acpica/utnonansi.o
CC net/mac80211/wbrf.o
CC net/ipv4/syncookies.o
CC drivers/net/ethernet/intel/e1000e/ptp.o
CC drivers/gpu/drm/i915/gt/gen8_ppgtt.o
CC fs/mpage.o
CC drivers/acpi/acpi_memhotplug.o
CC drivers/firmware/efi/libstub/relocate.o
CC drivers/firmware/efi/libstub/printk.o
CC drivers/acpi/acpica/utobject.o
AR lib/lib.a
CC drivers/gpu/drm/i915/gt/intel_breadcrumbs.o
CC net/ipv4/tunnel4.o
AR drivers/nvmem/built-in.a
CC drivers/gpu/drm/drm_gem.o
CC net/ipv4/ipconfig.o
CC drivers/acpi/acpica/utosi.o
CC kernel/padata.o
CC fs/proc_namespace.o
CC [M] drivers/gpu/drm/xe/xe_guc_db_mgr.o
CC drivers/acpi/ioapic.o
CC drivers/firmware/efi/libstub/vsprintf.o
AR drivers/net/ethernet/i825xx/built-in.a
CC drivers/firmware/efi/libstub/x86-stub.o
CC drivers/firmware/efi/libstub/smbios.o
CC drivers/md/dm-kcopyd.o
CC drivers/md/dm-sysfs.o
CC kernel/jump_label.o
GEN lib/crc32table.h
CC drivers/md/dm-stats.o
CC lib/oid_registry.o
STUBCPY drivers/firmware/efi/libstub/alignedmem.stub.o
STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o
STUBCPY drivers/firmware/efi/libstub/file.stub.o
STUBCPY drivers/firmware/efi/libstub/gop.stub.o
CC drivers/hid/hidraw.o
STUBCPY drivers/firmware/efi/libstub/lib-cmdline.stub.o
CC drivers/hid/hid-generic.o
CC drivers/hid/hid-a4tech.o
CC drivers/md/dm-rq.o
AR drivers/firmware/efi/built-in.a
CC drivers/md/dm-io-rewind.o
CC [M] drivers/gpu/drm/xe/xe_guc_hwconfig.o
CC drivers/acpi/acpica/utownerid.o
CC fs/direct-io.o
STUBCPY drivers/firmware/efi/libstub/lib-ctype.stub.o
CC net/ipv4/netfilter.o
CC drivers/md/dm-builtin.o
STUBCPY drivers/firmware/efi/libstub/mem.stub.o
CC drivers/gpu/drm/drm_ioctl.o
STUBCPY drivers/firmware/efi/libstub/pci.stub.o
CC fs/eventpoll.o
CC lib/crc32.o
STUBCPY drivers/firmware/efi/libstub/printk.stub.o
STUBCPY drivers/firmware/efi/libstub/random.stub.o
CC [M] drivers/gpu/drm/xe/xe_guc_id_mgr.o
CC drivers/acpi/acpica/utpredef.o
CC drivers/gpu/drm/drm_lease.o
CC drivers/hid/hid-apple.o
STUBCPY drivers/firmware/efi/libstub/randomalloc.stub.o
CC kernel/context_tracking.o
STUBCPY drivers/firmware/efi/libstub/relocate.stub.o
CC drivers/hid/hid-belkin.o
CC drivers/hid/hid-cherry.o
CC fs/anon_inodes.o
CC [M] drivers/gpu/drm/xe/xe_guc_klv_helpers.o
CC fs/signalfd.o
CC drivers/acpi/battery.o
CC kernel/iomem.o
CC drivers/md/dm-raid1.o
CC drivers/acpi/acpica/utresdecode.o
CC drivers/acpi/bgrt.o
CC drivers/md/dm-log.o
STUBCPY drivers/firmware/efi/libstub/secureboot.stub.o
AR drivers/net/ethernet/microsoft/built-in.a
CC drivers/hid/hid-chicony.o
AR drivers/net/ethernet/litex/built-in.a
CC drivers/acpi/acpica/utresrc.o
STUBCPY drivers/firmware/efi/libstub/skip_spaces.stub.o
STUBCPY drivers/firmware/efi/libstub/smbios.stub.o
STUBCPY drivers/firmware/efi/libstub/tpm.stub.o
STUBCPY drivers/firmware/efi/libstub/vsprintf.stub.o
AR drivers/net/ethernet/marvell/octeon_ep/built-in.a
STUBCPY drivers/firmware/efi/libstub/x86-stub.stub.o
AR drivers/net/ethernet/marvell/octeon_ep_vf/built-in.a
AR drivers/firmware/efi/libstub/lib.a
AR drivers/firmware/built-in.a
AR drivers/net/ethernet/marvell/octeontx2/built-in.a
CC net/ipv4/tcp_cubic.o
AR drivers/net/ethernet/marvell/prestera/built-in.a
CC net/ipv4/tcp_sigpool.o
CC drivers/gpu/drm/drm_managed.o
CC drivers/net/ethernet/marvell/sky2.o
CC drivers/md/dm-region-hash.o
CC [M] drivers/gpu/drm/xe/xe_guc_log.o
CC [M] drivers/gpu/drm/xe/xe_guc_pc.o
CC drivers/md/dm-zero.o
CC drivers/hid/hid-cypress.o
CC drivers/acpi/spcr.o
AR lib/built-in.a
CC drivers/acpi/acpica/utstate.o
CC kernel/rseq.o
CC [M] drivers/gpu/drm/xe/xe_guc_submit.o
CC [M] drivers/gpu/drm/xe/xe_heci_gsc.o
CC drivers/gpu/drm/i915/gt/intel_context.o
CC drivers/gpu/drm/i915/gt/intel_context_sseu.o
CC [M] drivers/gpu/drm/xe/xe_hw_engine.o
AR drivers/net/ethernet/mellanox/built-in.a
AR drivers/net/ethernet/meta/built-in.a
CC net/ipv4/cipso_ipv4.o
AR drivers/net/ethernet/micrel/built-in.a
CC fs/timerfd.o
AR drivers/net/ethernet/microchip/built-in.a
CC fs/eventfd.o
CC net/ipv4/xfrm4_policy.o
CC drivers/gpu/drm/i915/gt/intel_engine_cs.o
CC drivers/gpu/drm/i915/gt/intel_engine_heartbeat.o
CC drivers/hid/hid-ezkey.o
CC drivers/gpu/drm/i915/gt/intel_engine_pm.o
CC drivers/hid/hid-gyration.o
AR drivers/net/ethernet/mscc/built-in.a
CC net/ipv4/xfrm4_state.o
AR drivers/net/ethernet/myricom/built-in.a
AR drivers/net/ethernet/natsemi/built-in.a
CC net/ipv4/xfrm4_input.o
AR drivers/net/ethernet/neterion/built-in.a
CC fs/aio.o
AR drivers/net/ethernet/netronome/built-in.a
CC net/ipv4/xfrm4_output.o
CC drivers/gpu/drm/i915/gt/intel_engine_user.o
CC fs/locks.o
CC drivers/gpu/drm/drm_mm.o
CC drivers/acpi/acpica/utstring.o
CC drivers/hid/hid-ite.o
CC drivers/acpi/acpica/utstrsuppt.o
CC fs/binfmt_misc.o
CC drivers/gpu/drm/i915/gt/intel_execlists_submission.o
CC net/ipv4/xfrm4_protocol.o
CC [M] drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.o
CC [M] drivers/gpu/drm/xe/xe_hw_engine_group.o
CC [M] drivers/gpu/drm/xe/xe_hw_fence.o
CC drivers/gpu/drm/drm_mode_config.o
CC drivers/gpu/drm/i915/gt/intel_ggtt.o
CC [M] drivers/gpu/drm/xe/xe_huc.o
CC drivers/hid/hid-kensington.o
CC drivers/hid/hid-lg.o
CC fs/binfmt_script.o
CC [M] drivers/gpu/drm/xe/xe_irq.o
CC [M] drivers/gpu/drm/xe/xe_lrc.o
CC fs/binfmt_elf.o
CC drivers/acpi/acpica/utstrtoul64.o
AR drivers/md/built-in.a
CC [M] drivers/gpu/drm/xe/xe_migrate.o
CC drivers/acpi/acpica/utxface.o
AR kernel/built-in.a
CC drivers/acpi/acpica/utxfinit.o
CC [M] drivers/gpu/drm/xe/xe_mmio.o
CC drivers/hid/hid-lgff.o
CC drivers/hid/hid-lg4ff.o
CC fs/mbcache.o
CC fs/posix_acl.o
CC fs/coredump.o
CC drivers/hid/hid-lg-g15.o
CC drivers/hid/hid-microsoft.o
CC drivers/hid/hid-monterey.o
AR drivers/net/ethernet/ni/built-in.a
CC drivers/net/ethernet/nvidia/forcedeth.o
CC drivers/acpi/acpica/utxferror.o
CC fs/drop_caches.o
CC drivers/acpi/acpica/utxfmutex.o
CC [M] drivers/gpu/drm/xe/xe_mocs.o
CC fs/sysctls.o
CC [M] drivers/gpu/drm/xe/xe_module.o
CC fs/fhandle.o
CC drivers/gpu/drm/drm_mode_object.o
CC [M] drivers/gpu/drm/xe/xe_oa.o
CC drivers/hid/hid-ntrig.o
CC drivers/gpu/drm/i915/gt/intel_ggtt_fencing.o
CC drivers/gpu/drm/i915/gt/intel_gt.o
CC drivers/gpu/drm/drm_modes.o
CC drivers/hid/hid-pl.o
CC drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.o
CC drivers/gpu/drm/i915/gt/intel_gt_ccs_mode.o
CC drivers/gpu/drm/i915/gt/intel_gt_clock_utils.o
CC [M] drivers/gpu/drm/xe/xe_observation.o
CC drivers/gpu/drm/i915/gt/intel_gt_debugfs.o
CC drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.o
CC [M] drivers/gpu/drm/xe/xe_pat.o
CC [M] drivers/gpu/drm/xe/xe_pci.o
AR drivers/net/ethernet/oki-semi/built-in.a
CC [M] drivers/gpu/drm/xe/xe_pcode.o
AR drivers/net/ethernet/packetengines/built-in.a
AR drivers/net/ethernet/qlogic/built-in.a
AR drivers/acpi/acpica/built-in.a
AR drivers/net/ethernet/qualcomm/emac/built-in.a
CC drivers/net/ethernet/realtek/8139too.o
AR drivers/net/ethernet/intel/e1000e/built-in.a
AR drivers/net/ethernet/qualcomm/built-in.a
AR drivers/net/ethernet/intel/built-in.a
AR drivers/acpi/built-in.a
AR drivers/net/ethernet/renesas/built-in.a
CC [M] drivers/gpu/drm/xe/xe_pm.o
CC drivers/hid/hid-petalynx.o
AR drivers/net/ethernet/rdc/built-in.a
CC drivers/hid/hid-redragon.o
AR drivers/net/ethernet/rocker/built-in.a
CC drivers/hid/hid-samsung.o
CC drivers/hid/hid-sony.o
CC drivers/gpu/drm/i915/gt/intel_gt_irq.o
AR drivers/net/ethernet/samsung/built-in.a
AR drivers/net/ethernet/seeq/built-in.a
AR drivers/net/ethernet/silan/built-in.a
CC drivers/net/ethernet/realtek/r8169_main.o
CC drivers/hid/hid-sunplus.o
AR net/ipv4/built-in.a
CC drivers/hid/hid-topseed.o
CC drivers/net/ethernet/realtek/r8169_firmware.o
CC drivers/net/ethernet/realtek/r8169_phy_config.o
CC [M] drivers/gpu/drm/xe/xe_preempt_fence.o
CC [M] drivers/gpu/drm/xe/xe_pt.o
AR net/mac80211/built-in.a
AR net/built-in.a
CC [M] drivers/gpu/drm/xe/xe_pt_walk.o
CC [M] drivers/gpu/drm/xe/xe_query.o
CC drivers/gpu/drm/i915/gt/intel_gt_mcr.o
CC [M] drivers/gpu/drm/xe/xe_range_fence.o
CC [M] drivers/gpu/drm/xe/xe_reg_sr.o
CC [M] drivers/gpu/drm/xe/xe_reg_whitelist.o
CC [M] drivers/gpu/drm/xe/xe_rtp.o
CC drivers/gpu/drm/drm_modeset_lock.o
CC drivers/gpu/drm/drm_plane.o
CC [M] drivers/gpu/drm/xe/xe_ring_ops.o
CC [M] drivers/gpu/drm/xe/xe_sa.o
CC [M] drivers/gpu/drm/xe/xe_sched_job.o
CC [M] drivers/gpu/drm/xe/xe_step.o
CC drivers/gpu/drm/i915/gt/intel_gt_pm.o
CC drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.o
CC drivers/gpu/drm/i915/gt/intel_gt_pm_irq.o
CC [M] drivers/gpu/drm/xe/xe_sync.o
CC drivers/gpu/drm/i915/gt/intel_gt_requests.o
CC drivers/gpu/drm/i915/gt/intel_gt_sysfs.o
CC drivers/gpu/drm/drm_prime.o
CC [M] drivers/gpu/drm/xe/xe_tile.o
CC drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.o
CC drivers/gpu/drm/i915/gt/intel_gtt.o
CC [M] drivers/gpu/drm/xe/xe_tile_sysfs.o
CC [M] drivers/gpu/drm/xe/xe_trace.o
CC [M] drivers/gpu/drm/xe/xe_trace_bo.o
CC [M] drivers/gpu/drm/xe/xe_trace_guc.o
AR drivers/net/ethernet/sis/built-in.a
CC drivers/gpu/drm/i915/gt/intel_llc.o
AR drivers/net/ethernet/sfc/built-in.a
AR fs/built-in.a
AR drivers/net/ethernet/smsc/built-in.a
CC [M] drivers/gpu/drm/xe/xe_ttm_sys_mgr.o
AR drivers/net/ethernet/marvell/built-in.a
CC drivers/gpu/drm/i915/gt/intel_lrc.o
CC [M] drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o
AR drivers/net/ethernet/socionext/built-in.a
CC drivers/gpu/drm/i915/gt/intel_migrate.o
AR drivers/net/ethernet/stmicro/built-in.a
CC [M] drivers/gpu/drm/xe/xe_ttm_vram_mgr.o
AR drivers/net/ethernet/sun/built-in.a
CC drivers/gpu/drm/i915/gt/intel_mocs.o
AR drivers/net/ethernet/tehuti/built-in.a
CC drivers/gpu/drm/i915/gt/intel_ppgtt.o
AR drivers/net/ethernet/ti/built-in.a
AR drivers/net/ethernet/vertexcom/built-in.a
AR drivers/net/ethernet/via/built-in.a
AR drivers/net/ethernet/wangxun/built-in.a
CC drivers/gpu/drm/i915/gt/intel_rc6.o
CC drivers/gpu/drm/drm_print.o
CC drivers/gpu/drm/drm_property.o
CC drivers/gpu/drm/drm_syncobj.o
CC drivers/gpu/drm/i915/gt/intel_region_lmem.o
CC drivers/gpu/drm/drm_sysfs.o
CC drivers/gpu/drm/i915/gt/intel_renderstate.o
CC drivers/gpu/drm/drm_trace_points.o
CC [M] drivers/gpu/drm/xe/xe_tuning.o
AR drivers/hid/built-in.a
AR drivers/net/ethernet/wiznet/built-in.a
AR drivers/net/ethernet/xilinx/built-in.a
CC drivers/gpu/drm/i915/gt/intel_reset.o
CC drivers/gpu/drm/i915/gt/intel_ring.o
CC drivers/gpu/drm/drm_vblank.o
CC [M] drivers/gpu/drm/xe/xe_uc.o
CC [M] drivers/gpu/drm/xe/xe_uc_fw.o
CC [M] drivers/gpu/drm/xe/xe_vm.o
CC [M] drivers/gpu/drm/xe/xe_vram.o
CC drivers/gpu/drm/drm_vblank_work.o
CC [M] drivers/gpu/drm/xe/xe_vram_freq.o
CC [M] drivers/gpu/drm/xe/xe_wait_user_fence.o
CC drivers/gpu/drm/i915/gt/intel_ring_submission.o
CC [M] drivers/gpu/drm/xe/xe_wa.o
CC [M] drivers/gpu/drm/xe/xe_wopcm.o
CC drivers/gpu/drm/drm_vma_manager.o
CC drivers/gpu/drm/drm_writeback.o
CC drivers/gpu/drm/i915/gt/intel_rps.o
AR drivers/net/ethernet/xircom/built-in.a
CC drivers/gpu/drm/drm_panel.o
CC drivers/gpu/drm/i915/gt/intel_sa_media.o
CC [M] drivers/gpu/drm/xe/xe_hmm.o
CC drivers/gpu/drm/drm_pci.o
CC [M] drivers/gpu/drm/xe/xe_hwmon.o
AR drivers/net/ethernet/synopsys/built-in.a
AR drivers/net/ethernet/pensando/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gt_sriov_vf.o
CC [M] drivers/gpu/drm/xe/xe_guc_relay.o
CC [M] drivers/gpu/drm/xe/xe_memirq.o
CC drivers/gpu/drm/i915/gt/intel_sseu.o
CC [M] drivers/gpu/drm/xe/xe_sriov.o
CC drivers/gpu/drm/i915/gt/intel_sseu_debugfs.o
CC drivers/gpu/drm/i915/gt/intel_timeline.o
CC drivers/gpu/drm/i915/gt/intel_tlb.o
CC [M] drivers/gpu/drm/xe/display/ext/i915_irq.o
CC drivers/gpu/drm/i915/gt/intel_wopcm.o
CC drivers/gpu/drm/drm_debugfs.o
CC drivers/gpu/drm/drm_debugfs_crc.o
CC drivers/gpu/drm/drm_panel_orientation_quirks.o
CC [M] drivers/gpu/drm/xe/display/ext/i915_utils.o
CC drivers/gpu/drm/i915/gt/intel_workarounds.o
CC [M] drivers/gpu/drm/xe/display/intel_fb_bo.o
CC [M] drivers/gpu/drm/xe/display/intel_fbdev_fb.o
CC drivers/gpu/drm/drm_buddy.o
CC drivers/gpu/drm/drm_gem_shmem_helper.o
CC [M] drivers/gpu/drm/xe/display/xe_display.o
CC drivers/gpu/drm/drm_atomic_helper.o
CC drivers/gpu/drm/drm_atomic_state_helper.o
CC [M] drivers/gpu/drm/xe/display/xe_display_misc.o
CC [M] drivers/gpu/drm/xe/display/xe_display_rps.o
CC drivers/gpu/drm/i915/gt/shmem_utils.o
CC drivers/gpu/drm/i915/gt/sysfs_engines.o
AR drivers/net/ethernet/nvidia/built-in.a
CC drivers/gpu/drm/i915/gt/intel_ggtt_gmch.o
CC drivers/gpu/drm/i915/gt/gen6_renderstate.o
CC drivers/gpu/drm/drm_bridge_connector.o
CC drivers/gpu/drm/i915/gt/gen7_renderstate.o
CC drivers/gpu/drm/drm_crtc_helper.o
CC [M] drivers/gpu/drm/xe/display/xe_display_wa.o
CC drivers/gpu/drm/drm_damage_helper.o
CC drivers/gpu/drm/i915/gt/gen8_renderstate.o
CC [M] drivers/gpu/drm/xe/display/xe_dsb_buffer.o
CC drivers/gpu/drm/drm_encoder_slave.o
CC drivers/gpu/drm/i915/gt/gen9_renderstate.o
CC [M] drivers/gpu/drm/xe/display/xe_fb_pin.o
CC drivers/gpu/drm/i915/gem/i915_gem_busy.o
CC drivers/gpu/drm/drm_flip_work.o
CC drivers/gpu/drm/drm_format_helper.o
CC drivers/gpu/drm/i915/gem/i915_gem_clflush.o
CC [M] drivers/gpu/drm/xe/display/xe_hdcp_gsc.o
CC drivers/gpu/drm/drm_gem_atomic_helper.o
CC drivers/gpu/drm/i915/gem/i915_gem_context.o
CC [M] drivers/gpu/drm/xe/display/xe_plane_initial.o
CC drivers/gpu/drm/drm_gem_framebuffer_helper.o
CC drivers/gpu/drm/i915/gem/i915_gem_create.o
CC [M] drivers/gpu/drm/xe/display/xe_tdf.o
CC drivers/gpu/drm/i915/gem/i915_gem_dmabuf.o
CC [M] drivers/gpu/drm/xe/i915-soc/intel_dram.o
AR drivers/net/ethernet/realtek/built-in.a
AR drivers/net/ethernet/built-in.a
CC drivers/gpu/drm/i915/gem/i915_gem_domain.o
CC [M] drivers/gpu/drm/xe/i915-soc/intel_pch.o
CC drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o
CC [M] drivers/gpu/drm/xe/i915-display/icl_dsi.o
CC drivers/gpu/drm/i915/gem/i915_gem_internal.o
CC drivers/gpu/drm/i915/gem/i915_gem_lmem.o
CC drivers/gpu/drm/i915/gem/i915_gem_mman.o
CC drivers/gpu/drm/drm_kms_helper_common.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_alpm.o
AR drivers/net/built-in.a
CC drivers/gpu/drm/i915/gem/i915_gem_object.o
CC drivers/gpu/drm/drm_modeset_helper.o
CC drivers/gpu/drm/drm_plane_helper.o
CC drivers/gpu/drm/i915/gem/i915_gem_pages.o
CC drivers/gpu/drm/i915/gem/i915_gem_phys.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_atomic.o
CC drivers/gpu/drm/i915/gem/i915_gem_pm.o
CC drivers/gpu/drm/drm_probe_helper.o
CC drivers/gpu/drm/i915/gem/i915_gem_region.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_atomic_plane.o
CC drivers/gpu/drm/drm_rect.o
CC drivers/gpu/drm/drm_self_refresh_helper.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_audio.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_backlight.o
CC drivers/gpu/drm/drm_simple_kms_helper.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_bios.o
CC drivers/gpu/drm/i915/gem/i915_gem_shmem.o
CC drivers/gpu/drm/bridge/panel.o
CC drivers/gpu/drm/drm_mipi_dsi.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_bw.o
CC [M] drivers/gpu/drm/drm_exec.o
CC drivers/gpu/drm/i915/gem/i915_gem_shrinker.o
CC [M] drivers/gpu/drm/drm_gpuvm.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cdclk.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_color.o
CC [M] drivers/gpu/drm/drm_suballoc.o
CC drivers/gpu/drm/i915/gem/i915_gem_stolen.o
CC [M] drivers/gpu/drm/drm_gem_ttm_helper.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_combo_phy.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_connector.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_crtc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_crtc_state_dump.o
CC drivers/gpu/drm/i915/gem/i915_gem_throttle.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cursor.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cx0_phy.o
CC drivers/gpu/drm/i915/gem/i915_gem_tiling.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_ddi.o
CC drivers/gpu/drm/i915/gem/i915_gem_ttm.o
CC drivers/gpu/drm/i915/gem/i915_gem_ttm_move.o
CC drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.o
CC drivers/gpu/drm/i915/gem/i915_gem_userptr.o
CC drivers/gpu/drm/i915/gem/i915_gem_wait.o
CC drivers/gpu/drm/i915/gem/i915_gemfs.o
CC drivers/gpu/drm/i915/i915_active.o
CC drivers/gpu/drm/i915/i915_cmd_parser.o
CC drivers/gpu/drm/i915/i915_deps.o
CC drivers/gpu/drm/i915/i915_gem.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_ddi_buf_trans.o
CC drivers/gpu/drm/i915/i915_gem_evict.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display.o
LD [M] drivers/gpu/drm/drm_suballoc_helper.o
CC drivers/gpu/drm/i915/i915_gem_gtt.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_device.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_driver.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_irq.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_params.o
CC drivers/gpu/drm/i915/i915_gem_ww.o
LD [M] drivers/gpu/drm/drm_ttm_helper.o
CC drivers/gpu/drm/i915/i915_query.o
CC drivers/gpu/drm/i915/i915_request.o
CC drivers/gpu/drm/i915/i915_scheduler.o
CC drivers/gpu/drm/i915/i915_trace_points.o
CC drivers/gpu/drm/i915/i915_ttm_buddy_manager.o
CC drivers/gpu/drm/i915/i915_vma.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power_map.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power_well.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_trace.o
CC drivers/gpu/drm/i915/i915_vma_resource.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_wa.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dkl_phy.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dmc.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_aux.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_ads.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_capture.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_aux_backlight.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_hdcp.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_link_training.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_mst.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_ct.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_fw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dpll.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dpll_mgr.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_log.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_rc.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dpt_common.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_submission.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_drrs.o
CC drivers/gpu/drm/i915/gt/uc/intel_huc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsb.o
CC drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_huc_fw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi_dcs_backlight.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi_vbt.o
CC drivers/gpu/drm/i915/gt/uc/intel_uc.o
CC drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_uc_fw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_encoder.o
CC drivers/gpu/drm/i915/gt/intel_gsc.o
CC drivers/gpu/drm/i915/i915_hwmon.o
CC drivers/gpu/drm/i915/display/hsw_ips.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fb.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fbc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fdi.o
CC drivers/gpu/drm/i915/display/i9xx_plane.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fifo_underrun.o
CC drivers/gpu/drm/i915/display/i9xx_wm.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_frontbuffer.o
CC drivers/gpu/drm/i915/display/intel_alpm.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_global_state.o
CC drivers/gpu/drm/i915/display/intel_atomic.o
CC drivers/gpu/drm/i915/display/intel_atomic_plane.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_gmbus.o
CC drivers/gpu/drm/i915/display/intel_audio.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hdcp.o
CC drivers/gpu/drm/i915/display/intel_bios.o
CC drivers/gpu/drm/i915/display/intel_bw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hdcp_gsc_message.o
CC drivers/gpu/drm/i915/display/intel_cdclk.o
CC drivers/gpu/drm/i915/display/intel_color.o
CC drivers/gpu/drm/i915/display/intel_combo_phy.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hdmi.o
CC drivers/gpu/drm/i915/display/intel_connector.o
CC drivers/gpu/drm/i915/display/intel_crtc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hotplug.o
CC drivers/gpu/drm/i915/display/intel_crtc_state_dump.o
CC drivers/gpu/drm/i915/display/intel_cursor.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hotplug_irq.o
CC drivers/gpu/drm/i915/display/intel_display.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hti.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_link_bw.o
CC drivers/gpu/drm/i915/display/intel_display_driver.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_lspcon.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_lock.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_setup.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_verify.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_panel.o
CC drivers/gpu/drm/i915/display/intel_display_irq.o
CC drivers/gpu/drm/i915/display/intel_display_params.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pmdemand.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pps.o
CC drivers/gpu/drm/i915/display/intel_display_power.o
CC drivers/gpu/drm/i915/display/intel_display_power_map.o
CC drivers/gpu/drm/i915/display/intel_display_power_well.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_psr.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_qp_tables.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_quirks.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_snps_phy.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_tc.o
CC drivers/gpu/drm/i915/display/intel_display_reset.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vblank.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vdsc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vga.o
CC drivers/gpu/drm/i915/display/intel_display_rps.o
CC drivers/gpu/drm/i915/display/intel_display_wa.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vrr.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dmc_wl.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_wm.o
CC [M] drivers/gpu/drm/xe/i915-display/skl_scaler.o
CC [M] drivers/gpu/drm/xe/i915-display/skl_universal_plane.o
CC drivers/gpu/drm/i915/display/intel_dmc.o
CC [M] drivers/gpu/drm/xe/i915-display/skl_watermark.o
CC drivers/gpu/drm/i915/display/intel_dmc_wl.o
CC drivers/gpu/drm/i915/display/intel_dpio_phy.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_acpi.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_opregion.o
CC drivers/gpu/drm/i915/display/intel_dpll.o
CC [M] drivers/gpu/drm/xe/xe_debugfs.o
CC drivers/gpu/drm/i915/display/intel_dpll_mgr.o
CC drivers/gpu/drm/i915/display/intel_dpt.o
CC drivers/gpu/drm/i915/display/intel_dpt_common.o
CC [M] drivers/gpu/drm/xe/xe_gt_debugfs.o
CC drivers/gpu/drm/i915/display/intel_drrs.o
CC drivers/gpu/drm/i915/display/intel_dsb.o
CC drivers/gpu/drm/i915/display/intel_dsb_buffer.o
CC [M] drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.o
CC [M] drivers/gpu/drm/xe/xe_gt_stats.o
CC [M] drivers/gpu/drm/xe/xe_guc_debugfs.o
CC [M] drivers/gpu/drm/xe/xe_huc_debugfs.o
CC [M] drivers/gpu/drm/xe/xe_uc_debugfs.o
CC drivers/gpu/drm/i915/display/intel_fb.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_debugfs.o
CC drivers/gpu/drm/i915/display/intel_fb_bo.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_debugfs_params.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pipe_crc.o
CC drivers/gpu/drm/i915/display/intel_fb_pin.o
CC drivers/gpu/drm/i915/display/intel_fbc.o
CC drivers/gpu/drm/i915/display/intel_fdi.o
CC drivers/gpu/drm/i915/display/intel_fifo_underrun.o
CC drivers/gpu/drm/i915/display/intel_frontbuffer.o
CC drivers/gpu/drm/i915/display/intel_global_state.o
CC drivers/gpu/drm/i915/display/intel_hdcp.o
CC drivers/gpu/drm/i915/display/intel_hdcp_gsc.o
CC drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.o
CC drivers/gpu/drm/i915/display/intel_hotplug.o
CC drivers/gpu/drm/i915/display/intel_hotplug_irq.o
CC drivers/gpu/drm/i915/display/intel_hti.o
CC drivers/gpu/drm/i915/display/intel_link_bw.o
CC drivers/gpu/drm/i915/display/intel_load_detect.o
CC drivers/gpu/drm/i915/display/intel_lpe_audio.o
CC drivers/gpu/drm/i915/display/intel_modeset_lock.o
CC drivers/gpu/drm/i915/display/intel_modeset_setup.o
CC drivers/gpu/drm/i915/display/intel_modeset_verify.o
CC drivers/gpu/drm/i915/display/intel_overlay.o
CC drivers/gpu/drm/i915/display/intel_pch_display.o
CC drivers/gpu/drm/i915/display/intel_pch_refclk.o
CC drivers/gpu/drm/i915/display/intel_plane_initial.o
CC drivers/gpu/drm/i915/display/intel_pmdemand.o
CC drivers/gpu/drm/i915/display/intel_psr.o
CC drivers/gpu/drm/i915/display/intel_quirks.o
CC drivers/gpu/drm/i915/display/intel_sprite.o
CC drivers/gpu/drm/i915/display/intel_sprite_uapi.o
CC drivers/gpu/drm/i915/display/intel_tc.o
CC drivers/gpu/drm/i915/display/intel_vblank.o
CC drivers/gpu/drm/i915/display/intel_vga.o
CC drivers/gpu/drm/i915/display/intel_wm.o
CC drivers/gpu/drm/i915/display/skl_scaler.o
CC drivers/gpu/drm/i915/display/skl_universal_plane.o
CC drivers/gpu/drm/i915/display/skl_watermark.o
CC drivers/gpu/drm/i915/display/intel_acpi.o
CC drivers/gpu/drm/i915/display/intel_opregion.o
CC drivers/gpu/drm/i915/display/intel_display_debugfs.o
CC drivers/gpu/drm/i915/display/intel_display_debugfs_params.o
CC drivers/gpu/drm/i915/display/intel_pipe_crc.o
CC drivers/gpu/drm/i915/display/dvo_ch7017.o
CC drivers/gpu/drm/i915/display/dvo_ch7xxx.o
CC drivers/gpu/drm/i915/display/dvo_ivch.o
CC drivers/gpu/drm/i915/display/dvo_ns2501.o
CC drivers/gpu/drm/i915/display/dvo_sil164.o
CC drivers/gpu/drm/i915/display/dvo_tfp410.o
CC drivers/gpu/drm/i915/display/g4x_dp.o
CC drivers/gpu/drm/i915/display/g4x_hdmi.o
CC drivers/gpu/drm/i915/display/icl_dsi.o
CC drivers/gpu/drm/i915/display/intel_backlight.o
CC drivers/gpu/drm/i915/display/intel_crt.o
CC drivers/gpu/drm/i915/display/intel_cx0_phy.o
CC drivers/gpu/drm/i915/display/intel_ddi.o
CC drivers/gpu/drm/i915/display/intel_ddi_buf_trans.o
CC drivers/gpu/drm/i915/display/intel_display_device.o
CC drivers/gpu/drm/i915/display/intel_display_trace.o
CC drivers/gpu/drm/i915/display/intel_dkl_phy.o
CC drivers/gpu/drm/i915/display/intel_dp.o
CC drivers/gpu/drm/i915/display/intel_dp_aux.o
CC drivers/gpu/drm/i915/display/intel_dp_aux_backlight.o
CC drivers/gpu/drm/i915/display/intel_dp_hdcp.o
CC drivers/gpu/drm/i915/display/intel_dp_link_training.o
CC drivers/gpu/drm/i915/display/intel_dp_mst.o
CC drivers/gpu/drm/i915/display/intel_dsi.o
CC drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.o
CC drivers/gpu/drm/i915/display/intel_dsi_vbt.o
CC drivers/gpu/drm/i915/display/intel_dvo.o
LD [M] drivers/gpu/drm/xe/xe.o
CC drivers/gpu/drm/i915/display/intel_encoder.o
CC drivers/gpu/drm/i915/display/intel_gmbus.o
CC drivers/gpu/drm/i915/display/intel_hdmi.o
CC drivers/gpu/drm/i915/display/intel_lspcon.o
CC drivers/gpu/drm/i915/display/intel_lvds.o
CC drivers/gpu/drm/i915/display/intel_panel.o
CC drivers/gpu/drm/i915/display/intel_pps.o
CC drivers/gpu/drm/i915/display/intel_qp_tables.o
CC drivers/gpu/drm/i915/display/intel_sdvo.o
CC drivers/gpu/drm/i915/display/intel_snps_phy.o
CC drivers/gpu/drm/i915/display/intel_tv.o
CC drivers/gpu/drm/i915/display/intel_vdsc.o
CC drivers/gpu/drm/i915/display/intel_vrr.o
CC drivers/gpu/drm/i915/display/vlv_dsi.o
CC drivers/gpu/drm/i915/display/vlv_dsi_pll.o
CC drivers/gpu/drm/i915/i915_perf.o
CC drivers/gpu/drm/i915/pxp/intel_pxp_huc.o
CC drivers/gpu/drm/i915/pxp/intel_pxp.o
CC drivers/gpu/drm/i915/pxp/intel_pxp_tee.o
CC drivers/gpu/drm/i915/i915_gpu_error.o
CC drivers/gpu/drm/i915/i915_vgpu.o
AR drivers/gpu/drm/i915/built-in.a
AR drivers/gpu/drm/built-in.a
AR drivers/gpu/built-in.a
AR drivers/built-in.a
AR built-in.a
AR vmlinux.a
LD vmlinux.o
OBJCOPY modules.builtin.modinfo
GEN modules.builtin
MODPOST Module.symvers
CC .vmlinux.export.o
CC [M] fs/efivarfs/efivarfs.mod.o
CC [M] drivers/gpu/drm/drm_exec.mod.o
CC [M] drivers/gpu/drm/drm_gpuvm.mod.o
CC [M] drivers/gpu/drm/drm_suballoc_helper.mod.o
CC [M] drivers/gpu/drm/drm_ttm_helper.mod.o
CC [M] drivers/gpu/drm/scheduler/gpu-sched.mod.o
CC [M] drivers/gpu/drm/xe/xe.mod.o
CC [M] drivers/thermal/intel/x86_pkg_temp_thermal.mod.o
CC [M] sound/core/snd-hwdep.mod.o
CC [M] sound/core/snd-pcm.mod.o
CC [M] sound/pci/hda/snd-hda-codec.mod.o
CC [M] sound/pci/hda/snd-hda-codec-hdmi.mod.o
CC [M] sound/pci/hda/snd-hda-intel.mod.o
CC [M] sound/hda/snd-hda-core.mod.o
CC [M] sound/hda/snd-intel-dspcfg.mod.o
CC [M] sound/hda/snd-intel-sdw-acpi.mod.o
CC [M] net/netfilter/nf_log_syslog.mod.o
CC [M] net/netfilter/xt_mark.mod.o
CC [M] net/netfilter/xt_nat.mod.o
CC [M] net/netfilter/xt_LOG.mod.o
CC [M] net/netfilter/xt_MASQUERADE.mod.o
CC [M] net/netfilter/xt_addrtype.mod.o
CC [M] net/ipv4/netfilter/iptable_nat.mod.o
LD [M] drivers/gpu/drm/drm_suballoc_helper.ko
LD [M] net/netfilter/xt_mark.ko
LD [M] drivers/gpu/drm/drm_exec.ko
LD [M] net/netfilter/xt_LOG.ko
LD [M] net/netfilter/nf_log_syslog.ko
LD [M] net/netfilter/xt_nat.ko
LD [M] net/netfilter/xt_MASQUERADE.ko
LD [M] sound/pci/hda/snd-hda-intel.ko
LD [M] sound/pci/hda/snd-hda-codec.ko
LD [M] sound/hda/snd-hda-core.ko
LD [M] sound/core/snd-pcm.ko
LD [M] net/netfilter/xt_addrtype.ko
LD [M] drivers/gpu/drm/drm_gpuvm.ko
LD [M] net/ipv4/netfilter/iptable_nat.ko
LD [M] sound/hda/snd-intel-dspcfg.ko
LD [M] sound/hda/snd-intel-sdw-acpi.ko
LD [M] drivers/thermal/intel/x86_pkg_temp_thermal.ko
LD [M] fs/efivarfs/efivarfs.ko
LD [M] sound/pci/hda/snd-hda-codec-hdmi.ko
LD [M] drivers/gpu/drm/drm_ttm_helper.ko
LD [M] drivers/gpu/drm/xe/xe.ko
LD [M] sound/core/snd-hwdep.ko
LD [M] drivers/gpu/drm/scheduler/gpu-sched.ko
UPD include/generated/utsversion.h
CC init/version-timestamp.o
KSYMS .tmp_vmlinux0.kallsyms.S
AS .tmp_vmlinux0.kallsyms.o
LD .tmp_vmlinux1
NM .tmp_vmlinux1.syms
KSYMS .tmp_vmlinux1.kallsyms.S
AS .tmp_vmlinux1.kallsyms.o
LD .tmp_vmlinux2
NM .tmp_vmlinux2.syms
KSYMS .tmp_vmlinux2.kallsyms.S
AS .tmp_vmlinux2.kallsyms.o
LD vmlinux
NM System.map
SORTTAB vmlinux
RELOCS arch/x86/boot/compressed/vmlinux.relocs
RSTRIP vmlinux
CC arch/x86/boot/a20.o
AS arch/x86/boot/bioscall.o
CC arch/x86/boot/cmdline.o
AS arch/x86/boot/copy.o
HOSTCC arch/x86/boot/mkcpustr
CC arch/x86/boot/cpuflags.o
CC arch/x86/boot/cpucheck.o
CC arch/x86/boot/early_serial_console.o
CC arch/x86/boot/edd.o
CC arch/x86/boot/main.o
CC arch/x86/boot/memory.o
CC arch/x86/boot/pm.o
AS arch/x86/boot/pmjump.o
CC arch/x86/boot/printf.o
CC arch/x86/boot/regs.o
CC arch/x86/boot/string.o
CC arch/x86/boot/tty.o
CC arch/x86/boot/video.o
CC arch/x86/boot/video-mode.o
CC arch/x86/boot/version.o
CC arch/x86/boot/video-vga.o
CC arch/x86/boot/video-vesa.o
CC arch/x86/boot/video-bios.o
HOSTCC arch/x86/boot/tools/build
CPUSTR arch/x86/boot/cpustr.h
CC arch/x86/boot/cpu.o
LDS arch/x86/boot/compressed/vmlinux.lds
AS arch/x86/boot/compressed/kernel_info.o
AS arch/x86/boot/compressed/head_32.o
VOFFSET arch/x86/boot/compressed/../voffset.h
CC arch/x86/boot/compressed/string.o
CC arch/x86/boot/compressed/cmdline.o
CC arch/x86/boot/compressed/error.o
OBJCOPY arch/x86/boot/compressed/vmlinux.bin
HOSTCC arch/x86/boot/compressed/mkpiggy
CC arch/x86/boot/compressed/cpuflags.o
CC arch/x86/boot/compressed/early_serial_console.o
CC arch/x86/boot/compressed/kaslr.o
CC arch/x86/boot/compressed/acpi.o
CC arch/x86/boot/compressed/efi.o
GZIP arch/x86/boot/compressed/vmlinux.bin.gz
CC arch/x86/boot/compressed/misc.o
MKPIGGY arch/x86/boot/compressed/piggy.S
AS arch/x86/boot/compressed/piggy.o
LD arch/x86/boot/compressed/vmlinux
ZOFFSET arch/x86/boot/zoffset.h
OBJCOPY arch/x86/boot/vmlinux.bin
AS arch/x86/boot/header.o
LD arch/x86/boot/setup.elf
OBJCOPY arch/x86/boot/setup.bin
BUILD arch/x86/boot/bzImage
Kernel: arch/x86/boot/bzImage is ready (#1)
run-parts: executing /workspace/ci/hooks/20-kernel-doc
+ SRC_DIR=/workspace/kernel
+ cd /workspace/kernel
+ find drivers/gpu/drm/xe/ -name '*.[ch]' -not -path 'drivers/gpu/drm/xe/display/*'
+ xargs ./scripts/kernel-doc -Werror -none include/uapi/drm/xe_drm.h
All hooks done
^ permalink raw reply [flat|nested] 31+ messages in thread
* ✓ CI.checksparse: success for drm/xe/oa: xe_syncs for OA (rev4)
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
` (11 preceding siblings ...)
2024-08-28 2:12 ` ✓ CI.Hooks: " Patchwork
@ 2024-08-28 2:14 ` Patchwork
2024-08-28 2:33 ` ✓ CI.BAT: " Patchwork
2024-08-28 10:52 ` ✗ CI.FULL: failure " Patchwork
14 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2024-08-28 2:14 UTC (permalink / raw)
To: Ashutosh Dixit; +Cc: intel-xe
== Series Details ==
Series: drm/xe/oa: xe_syncs for OA (rev4)
URL : https://patchwork.freedesktop.org/series/137058/
State : success
== Summary ==
+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast 2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4
Sparse version: 0.6.1 (Ubuntu: 0.6.1-2build1)
Fast mode used, each commit won't be checked separately.
Okay!
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 31+ messages in thread
* ✓ CI.BAT: success for drm/xe/oa: xe_syncs for OA (rev4)
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
` (12 preceding siblings ...)
2024-08-28 2:14 ` ✓ CI.checksparse: " Patchwork
@ 2024-08-28 2:33 ` Patchwork
2024-08-28 10:52 ` ✗ CI.FULL: failure " Patchwork
14 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2024-08-28 2:33 UTC (permalink / raw)
To: Ashutosh Dixit; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 945 bytes --]
== Series Details ==
Series: drm/xe/oa: xe_syncs for OA (rev4)
URL : https://patchwork.freedesktop.org/series/137058/
State : success
== Summary ==
CI Bug Log - changes from xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4_BAT -> xe-pw-137058v4_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (9 -> 9)
------------------------------
No changes in participating hosts
Changes
-------
No changes found
Build changes
-------------
* Linux: xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4 -> xe-pw-137058v4
IGT_7993: 3b6b2d238e864ff1af9e33159d3bbf4b7f01d86d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4: 2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4
xe-pw-137058v4: 137058v4
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/index.html
[-- Attachment #2: Type: text/html, Size: 1493 bytes --]
^ permalink raw reply [flat|nested] 31+ messages in thread
* ✗ CI.FULL: failure for drm/xe/oa: xe_syncs for OA (rev4)
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
` (13 preceding siblings ...)
2024-08-28 2:33 ` ✓ CI.BAT: " Patchwork
@ 2024-08-28 10:52 ` Patchwork
14 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2024-08-28 10:52 UTC (permalink / raw)
To: Ashutosh Dixit; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 55998 bytes --]
== Series Details ==
Series: drm/xe/oa: xe_syncs for OA (rev4)
URL : https://patchwork.freedesktop.org/series/137058/
State : failure
== Summary ==
CI Bug Log - changes from xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4_full -> xe-pw-137058v4_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with xe-pw-137058v4_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-137058v4_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-137058v4_full:
### IGT changes ###
#### Possible regressions ####
* igt@core_hotunplug@hotunplug-rescan:
- shard-adlp: [PASS][1] -> [DMESG-WARN][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-adlp-1/igt@core_hotunplug@hotunplug-rescan.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-8/igt@core_hotunplug@hotunplug-rescan.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@kms_cursor_legacy@torture-move@pipe-b:
- {shard-bmg}: [PASS][3] -> [DMESG-WARN][4] +2 other tests dmesg-warn
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-bmg-7/igt@kms_cursor_legacy@torture-move@pipe-b.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-bmg-3/igt@kms_cursor_legacy@torture-move@pipe-b.html
* igt@xe_exec_balancer@twice-parallel-userptr-rebind:
- {shard-bmg}: [PASS][5] -> [FAIL][6]
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-bmg-4/igt@xe_exec_balancer@twice-parallel-userptr-rebind.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-bmg-8/igt@xe_exec_balancer@twice-parallel-userptr-rebind.html
* igt@xe_exec_basic@many-execqueues-many-vm-bindexecqueue:
- {shard-bmg}: [DMESG-WARN][7] -> [TIMEOUT][8]
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-bmg-1/igt@xe_exec_basic@many-execqueues-many-vm-bindexecqueue.html
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-bmg-1/igt@xe_exec_basic@many-execqueues-many-vm-bindexecqueue.html
Known issues
------------
Here are the changes found in xe-pw-137058v4_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_big_fb@4-tiled-64bpp-rotate-0:
- shard-adlp: NOTRUN -> [SKIP][9] ([Intel XE#1124] / [Intel XE#1201]) +2 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_big_fb@4-tiled-64bpp-rotate-0.html
* igt@kms_big_fb@y-tiled-64bpp-rotate-90:
- shard-adlp: NOTRUN -> [SKIP][10] ([Intel XE#1201] / [Intel XE#316]) +1 other test skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_big_fb@y-tiled-64bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
- shard-dg2-set2: NOTRUN -> [SKIP][11] ([Intel XE#1124] / [Intel XE#1201])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
- shard-lnl: NOTRUN -> [SKIP][12] ([Intel XE#1124]) +1 other test skip
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
* igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p:
- shard-adlp: NOTRUN -> [SKIP][13] ([Intel XE#1201] / [Intel XE#2191])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p.html
* igt@kms_bw@connected-linear-tiling-3-displays-3840x2160p:
- shard-dg2-set2: NOTRUN -> [SKIP][14] ([Intel XE#1201] / [Intel XE#2191])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_bw@connected-linear-tiling-3-displays-3840x2160p.html
* igt@kms_ccs@bad-aux-stride-y-tiled-ccs:
- shard-adlp: NOTRUN -> [SKIP][15] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +5 other tests skip
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_ccs@bad-aux-stride-y-tiled-ccs.html
* igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs:
- shard-lnl: NOTRUN -> [SKIP][16] ([Intel XE#1399]) +1 other test skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-1:
- shard-adlp: NOTRUN -> [SKIP][17] ([Intel XE#1201] / [Intel XE#787]) +8 other tests skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-1.html
* igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs@pipe-c-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [SKIP][18] ([Intel XE#1201] / [Intel XE#787]) +20 other tests skip
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs@pipe-c-hdmi-a-6.html
* igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs@pipe-d-dp-4:
- shard-dg2-set2: NOTRUN -> [SKIP][19] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +5 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs@pipe-d-dp-4.html
* igt@kms_chamelium_color@degamma:
- shard-lnl: NOTRUN -> [SKIP][20] ([Intel XE#306])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_chamelium_color@degamma.html
* igt@kms_chamelium_edid@dp-edid-resolution-list:
- shard-adlp: NOTRUN -> [SKIP][21] ([Intel XE#1201] / [Intel XE#373]) +2 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_chamelium_edid@dp-edid-resolution-list.html
* igt@kms_chamelium_frames@hdmi-cmp-planes-random:
- shard-dg2-set2: NOTRUN -> [SKIP][22] ([Intel XE#1201] / [Intel XE#373])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_chamelium_frames@hdmi-cmp-planes-random.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions:
- shard-adlp: NOTRUN -> [SKIP][23] ([Intel XE#1201] / [Intel XE#309])
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html
* igt@kms_dsc@dsc-with-bpc-formats:
- shard-lnl: NOTRUN -> [SKIP][24] ([Intel XE#599]) +1 other test skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_dsc@dsc-with-bpc-formats.html
* igt@kms_feature_discovery@chamelium:
- shard-dg2-set2: NOTRUN -> [SKIP][25] ([Intel XE#1201] / [Intel XE#701])
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_feature_discovery@chamelium.html
* igt@kms_feature_discovery@psr2:
- shard-adlp: NOTRUN -> [SKIP][26] ([Intel XE#1135] / [Intel XE#1201])
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_feature_discovery@psr2.html
* igt@kms_flip@2x-busy-flip:
- shard-adlp: NOTRUN -> [SKIP][27] ([Intel XE#1201] / [Intel XE#310])
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_flip@2x-busy-flip.html
* igt@kms_flip@2x-wf_vblank-ts-check-interruptible:
- shard-lnl: NOTRUN -> [SKIP][28] ([Intel XE#1421])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html
* igt@kms_flip@flip-vs-suspend:
- shard-dg2-set2: [PASS][29] -> [INCOMPLETE][30] ([Intel XE#1195] / [Intel XE#2049] / [Intel XE#2597])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-436/igt@kms_flip@flip-vs-suspend.html
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-466/igt@kms_flip@flip-vs-suspend.html
* igt@kms_flip@flip-vs-suspend@d-dp4:
- shard-dg2-set2: [PASS][31] -> [INCOMPLETE][32] ([Intel XE#1195] / [Intel XE#2049])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-436/igt@kms_flip@flip-vs-suspend@d-dp4.html
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-466/igt@kms_flip@flip-vs-suspend@d-dp4.html
* igt@kms_flip@wf_vblank-ts-check@a-edp1:
- shard-lnl: [PASS][33] -> [FAIL][34] ([Intel XE#886]) +1 other test fail
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-lnl-6/igt@kms_flip@wf_vblank-ts-check@a-edp1.html
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-3/igt@kms_flip@wf_vblank-ts-check@a-edp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling:
- shard-lnl: NOTRUN -> [SKIP][35] ([Intel XE#1401] / [Intel XE#1745])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][36] ([Intel XE#1401])
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling@pipe-a-valid-mode:
- shard-dg2-set2: NOTRUN -> [SKIP][37] ([Intel XE#1201] / [Intel XE#455]) +3 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling:
- shard-adlp: NOTRUN -> [SKIP][38] ([Intel XE#1201] / [Intel XE#455]) +2 other tests skip
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-wc:
- shard-dg2-set2: NOTRUN -> [SKIP][39] ([Intel XE#1201] / [Intel XE#651]) +4 other tests skip
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][40] ([Intel XE#651]) +2 other tests skip
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-mmap-wc:
- shard-adlp: NOTRUN -> [SKIP][41] ([Intel XE#1201] / [Intel XE#651]) +1 other test skip
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt:
- shard-adlp: NOTRUN -> [SKIP][42] ([Intel XE#1201] / [Intel XE#653]) +1 other test skip
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][43] ([Intel XE#656]) +3 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-pgflip-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][44] ([Intel XE#1201] / [Intel XE#653]) +2 other tests skip
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-blt:
- shard-adlp: NOTRUN -> [SKIP][45] ([Intel XE#1201] / [Intel XE#656]) +7 other tests skip
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-blt.html
* igt@kms_hdr@static-toggle-suspend:
- shard-lnl: NOTRUN -> [SKIP][46] ([Intel XE#1503] / [Intel XE#599])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_hdr@static-toggle-suspend.html
* igt@kms_plane@plane-position-covered@pipe-a-plane-3:
- shard-lnl: [PASS][47] -> [DMESG-FAIL][48] ([Intel XE#324])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-lnl-1/igt@kms_plane@plane-position-covered@pipe-a-plane-3.html
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_plane@plane-position-covered@pipe-a-plane-3.html
* igt@kms_plane@plane-position-covered@pipe-b-plane-3:
- shard-lnl: [PASS][49] -> [DMESG-WARN][50] ([Intel XE#324]) +2 other tests dmesg-warn
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-lnl-1/igt@kms_plane@plane-position-covered@pipe-b-plane-3.html
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_plane@plane-position-covered@pipe-b-plane-3.html
* igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-6:
- shard-dg2-set2: [PASS][51] -> [FAIL][52] ([Intel XE#361])
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-433/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-6.html
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-463/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-6.html
* igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][53] ([Intel XE#498]) +3 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-b-edp-1.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-edp-1:
- shard-lnl: NOTRUN -> [SKIP][54] ([Intel XE#2318]) +3 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-edp-1.html
* igt@kms_pm_backlight@basic-brightness:
- shard-adlp: NOTRUN -> [SKIP][55] ([Intel XE#1201] / [Intel XE#870])
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_pm_backlight@basic-brightness.html
* igt@kms_psr2_sf@fbc-cursor-plane-move-continuous-exceed-fully-sf:
- shard-dg2-set2: NOTRUN -> [SKIP][56] ([Intel XE#1201] / [Intel XE#1489])
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_psr2_sf@fbc-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@fbc-cursor-plane-move-continuous-exceed-sf:
- shard-adlp: NOTRUN -> [SKIP][57] ([Intel XE#1201])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_psr2_sf@fbc-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr@fbc-pr-sprite-plane-onoff:
- shard-adlp: NOTRUN -> [SKIP][58] ([Intel XE#1201] / [Intel XE#929]) +2 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_psr@fbc-pr-sprite-plane-onoff.html
* igt@kms_psr@psr2-primary-render:
- shard-dg2-set2: NOTRUN -> [SKIP][59] ([Intel XE#1201] / [Intel XE#929]) +3 other tests skip
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_psr@psr2-primary-render.html
* igt@kms_rotation_crc@bad-pixel-format:
- shard-adlp: NOTRUN -> [SKIP][60] ([Intel XE#1201] / [Intel XE#327])
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@kms_rotation_crc@bad-pixel-format.html
* igt@kms_universal_plane@cursor-fb-leak@pipe-b-dp-4:
- shard-dg2-set2: [PASS][61] -> [FAIL][62] ([Intel XE#899])
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-433/igt@kms_universal_plane@cursor-fb-leak@pipe-b-dp-4.html
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-436/igt@kms_universal_plane@cursor-fb-leak@pipe-b-dp-4.html
* igt@xe_compute@ccs-mode-basic:
- shard-lnl: NOTRUN -> [SKIP][63] ([Intel XE#1447])
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@xe_compute@ccs-mode-basic.html
* igt@xe_evict@evict-beng-mixed-threads-large:
- shard-dg2-set2: [PASS][64] -> [FAIL][65] ([Intel XE#1000])
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-436/igt@xe_evict@evict-beng-mixed-threads-large.html
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-466/igt@xe_evict@evict-beng-mixed-threads-large.html
* igt@xe_evict@evict-cm-threads-large-multi-vm:
- shard-lnl: NOTRUN -> [SKIP][66] ([Intel XE#688])
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@xe_evict@evict-cm-threads-large-multi-vm.html
* igt@xe_evict@evict-mixed-threads-large:
- shard-dg2-set2: [PASS][67] -> [TIMEOUT][68] ([Intel XE#1473])
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-435/igt@xe_evict@evict-mixed-threads-large.html
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-466/igt@xe_evict@evict-mixed-threads-large.html
* igt@xe_evict@evict-small-external-cm:
- shard-adlp: NOTRUN -> [SKIP][69] ([Intel XE#1201] / [Intel XE#261] / [Intel XE#688])
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@xe_evict@evict-small-external-cm.html
* igt@xe_evict_ccs@evict-overcommit-standalone-instantfree-samefd:
- shard-adlp: NOTRUN -> [SKIP][70] ([Intel XE#1201] / [Intel XE#688])
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@xe_evict_ccs@evict-overcommit-standalone-instantfree-samefd.html
* igt@xe_exec_basic@multigpu-once-basic-defer-mmap:
- shard-adlp: NOTRUN -> [SKIP][71] ([Intel XE#1201] / [Intel XE#1392])
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@xe_exec_basic@multigpu-once-basic-defer-mmap.html
* igt@xe_exec_fault_mode@many-bindexecqueue:
- shard-dg2-set2: NOTRUN -> [SKIP][72] ([Intel XE#1201] / [Intel XE#288])
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@xe_exec_fault_mode@many-bindexecqueue.html
* igt@xe_exec_fault_mode@many-execqueues-rebind:
- shard-adlp: NOTRUN -> [SKIP][73] ([Intel XE#1201] / [Intel XE#288]) +5 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@xe_exec_fault_mode@many-execqueues-rebind.html
* igt@xe_exec_reset@cat-error:
- shard-adlp: [PASS][74] -> [DMESG-WARN][75] ([Intel XE#358])
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-adlp-9/igt@xe_exec_reset@cat-error.html
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-4/igt@xe_exec_reset@cat-error.html
* igt@xe_peer2peer@read:
- shard-adlp: NOTRUN -> [SKIP][76] ([Intel XE#1061] / [Intel XE#1201])
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@xe_peer2peer@read.html
* igt@xe_pm@d3cold-mmap-system:
- shard-dg2-set2: NOTRUN -> [SKIP][77] ([Intel XE#1201] / [Intel XE#2284] / [Intel XE#366])
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@xe_pm@d3cold-mmap-system.html
* igt@xe_pm@s4-basic:
- shard-adlp: [PASS][78] -> [ABORT][79] ([Intel XE#1358] / [Intel XE#1607]) +1 other test abort
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-adlp-4/igt@xe_pm@s4-basic.html
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-9/igt@xe_pm@s4-basic.html
* igt@xe_pm@s4-mocs:
- shard-lnl: [PASS][80] -> [ABORT][81] ([Intel XE#1794])
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-lnl-1/igt@xe_pm@s4-mocs.html
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-2/igt@xe_pm@s4-mocs.html
* igt@xe_wedged@basic-wedged:
- shard-dg2-set2: NOTRUN -> [SKIP][82] ([Intel XE#1130] / [Intel XE#1201])
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@xe_wedged@basic-wedged.html
#### Possible fixes ####
* igt@core_hotunplug@hotreplug-lateclose:
- shard-lnl: [DMESG-WARN][83] -> [PASS][84]
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-lnl-3/igt@core_hotunplug@hotreplug-lateclose.html
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-2/igt@core_hotunplug@hotreplug-lateclose.html
* igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels@pipe-a-edp-1:
- shard-lnl: [FAIL][85] ([Intel XE#1426]) -> [PASS][86] +1 other test pass
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-lnl-1/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels@pipe-a-edp-1.html
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels@pipe-a-edp-1.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0:
- shard-lnl: [FAIL][87] ([Intel XE#1659]) -> [PASS][88]
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-lnl-4/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0.html
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0.html
* igt@kms_cursor_legacy@torture-bo:
- shard-dg2-set2: [INCOMPLETE][89] -> [PASS][90] +1 other test pass
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@kms_cursor_legacy@torture-bo.html
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_cursor_legacy@torture-bo.html
* igt@kms_hdr@invalid-hdr:
- shard-dg2-set2: [SKIP][91] ([Intel XE#1201] / [Intel XE#455]) -> [PASS][92]
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-435/igt@kms_hdr@invalid-hdr.html
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-463/igt@kms_hdr@invalid-hdr.html
* igt@kms_plane@plane-position-covered@pipe-a-plane-2:
- shard-lnl: [DMESG-FAIL][93] ([Intel XE#324]) -> [PASS][94]
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-lnl-1/igt@kms_plane@plane-position-covered@pipe-a-plane-2.html
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@kms_plane@plane-position-covered@pipe-a-plane-2.html
* igt@kms_plane@plane-position-hole-dpms@pipe-a-plane-3:
- shard-lnl: [DMESG-WARN][95] ([Intel XE#324]) -> [PASS][96] +1 other test pass
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-lnl-5/igt@kms_plane@plane-position-hole-dpms@pipe-a-plane-3.html
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-4/igt@kms_plane@plane-position-hole-dpms@pipe-a-plane-3.html
* igt@kms_pm_dc@dc6-dpms:
- shard-lnl: [FAIL][97] ([Intel XE#1430]) -> [PASS][98]
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-lnl-6/igt@kms_pm_dc@dc6-dpms.html
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-3/igt@kms_pm_dc@dc6-dpms.html
- shard-adlp: [FAIL][99] ([Intel XE#718]) -> [PASS][100]
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-adlp-1/igt@kms_pm_dc@dc6-dpms.html
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-8/igt@kms_pm_dc@dc6-dpms.html
* igt@kms_pm_rpm@legacy-planes@plane-68:
- shard-lnl: [FAIL][101] -> [PASS][102] +3 other tests pass
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-lnl-4/igt@kms_pm_rpm@legacy-planes@plane-68.html
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-7/igt@kms_pm_rpm@legacy-planes@plane-68.html
* igt@kms_universal_plane@cursor-fb-leak@pipe-c-dp-2:
- {shard-bmg}: [FAIL][103] ([Intel XE#899]) -> [PASS][104] +2 other tests pass
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-bmg-2/igt@kms_universal_plane@cursor-fb-leak@pipe-c-dp-2.html
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-bmg-1/igt@kms_universal_plane@cursor-fb-leak@pipe-c-dp-2.html
* igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-6:
- shard-dg2-set2: [FAIL][105] ([Intel XE#899]) -> [PASS][106]
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-433/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-6.html
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-436/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-6.html
* igt@xe_drm_fdinfo@drm-all-busy-idle-check-all:
- {shard-bmg}: [FAIL][107] -> [PASS][108]
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-bmg-3/igt@xe_drm_fdinfo@drm-all-busy-idle-check-all.html
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-bmg-6/igt@xe_drm_fdinfo@drm-all-busy-idle-check-all.html
* igt@xe_evict@evict-beng-threads-large:
- shard-dg2-set2: [TIMEOUT][109] ([Intel XE#1473]) -> [PASS][110]
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-466/igt@xe_evict@evict-beng-threads-large.html
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-434/igt@xe_evict@evict-beng-threads-large.html
* igt@xe_evict@evict-large-multi-vm-cm:
- {shard-bmg}: [FAIL][111] ([Intel XE#2364]) -> [PASS][112]
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-bmg-4/igt@xe_evict@evict-large-multi-vm-cm.html
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-bmg-8/igt@xe_evict@evict-large-multi-vm-cm.html
* igt@xe_exec_balancer@twice-virtual-userptr-invalidate:
- {shard-bmg}: [DMESG-WARN][113] ([Intel XE#877]) -> [PASS][114] +3 other tests pass
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-bmg-7/igt@xe_exec_balancer@twice-virtual-userptr-invalidate.html
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-bmg-3/igt@xe_exec_balancer@twice-virtual-userptr-invalidate.html
* igt@xe_pm@s4-exec-after:
- shard-adlp: [ABORT][115] ([Intel XE#1358] / [Intel XE#1607]) -> [PASS][116]
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-adlp-9/igt@xe_pm@s4-exec-after.html
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-2/igt@xe_pm@s4-exec-after.html
* igt@xe_pm@s4-vm-bind-userptr:
- shard-lnl: [ABORT][117] ([Intel XE#1794]) -> [PASS][118]
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-lnl-2/igt@xe_pm@s4-vm-bind-userptr.html
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-lnl-5/igt@xe_pm@s4-vm-bind-userptr.html
#### Warnings ####
* igt@kms_big_fb@x-tiled-32bpp-rotate-270:
- shard-dg2-set2: [SKIP][119] ([Intel XE#1201] / [Intel XE#316]) -> [SKIP][120] ([Intel XE#316]) +1 other test skip
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html
* igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
- shard-adlp: [DMESG-FAIL][121] ([Intel XE#324]) -> [FAIL][122] ([Intel XE#1204])
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-adlp-1/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-6/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-dg2-set2: [SKIP][123] ([Intel XE#1124]) -> [SKIP][124] ([Intel XE#1124] / [Intel XE#1201]) +4 other tests skip
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-435/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
- shard-adlp: [DMESG-FAIL][125] ([Intel XE#324]) -> [FAIL][126] ([Intel XE#1231])
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-adlp-2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-8/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
- shard-adlp: [FAIL][127] ([Intel XE#1231]) -> [FAIL][128] ([Intel XE#1242])
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-adlp-4/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-adlp-4/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
* igt@kms_big_fb@yf-tiled-64bpp-rotate-180:
- shard-dg2-set2: [SKIP][129] ([Intel XE#1124] / [Intel XE#1201]) -> [SKIP][130] ([Intel XE#1124]) +5 other tests skip
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_big_fb@yf-tiled-64bpp-rotate-180.html
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_big_fb@yf-tiled-64bpp-rotate-180.html
* igt@kms_bw@connected-linear-tiling-4-displays-3840x2160p:
- shard-dg2-set2: [SKIP][131] ([Intel XE#1201] / [Intel XE#2191]) -> [SKIP][132] ([Intel XE#2191]) +1 other test skip
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_bw@connected-linear-tiling-4-displays-3840x2160p.html
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_bw@connected-linear-tiling-4-displays-3840x2160p.html
* igt@kms_bw@linear-tiling-2-displays-2160x1440p:
- shard-dg2-set2: [SKIP][133] ([Intel XE#1201] / [Intel XE#367]) -> [SKIP][134] ([Intel XE#367])
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html
* igt@kms_bw@linear-tiling-2-displays-3840x2160p:
- shard-dg2-set2: [SKIP][135] ([Intel XE#367]) -> [SKIP][136] ([Intel XE#1201] / [Intel XE#367]) +2 other tests skip
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@kms_bw@linear-tiling-2-displays-3840x2160p.html
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_bw@linear-tiling-2-displays-3840x2160p.html
* igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-6:
- shard-dg2-set2: [SKIP][137] ([Intel XE#1201] / [Intel XE#787]) -> [SKIP][138] ([Intel XE#787]) +34 other tests skip
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-6.html
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-6.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-a-dp-4:
- shard-dg2-set2: [SKIP][139] ([Intel XE#787]) -> [SKIP][140] ([Intel XE#1201] / [Intel XE#787]) +13 other tests skip
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-a-dp-4.html
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-435/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-a-dp-4.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-d-dp-4:
- shard-dg2-set2: [SKIP][141] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][142] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +3 other tests skip
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-d-dp-4.html
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-435/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-d-dp-4.html
* igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
- shard-dg2-set2: [SKIP][143] ([Intel XE#1201] / [Intel XE#1252]) -> [SKIP][144] ([Intel XE#1252]) +1 other test skip
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc:
- shard-dg2-set2: [SKIP][145] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) -> [SKIP][146] ([Intel XE#455] / [Intel XE#787]) +9 other tests skip
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc.html
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc.html
* igt@kms_cdclk@mode-transition@pipe-d-dp-4:
- shard-dg2-set2: [SKIP][147] ([Intel XE#314]) -> [SKIP][148] ([Intel XE#1201] / [Intel XE#314]) +3 other tests skip
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@kms_cdclk@mode-transition@pipe-d-dp-4.html
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-435/igt@kms_cdclk@mode-transition@pipe-d-dp-4.html
* igt@kms_chamelium_color@ctm-green-to-red:
- shard-dg2-set2: [SKIP][149] ([Intel XE#306]) -> [SKIP][150] ([Intel XE#1201] / [Intel XE#306])
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@kms_chamelium_color@ctm-green-to-red.html
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_chamelium_color@ctm-green-to-red.html
* igt@kms_chamelium_edid@hdmi-edid-change-during-suspend:
- shard-dg2-set2: [SKIP][151] ([Intel XE#373]) -> [SKIP][152] ([Intel XE#1201] / [Intel XE#373]) +4 other tests skip
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@kms_chamelium_edid@hdmi-edid-change-during-suspend.html
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_chamelium_edid@hdmi-edid-change-during-suspend.html
* igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats:
- shard-dg2-set2: [SKIP][153] ([Intel XE#1201] / [Intel XE#373]) -> [SKIP][154] ([Intel XE#373]) +3 other tests skip
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats.html
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling:
- shard-dg2-set2: [SKIP][155] ([Intel XE#1201] / [Intel XE#455]) -> [SKIP][156] ([Intel XE#455]) +6 other tests skip
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling.html
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render:
- shard-dg2-set2: [SKIP][157] ([Intel XE#651]) -> [SKIP][158] ([Intel XE#1201] / [Intel XE#651]) +7 other tests skip
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render.html
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-435/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-plflip-blt:
- shard-dg2-set2: [SKIP][159] ([Intel XE#1201] / [Intel XE#651]) -> [SKIP][160] ([Intel XE#651]) +14 other tests skip
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-plflip-blt.html
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff:
- shard-dg2-set2: [SKIP][161] ([Intel XE#1201] / [Intel XE#653]) -> [SKIP][162] ([Intel XE#653]) +12 other tests skip
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff.html
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-y:
- shard-dg2-set2: [SKIP][163] ([Intel XE#1201] / [Intel XE#658]) -> [SKIP][164] ([Intel XE#658])
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-render:
- shard-dg2-set2: [SKIP][165] ([Intel XE#653]) -> [SKIP][166] ([Intel XE#1201] / [Intel XE#653]) +10 other tests skip
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-render.html
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-render.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-hdmi-a-6:
- shard-dg2-set2: [SKIP][167] ([Intel XE#1201] / [Intel XE#2318] / [Intel XE#455]) -> [SKIP][168] ([Intel XE#2318] / [Intel XE#455]) +3 other tests skip
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-hdmi-a-6.html
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-hdmi-a-6.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-c-hdmi-a-6:
- shard-dg2-set2: [SKIP][169] ([Intel XE#1201] / [Intel XE#2318]) -> [SKIP][170] ([Intel XE#2318]) +5 other tests skip
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-c-hdmi-a-6.html
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-c-hdmi-a-6.html
* igt@kms_pm_dc@dc6-psr:
- shard-dg2-set2: [SKIP][171] ([Intel XE#1129] / [Intel XE#1201]) -> [SKIP][172] ([Intel XE#1129])
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_pm_dc@dc6-psr.html
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_pm_dc@dc6-psr.html
* igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
- shard-dg2-set2: [SKIP][173] ([Intel XE#1489]) -> [SKIP][174] ([Intel XE#1201] / [Intel XE#1489])
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-435/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb:
- shard-dg2-set2: [SKIP][175] ([Intel XE#1201] / [Intel XE#1489]) -> [SKIP][176] ([Intel XE#1489])
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html
* igt@kms_psr@fbc-psr-primary-render:
- shard-dg2-set2: [SKIP][177] ([Intel XE#929]) -> [SKIP][178] ([Intel XE#1201] / [Intel XE#929]) +2 other tests skip
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@kms_psr@fbc-psr-primary-render.html
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-435/igt@kms_psr@fbc-psr-primary-render.html
* igt@kms_psr@fbc-psr2-cursor-plane-onoff:
- shard-dg2-set2: [SKIP][179] ([Intel XE#1201] / [Intel XE#929]) -> [SKIP][180] ([Intel XE#929]) +6 other tests skip
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_psr@fbc-psr2-cursor-plane-onoff.html
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_psr@fbc-psr2-cursor-plane-onoff.html
* igt@kms_scaling_modes@scaling-mode-full:
- shard-dg2-set2: [SKIP][181] ([Intel XE#455]) -> [SKIP][182] ([Intel XE#1201] / [Intel XE#455]) +6 other tests skip
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@kms_scaling_modes@scaling-mode-full.html
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@kms_scaling_modes@scaling-mode-full.html
* igt@kms_vrr@cmrr:
- shard-dg2-set2: [SKIP][183] ([Intel XE#1201] / [Intel XE#2168]) -> [SKIP][184] ([Intel XE#2168])
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@kms_vrr@cmrr.html
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@kms_vrr@cmrr.html
* igt@kms_writeback@writeback-fb-id-xrgb2101010:
- shard-dg2-set2: [SKIP][185] ([Intel XE#756]) -> [SKIP][186] ([Intel XE#1201] / [Intel XE#756])
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@kms_writeback@writeback-fb-id-xrgb2101010.html
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-435/igt@kms_writeback@writeback-fb-id-xrgb2101010.html
* igt@xe_copy_basic@mem-copy-linear-0x3fff:
- shard-dg2-set2: [SKIP][187] ([Intel XE#1123]) -> [SKIP][188] ([Intel XE#1123] / [Intel XE#1201])
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@xe_copy_basic@mem-copy-linear-0x3fff.html
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-435/igt@xe_copy_basic@mem-copy-linear-0x3fff.html
* igt@xe_copy_basic@mem-copy-linear-0xfffe:
- shard-dg2-set2: [SKIP][189] ([Intel XE#1123] / [Intel XE#1201]) -> [SKIP][190] ([Intel XE#1123])
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@xe_copy_basic@mem-copy-linear-0xfffe.html
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@xe_copy_basic@mem-copy-linear-0xfffe.html
* igt@xe_copy_basic@mem-set-linear-0x369:
- shard-dg2-set2: [SKIP][191] ([Intel XE#1126] / [Intel XE#1201]) -> [SKIP][192] ([Intel XE#1126])
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@xe_copy_basic@mem-set-linear-0x369.html
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@xe_copy_basic@mem-set-linear-0x369.html
* igt@xe_exec_fault_mode@many-basic-prefetch:
- shard-dg2-set2: [SKIP][193] ([Intel XE#1201] / [Intel XE#288]) -> [SKIP][194] ([Intel XE#288]) +12 other tests skip
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@xe_exec_fault_mode@many-basic-prefetch.html
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@xe_exec_fault_mode@many-basic-prefetch.html
* igt@xe_exec_fault_mode@once-rebind:
- shard-dg2-set2: [SKIP][195] ([Intel XE#288]) -> [SKIP][196] ([Intel XE#1201] / [Intel XE#288]) +10 other tests skip
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@xe_exec_fault_mode@once-rebind.html
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-435/igt@xe_exec_fault_mode@once-rebind.html
* igt@xe_module_load@load:
- shard-dg2-set2: [SKIP][197] ([Intel XE#378]) -> [SKIP][198] ([Intel XE#1201] / [Intel XE#378])
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@xe_module_load@load.html
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-433/igt@xe_module_load@load.html
* igt@xe_oa@oa-regs-whitelisted:
- shard-dg2-set2: [SKIP][199] ([Intel XE#2541]) -> [SKIP][200] ([Intel XE#1201] / [Intel XE#2541]) +1 other test skip
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@xe_oa@oa-regs-whitelisted.html
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-435/igt@xe_oa@oa-regs-whitelisted.html
* igt@xe_oa@polling-small-buf:
- shard-dg2-set2: [SKIP][201] ([Intel XE#1201] / [Intel XE#2541]) -> [SKIP][202] ([Intel XE#2541]) +1 other test skip
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-463/igt@xe_oa@polling-small-buf.html
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-432/igt@xe_oa@polling-small-buf.html
* igt@xe_query@multigpu-query-cs-cycles:
- shard-dg2-set2: [SKIP][203] ([Intel XE#944]) -> [SKIP][204] ([Intel XE#1201] / [Intel XE#944]) +2 other tests skip
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4/shard-dg2-432/igt@xe_query@multigpu-query-cs-cycles.html
[204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/shard-dg2-435/igt@xe_query@multigpu-query-cs-cycles.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1000]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1000
[Intel XE#1061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1061
[Intel XE#1123]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1123
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126
[Intel XE#1129]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1129
[Intel XE#1130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1130
[Intel XE#1135]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1135
[Intel XE#1195]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1195
[Intel XE#1201]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1201
[Intel XE#1204]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1204
[Intel XE#1231]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1231
[Intel XE#1242]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1242
[Intel XE#1252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1252
[Intel XE#1358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1358
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1399
[Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1426
[Intel XE#1430]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1430
[Intel XE#1447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1447
[Intel XE#1473]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1473
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1607
[Intel XE#1659]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1659
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#1794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1794
[Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
[Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168
[Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2318]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2318
[Intel XE#2364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2364
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
[Intel XE#2541]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2541
[Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
[Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310
[Intel XE#314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/314
[Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
[Intel XE#324]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/324
[Intel XE#327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/327
[Intel XE#358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/358
[Intel XE#361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/361
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/378
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#498]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/498
[Intel XE#599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/599
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/658
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#701]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/701
[Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718
[Intel XE#756]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/756
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
[Intel XE#877]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/877
[Intel XE#886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/886
[Intel XE#899]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/899
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* Linux: xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4 -> xe-pw-137058v4
IGT_7993: 3b6b2d238e864ff1af9e33159d3bbf4b7f01d86d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-1842-2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4: 2940d1fa7abe0d2a9acc95fd1c704a8d8cbc68f4
xe-pw-137058v4: 137058v4
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-137058v4/index.html
[-- Attachment #2: Type: text/html, Size: 72066 bytes --]
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH 4/7] drm/xe/oa: Signal output fences
2024-08-30 22:16 ` [PATCH 4/7] drm/xe/oa: Signal output fences Ashutosh Dixit
@ 2024-08-30 22:15 ` Dixit, Ashutosh
2024-08-30 22:45 ` Matthew Brost
2024-09-17 22:18 ` Dixit, Ashutosh
2 siblings, 0 replies; 31+ messages in thread
From: Dixit, Ashutosh @ 2024-08-30 22:15 UTC (permalink / raw)
To: intel-xe
On Fri, 30 Aug 2024 15:16:15 -0700, Ashutosh Dixit wrote:
>
> Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
> output fences in the xe_sync array. The fences are signaled
> asynchronously. When there are no output fences to signal, the OA
> configuration wait is synchronously re-introduced into the ioctl.
>
> v2: Don't wait in the work, use callback + delayed work (Matt B)
> Use a single, not a per-fence spinlock (Matt Brost)
> v3: Move ofence alloc before job submission (Matt)
> Assert, don't fail, from dma_fence_add_callback (Matt)
> Additional dma_fence_get for dma_fence_wait (Matt)
> Change dma_fence_wait to non-interruptible (Matt)
> v4: Introduce last_fence to prevent uaf if stream is closed with
> pending OA config jobs
I made a small change to this patch to prevent a potential uaf. Since the
change is small and I have tested them, I have retained previous R-b's on
the patch. If you want to review again, please grep for 'last_fence' in the
patch.
Thanks.
--
Ashutosh
> Suggested-by: Matthew Brost <matthew.brost@intel.com>
> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
> Reviewed-by: Matthew Brost <matthew.brost@intel.com>
^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH 4/7] drm/xe/oa: Signal output fences
2024-08-30 22:16 [PATCH v5 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
@ 2024-08-30 22:16 ` Ashutosh Dixit
2024-08-30 22:15 ` Dixit, Ashutosh
` (2 more replies)
0 siblings, 3 replies; 31+ messages in thread
From: Ashutosh Dixit @ 2024-08-30 22:16 UTC (permalink / raw)
To: intel-xe
Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
output fences in the xe_sync array. The fences are signaled
asynchronously. When there are no output fences to signal, the OA
configuration wait is synchronously re-introduced into the ioctl.
v2: Don't wait in the work, use callback + delayed work (Matt B)
Use a single, not a per-fence spinlock (Matt Brost)
v3: Move ofence alloc before job submission (Matt)
Assert, don't fail, from dma_fence_add_callback (Matt)
Additional dma_fence_get for dma_fence_wait (Matt)
Change dma_fence_wait to non-interruptible (Matt)
v4: Introduce last_fence to prevent uaf if stream is closed with
pending OA config jobs
Suggested-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_oa.c | 117 ++++++++++++++++++++++++++-----
drivers/gpu/drm/xe/xe_oa_types.h | 6 ++
2 files changed, 106 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index b4b68019d35b7..56f95fd431bf9 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -100,6 +100,15 @@ struct xe_oa_config_bo {
struct xe_bb *bb;
};
+struct xe_oa_fence {
+ /* @base: dma fence base */
+ struct dma_fence base;
+ /* @work: work to signal @base */
+ struct delayed_work work;
+ /* @cb: callback to schedule @work */
+ struct dma_fence_cb cb;
+};
+
#define DRM_FMT(x) DRM_XE_OA_FMT_TYPE_##x
static const struct xe_oa_format oa_formats[] = {
@@ -172,10 +181,10 @@ static struct xe_oa_config *xe_oa_get_oa_config(struct xe_oa *oa, int metrics_se
return oa_config;
}
-static void free_oa_config_bo(struct xe_oa_config_bo *oa_bo)
+static void free_oa_config_bo(struct xe_oa_config_bo *oa_bo, struct dma_fence *last_fence)
{
xe_oa_config_put(oa_bo->oa_config);
- xe_bb_free(oa_bo->bb, NULL);
+ xe_bb_free(oa_bo->bb, last_fence);
kfree(oa_bo);
}
@@ -648,7 +657,8 @@ static void xe_oa_free_configs(struct xe_oa_stream *stream)
xe_oa_config_put(stream->oa_config);
llist_for_each_entry_safe(oa_bo, tmp, stream->oa_config_bos.first, node)
- free_oa_config_bo(oa_bo);
+ free_oa_config_bo(oa_bo, stream->last_fence);
+ dma_fence_put(stream->last_fence);
}
static void xe_oa_store_flex(struct xe_oa_stream *stream, struct xe_lrc *lrc,
@@ -945,40 +955,112 @@ xe_oa_alloc_config_buffer(struct xe_oa_stream *stream, struct xe_oa_config *oa_c
return oa_bo;
}
+static void xe_oa_update_last_fence(struct xe_oa_stream *stream, struct dma_fence *fence)
+{
+ dma_fence_put(stream->last_fence);
+ stream->last_fence = dma_fence_get(fence);
+}
+
+static void xe_oa_fence_work_fn(struct work_struct *w)
+{
+ struct xe_oa_fence *ofence = container_of(w, typeof(*ofence), work.work);
+
+ /* Signal fence to indicate new OA configuration is active */
+ dma_fence_signal(&ofence->base);
+ dma_fence_put(&ofence->base);
+}
+
+static void xe_oa_config_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
+{
+ /* Additional empirical delay needed for NOA programming after registers are written */
+#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
+
+ struct xe_oa_fence *ofence = container_of(cb, typeof(*ofence), cb);
+
+ INIT_DELAYED_WORK(&ofence->work, xe_oa_fence_work_fn);
+ queue_delayed_work(system_unbound_wq, &ofence->work,
+ usecs_to_jiffies(NOA_PROGRAM_ADDITIONAL_DELAY_US));
+ dma_fence_put(fence);
+}
+
+static const char *xe_oa_get_driver_name(struct dma_fence *fence)
+{
+ return "xe_oa";
+}
+
+static const char *xe_oa_get_timeline_name(struct dma_fence *fence)
+{
+ return "unbound";
+}
+
+static const struct dma_fence_ops xe_oa_fence_ops = {
+ .get_driver_name = xe_oa_get_driver_name,
+ .get_timeline_name = xe_oa_get_timeline_name,
+};
+
static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config *config)
{
#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
struct xe_oa_config_bo *oa_bo;
- int err = 0, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
+ struct xe_oa_fence *ofence;
+ int i, err, num_signal = 0;
struct dma_fence *fence;
- long timeout;
- /* Emit OA configuration batch */
+ ofence = kzalloc(sizeof(*ofence), GFP_KERNEL);
+ if (!ofence) {
+ err = -ENOMEM;
+ goto exit;
+ }
+
oa_bo = xe_oa_alloc_config_buffer(stream, config);
if (IS_ERR(oa_bo)) {
err = PTR_ERR(oa_bo);
goto exit;
}
+ /* Emit OA configuration batch */
fence = xe_oa_submit_bb(stream, XE_OA_SUBMIT_ADD_DEPS, oa_bo->bb);
if (IS_ERR(fence)) {
err = PTR_ERR(fence);
goto exit;
}
- /* Wait till all previous batches have executed */
- timeout = dma_fence_wait_timeout(fence, false, 5 * HZ);
- dma_fence_put(fence);
- if (timeout < 0)
- err = timeout;
- else if (!timeout)
- err = -ETIME;
- if (err)
- drm_dbg(&stream->oa->xe->drm, "dma_fence_wait_timeout err %d\n", err);
+ /* Point of no return: initialize and set fence to signal */
+ dma_fence_init(&ofence->base, &xe_oa_fence_ops, &stream->oa_fence_lock, 0, 0);
- /* Additional empirical delay needed for NOA programming after registers are written */
- usleep_range(us, 2 * us);
+ for (i = 0; i < stream->num_syncs; i++) {
+ if (stream->syncs[i].flags & DRM_XE_SYNC_FLAG_SIGNAL)
+ num_signal++;
+ xe_sync_entry_signal(&stream->syncs[i], &ofence->base);
+ }
+
+ /* Additional dma_fence_get in case we dma_fence_wait */
+ if (!num_signal)
+ dma_fence_get(&ofence->base);
+
+ /* Update last fence too before adding callback */
+ xe_oa_update_last_fence(stream, fence);
+
+ /* Add job fence callback to schedule work to signal ofence->base */
+ err = dma_fence_add_callback(fence, &ofence->cb, xe_oa_config_cb);
+ xe_gt_assert(stream->gt, !err || err == -ENOENT);
+ if (err == -ENOENT)
+ xe_oa_config_cb(fence, &ofence->cb);
+
+ /* If nothing needs to be signaled we wait synchronously */
+ if (!num_signal) {
+ dma_fence_wait(&ofence->base, false);
+ dma_fence_put(&ofence->base);
+ }
+
+ /* Done with syncs */
+ for (i = 0; i < stream->num_syncs; i++)
+ xe_sync_entry_cleanup(&stream->syncs[i]);
+ kfree(stream->syncs);
+
+ return 0;
exit:
+ kfree(ofence);
return err;
}
@@ -1479,6 +1561,7 @@ static int xe_oa_stream_init(struct xe_oa_stream *stream,
goto err_free_oa_buf;
}
+ spin_lock_init(&stream->oa_fence_lock);
ret = xe_oa_enable_metric_set(stream);
if (ret) {
drm_dbg(&stream->oa->xe->drm, "Unable to enable metric set\n");
diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
index 99f4b2d4bdcf6..935f98772a948 100644
--- a/drivers/gpu/drm/xe/xe_oa_types.h
+++ b/drivers/gpu/drm/xe/xe_oa_types.h
@@ -239,6 +239,12 @@ struct xe_oa_stream {
/** @no_preempt: Whether preemption and timeslicing is disabled for stream exec_q */
u32 no_preempt;
+ /** @last_fence: fence to use in stream destroy when needed */
+ struct dma_fence *last_fence;
+
+ /** @oa_fence_lock: Lock for struct xe_oa_fence */
+ spinlock_t oa_fence_lock;
+
/** @num_syncs: size of @syncs array */
u32 num_syncs;
--
2.41.0
^ permalink raw reply related [flat|nested] 31+ messages in thread
* Re: [PATCH 4/7] drm/xe/oa: Signal output fences
2024-08-30 22:16 ` [PATCH 4/7] drm/xe/oa: Signal output fences Ashutosh Dixit
2024-08-30 22:15 ` Dixit, Ashutosh
@ 2024-08-30 22:45 ` Matthew Brost
2024-08-30 22:58 ` Dixit, Ashutosh
2024-09-17 22:18 ` Dixit, Ashutosh
2 siblings, 1 reply; 31+ messages in thread
From: Matthew Brost @ 2024-08-30 22:45 UTC (permalink / raw)
To: Ashutosh Dixit; +Cc: intel-xe
On Fri, Aug 30, 2024 at 03:16:15PM -0700, Ashutosh Dixit wrote:
> Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
> output fences in the xe_sync array. The fences are signaled
> asynchronously. When there are no output fences to signal, the OA
> configuration wait is synchronously re-introduced into the ioctl.
>
> v2: Don't wait in the work, use callback + delayed work (Matt B)
> Use a single, not a per-fence spinlock (Matt Brost)
> v3: Move ofence alloc before job submission (Matt)
> Assert, don't fail, from dma_fence_add_callback (Matt)
> Additional dma_fence_get for dma_fence_wait (Matt)
> Change dma_fence_wait to non-interruptible (Matt)
> v4: Introduce last_fence to prevent uaf if stream is closed with
> pending OA config jobs
The usage looks correct, so RB holds.
One suggestion which can be done in a follow up. I had to check the
locking to make this this was correct (i.e. a mutex at the outer
layer was held to make this serial) and didn't notice any lockdep
annotations in your code. Lockdep is good catching problems but also
self documenting which helps to review / maintain code. If possible
maybe sprilke in lockdep annotation in the OA code.
Matt
>
> Suggested-by: Matthew Brost <matthew.brost@intel.com>
> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
> Reviewed-by: Matthew Brost <matthew.brost@intel.com>
> ---
> drivers/gpu/drm/xe/xe_oa.c | 117 ++++++++++++++++++++++++++-----
> drivers/gpu/drm/xe/xe_oa_types.h | 6 ++
> 2 files changed, 106 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
> index b4b68019d35b7..56f95fd431bf9 100644
> --- a/drivers/gpu/drm/xe/xe_oa.c
> +++ b/drivers/gpu/drm/xe/xe_oa.c
> @@ -100,6 +100,15 @@ struct xe_oa_config_bo {
> struct xe_bb *bb;
> };
>
> +struct xe_oa_fence {
> + /* @base: dma fence base */
> + struct dma_fence base;
> + /* @work: work to signal @base */
> + struct delayed_work work;
> + /* @cb: callback to schedule @work */
> + struct dma_fence_cb cb;
> +};
> +
> #define DRM_FMT(x) DRM_XE_OA_FMT_TYPE_##x
>
> static const struct xe_oa_format oa_formats[] = {
> @@ -172,10 +181,10 @@ static struct xe_oa_config *xe_oa_get_oa_config(struct xe_oa *oa, int metrics_se
> return oa_config;
> }
>
> -static void free_oa_config_bo(struct xe_oa_config_bo *oa_bo)
> +static void free_oa_config_bo(struct xe_oa_config_bo *oa_bo, struct dma_fence *last_fence)
> {
> xe_oa_config_put(oa_bo->oa_config);
> - xe_bb_free(oa_bo->bb, NULL);
> + xe_bb_free(oa_bo->bb, last_fence);
> kfree(oa_bo);
> }
>
> @@ -648,7 +657,8 @@ static void xe_oa_free_configs(struct xe_oa_stream *stream)
>
> xe_oa_config_put(stream->oa_config);
> llist_for_each_entry_safe(oa_bo, tmp, stream->oa_config_bos.first, node)
> - free_oa_config_bo(oa_bo);
> + free_oa_config_bo(oa_bo, stream->last_fence);
> + dma_fence_put(stream->last_fence);
> }
>
> static void xe_oa_store_flex(struct xe_oa_stream *stream, struct xe_lrc *lrc,
> @@ -945,40 +955,112 @@ xe_oa_alloc_config_buffer(struct xe_oa_stream *stream, struct xe_oa_config *oa_c
> return oa_bo;
> }
>
> +static void xe_oa_update_last_fence(struct xe_oa_stream *stream, struct dma_fence *fence)
> +{
> + dma_fence_put(stream->last_fence);
> + stream->last_fence = dma_fence_get(fence);
> +}
> +
> +static void xe_oa_fence_work_fn(struct work_struct *w)
> +{
> + struct xe_oa_fence *ofence = container_of(w, typeof(*ofence), work.work);
> +
> + /* Signal fence to indicate new OA configuration is active */
> + dma_fence_signal(&ofence->base);
> + dma_fence_put(&ofence->base);
> +}
> +
> +static void xe_oa_config_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
> +{
> + /* Additional empirical delay needed for NOA programming after registers are written */
> +#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
> +
> + struct xe_oa_fence *ofence = container_of(cb, typeof(*ofence), cb);
> +
> + INIT_DELAYED_WORK(&ofence->work, xe_oa_fence_work_fn);
> + queue_delayed_work(system_unbound_wq, &ofence->work,
> + usecs_to_jiffies(NOA_PROGRAM_ADDITIONAL_DELAY_US));
> + dma_fence_put(fence);
> +}
> +
> +static const char *xe_oa_get_driver_name(struct dma_fence *fence)
> +{
> + return "xe_oa";
> +}
> +
> +static const char *xe_oa_get_timeline_name(struct dma_fence *fence)
> +{
> + return "unbound";
> +}
> +
> +static const struct dma_fence_ops xe_oa_fence_ops = {
> + .get_driver_name = xe_oa_get_driver_name,
> + .get_timeline_name = xe_oa_get_timeline_name,
> +};
> +
> static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config *config)
> {
> #define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
> struct xe_oa_config_bo *oa_bo;
> - int err = 0, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
> + struct xe_oa_fence *ofence;
> + int i, err, num_signal = 0;
> struct dma_fence *fence;
> - long timeout;
>
> - /* Emit OA configuration batch */
> + ofence = kzalloc(sizeof(*ofence), GFP_KERNEL);
> + if (!ofence) {
> + err = -ENOMEM;
> + goto exit;
> + }
> +
> oa_bo = xe_oa_alloc_config_buffer(stream, config);
> if (IS_ERR(oa_bo)) {
> err = PTR_ERR(oa_bo);
> goto exit;
> }
>
> + /* Emit OA configuration batch */
> fence = xe_oa_submit_bb(stream, XE_OA_SUBMIT_ADD_DEPS, oa_bo->bb);
> if (IS_ERR(fence)) {
> err = PTR_ERR(fence);
> goto exit;
> }
>
> - /* Wait till all previous batches have executed */
> - timeout = dma_fence_wait_timeout(fence, false, 5 * HZ);
> - dma_fence_put(fence);
> - if (timeout < 0)
> - err = timeout;
> - else if (!timeout)
> - err = -ETIME;
> - if (err)
> - drm_dbg(&stream->oa->xe->drm, "dma_fence_wait_timeout err %d\n", err);
> + /* Point of no return: initialize and set fence to signal */
> + dma_fence_init(&ofence->base, &xe_oa_fence_ops, &stream->oa_fence_lock, 0, 0);
>
> - /* Additional empirical delay needed for NOA programming after registers are written */
> - usleep_range(us, 2 * us);
> + for (i = 0; i < stream->num_syncs; i++) {
> + if (stream->syncs[i].flags & DRM_XE_SYNC_FLAG_SIGNAL)
> + num_signal++;
> + xe_sync_entry_signal(&stream->syncs[i], &ofence->base);
> + }
> +
> + /* Additional dma_fence_get in case we dma_fence_wait */
> + if (!num_signal)
> + dma_fence_get(&ofence->base);
> +
> + /* Update last fence too before adding callback */
> + xe_oa_update_last_fence(stream, fence);
> +
> + /* Add job fence callback to schedule work to signal ofence->base */
> + err = dma_fence_add_callback(fence, &ofence->cb, xe_oa_config_cb);
> + xe_gt_assert(stream->gt, !err || err == -ENOENT);
> + if (err == -ENOENT)
> + xe_oa_config_cb(fence, &ofence->cb);
> +
> + /* If nothing needs to be signaled we wait synchronously */
> + if (!num_signal) {
> + dma_fence_wait(&ofence->base, false);
> + dma_fence_put(&ofence->base);
> + }
> +
> + /* Done with syncs */
> + for (i = 0; i < stream->num_syncs; i++)
> + xe_sync_entry_cleanup(&stream->syncs[i]);
> + kfree(stream->syncs);
> +
> + return 0;
> exit:
> + kfree(ofence);
> return err;
> }
>
> @@ -1479,6 +1561,7 @@ static int xe_oa_stream_init(struct xe_oa_stream *stream,
> goto err_free_oa_buf;
> }
>
> + spin_lock_init(&stream->oa_fence_lock);
> ret = xe_oa_enable_metric_set(stream);
> if (ret) {
> drm_dbg(&stream->oa->xe->drm, "Unable to enable metric set\n");
> diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
> index 99f4b2d4bdcf6..935f98772a948 100644
> --- a/drivers/gpu/drm/xe/xe_oa_types.h
> +++ b/drivers/gpu/drm/xe/xe_oa_types.h
> @@ -239,6 +239,12 @@ struct xe_oa_stream {
> /** @no_preempt: Whether preemption and timeslicing is disabled for stream exec_q */
> u32 no_preempt;
>
> + /** @last_fence: fence to use in stream destroy when needed */
> + struct dma_fence *last_fence;
> +
> + /** @oa_fence_lock: Lock for struct xe_oa_fence */
> + spinlock_t oa_fence_lock;
> +
> /** @num_syncs: size of @syncs array */
> u32 num_syncs;
>
> --
> 2.41.0
>
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH 4/7] drm/xe/oa: Signal output fences
2024-08-30 22:45 ` Matthew Brost
@ 2024-08-30 22:58 ` Dixit, Ashutosh
0 siblings, 0 replies; 31+ messages in thread
From: Dixit, Ashutosh @ 2024-08-30 22:58 UTC (permalink / raw)
To: Matthew Brost; +Cc: intel-xe
On Fri, 30 Aug 2024 15:45:17 -0700, Matthew Brost wrote:
>
> On Fri, Aug 30, 2024 at 03:16:15PM -0700, Ashutosh Dixit wrote:
> > Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
> > output fences in the xe_sync array. The fences are signaled
> > asynchronously. When there are no output fences to signal, the OA
> > configuration wait is synchronously re-introduced into the ioctl.
> >
> > v2: Don't wait in the work, use callback + delayed work (Matt B)
> > Use a single, not a per-fence spinlock (Matt Brost)
> > v3: Move ofence alloc before job submission (Matt)
> > Assert, don't fail, from dma_fence_add_callback (Matt)
> > Additional dma_fence_get for dma_fence_wait (Matt)
> > Change dma_fence_wait to non-interruptible (Matt)
> > v4: Introduce last_fence to prevent uaf if stream is closed with
> > pending OA config jobs
>
> The usage looks correct, so RB holds.
>
> One suggestion which can be done in a follow up. I had to check the
> locking to make this this was correct (i.e. a mutex at the outer
> layer was held to make this serial) and didn't notice any lockdep
> annotations in your code. Lockdep is good catching problems but also
> self documenting which helps to review / maintain code. If possible
> maybe sprilke in lockdep annotation in the OA code.
Thanks Matt, yep, will try to figure out and do this as follow up.
Thanks.
--
Ashutosh
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH 4/7] drm/xe/oa: Signal output fences
2024-08-30 22:16 ` [PATCH 4/7] drm/xe/oa: Signal output fences Ashutosh Dixit
2024-08-30 22:15 ` Dixit, Ashutosh
2024-08-30 22:45 ` Matthew Brost
@ 2024-09-17 22:18 ` Dixit, Ashutosh
2024-09-17 23:38 ` Matthew Brost
2 siblings, 1 reply; 31+ messages in thread
From: Dixit, Ashutosh @ 2024-09-17 22:18 UTC (permalink / raw)
To: Matthew Brost; +Cc: intel-xe
On Fri, 30 Aug 2024 15:16:15 -0700, Ashutosh Dixit wrote:
>
Hi Matt,
> Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
> output fences in the xe_sync array. The fences are signaled
> asynchronously. When there are no output fences to signal, the OA
> configuration wait is synchronously re-introduced into the ioctl.
>
> v2: Don't wait in the work, use callback + delayed work (Matt B)
> Use a single, not a per-fence spinlock (Matt Brost)
Want to check with you about this "single, not per-fence spinlock" issue
below.
> v3: Move ofence alloc before job submission (Matt)
> Assert, don't fail, from dma_fence_add_callback (Matt)
> Additional dma_fence_get for dma_fence_wait (Matt)
> Change dma_fence_wait to non-interruptible (Matt)
> v4: Introduce last_fence to prevent uaf if stream is closed with
> pending OA config jobs
>
> Suggested-by: Matthew Brost <matthew.brost@intel.com>
> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
> Reviewed-by: Matthew Brost <matthew.brost@intel.com>
> ---
> drivers/gpu/drm/xe/xe_oa.c | 117 ++++++++++++++++++++++++++-----
> drivers/gpu/drm/xe/xe_oa_types.h | 6 ++
> 2 files changed, 106 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
> index b4b68019d35b7..56f95fd431bf9 100644
> --- a/drivers/gpu/drm/xe/xe_oa.c
> +++ b/drivers/gpu/drm/xe/xe_oa.c
> @@ -100,6 +100,15 @@ struct xe_oa_config_bo {
> struct xe_bb *bb;
> };
>
> +struct xe_oa_fence {
> + /* @base: dma fence base */
> + struct dma_fence base;
> + /* @work: work to signal @base */
> + struct delayed_work work;
> + /* @cb: callback to schedule @work */
> + struct dma_fence_cb cb;
> +};
> +
> #define DRM_FMT(x) DRM_XE_OA_FMT_TYPE_##x
>
> static const struct xe_oa_format oa_formats[] = {
> @@ -172,10 +181,10 @@ static struct xe_oa_config *xe_oa_get_oa_config(struct xe_oa *oa, int metrics_se
> return oa_config;
> }
>
> -static void free_oa_config_bo(struct xe_oa_config_bo *oa_bo)
> +static void free_oa_config_bo(struct xe_oa_config_bo *oa_bo, struct dma_fence *last_fence)
> {
> xe_oa_config_put(oa_bo->oa_config);
> - xe_bb_free(oa_bo->bb, NULL);
> + xe_bb_free(oa_bo->bb, last_fence);
> kfree(oa_bo);
> }
>
> @@ -648,7 +657,8 @@ static void xe_oa_free_configs(struct xe_oa_stream *stream)
>
> xe_oa_config_put(stream->oa_config);
> llist_for_each_entry_safe(oa_bo, tmp, stream->oa_config_bos.first, node)
> - free_oa_config_bo(oa_bo);
> + free_oa_config_bo(oa_bo, stream->last_fence);
> + dma_fence_put(stream->last_fence);
> }
>
> static void xe_oa_store_flex(struct xe_oa_stream *stream, struct xe_lrc *lrc,
> @@ -945,40 +955,112 @@ xe_oa_alloc_config_buffer(struct xe_oa_stream *stream, struct xe_oa_config *oa_c
> return oa_bo;
> }
>
> +static void xe_oa_update_last_fence(struct xe_oa_stream *stream, struct dma_fence *fence)
> +{
> + dma_fence_put(stream->last_fence);
> + stream->last_fence = dma_fence_get(fence);
> +}
> +
> +static void xe_oa_fence_work_fn(struct work_struct *w)
> +{
> + struct xe_oa_fence *ofence = container_of(w, typeof(*ofence), work.work);
> +
> + /* Signal fence to indicate new OA configuration is active */
> + dma_fence_signal(&ofence->base);
> + dma_fence_put(&ofence->base);
> +}
> +
> +static void xe_oa_config_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
> +{
> + /* Additional empirical delay needed for NOA programming after registers are written */
> +#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
> +
> + struct xe_oa_fence *ofence = container_of(cb, typeof(*ofence), cb);
> +
> + INIT_DELAYED_WORK(&ofence->work, xe_oa_fence_work_fn);
> + queue_delayed_work(system_unbound_wq, &ofence->work,
> + usecs_to_jiffies(NOA_PROGRAM_ADDITIONAL_DELAY_US));
> + dma_fence_put(fence);
> +}
> +
> +static const char *xe_oa_get_driver_name(struct dma_fence *fence)
> +{
> + return "xe_oa";
> +}
> +
> +static const char *xe_oa_get_timeline_name(struct dma_fence *fence)
> +{
> + return "unbound";
> +}
> +
> +static const struct dma_fence_ops xe_oa_fence_ops = {
> + .get_driver_name = xe_oa_get_driver_name,
> + .get_timeline_name = xe_oa_get_timeline_name,
> +};
> +
> static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config *config)
> {
> #define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
> struct xe_oa_config_bo *oa_bo;
> - int err = 0, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
> + struct xe_oa_fence *ofence;
> + int i, err, num_signal = 0;
> struct dma_fence *fence;
> - long timeout;
>
> - /* Emit OA configuration batch */
> + ofence = kzalloc(sizeof(*ofence), GFP_KERNEL);
> + if (!ofence) {
> + err = -ENOMEM;
> + goto exit;
> + }
> +
> oa_bo = xe_oa_alloc_config_buffer(stream, config);
> if (IS_ERR(oa_bo)) {
> err = PTR_ERR(oa_bo);
> goto exit;
> }
>
> + /* Emit OA configuration batch */
> fence = xe_oa_submit_bb(stream, XE_OA_SUBMIT_ADD_DEPS, oa_bo->bb);
> if (IS_ERR(fence)) {
> err = PTR_ERR(fence);
> goto exit;
> }
>
> - /* Wait till all previous batches have executed */
> - timeout = dma_fence_wait_timeout(fence, false, 5 * HZ);
> - dma_fence_put(fence);
> - if (timeout < 0)
> - err = timeout;
> - else if (!timeout)
> - err = -ETIME;
> - if (err)
> - drm_dbg(&stream->oa->xe->drm, "dma_fence_wait_timeout err %d\n", err);
> + /* Point of no return: initialize and set fence to signal */
> + dma_fence_init(&ofence->base, &xe_oa_fence_ops, &stream->oa_fence_lock, 0, 0);
About stream->oa_fence_lock. This was added in response to this comment
from you in v1 of this patch:
/* No per fence spin lock, global OA one for user_signal */
here:
https://patchwork.freedesktop.org/patch/607602/?series=137058&rev=1#comment_1104327
However, I just realized that, the way it is implemented, there is a uaf
here: lock memory can be freed before the lock is accessed in
dma_fence_signal() in xe_oa_fence_work_fn() (when the oa stream is
destroyed).
Of course we can implement some reference counting etc. to solve the uaf,
but the simplest way to solve it seems to be to go back to the per-fence
lock, unless doing so is incorrect? Looking at dma_fence_init calls, I do
see per fence locks being used occasionally (xe_preempt_fence, vgem_fence
etc.).
So just want to check with you if it's ok to go back to the per fence lock,
or we should solve it some other way.
Thanks.
--
Ashutosh
>
> - /* Additional empirical delay needed for NOA programming after registers are written */
> - usleep_range(us, 2 * us);
> + for (i = 0; i < stream->num_syncs; i++) {
> + if (stream->syncs[i].flags & DRM_XE_SYNC_FLAG_SIGNAL)
> + num_signal++;
> + xe_sync_entry_signal(&stream->syncs[i], &ofence->base);
> + }
> +
> + /* Additional dma_fence_get in case we dma_fence_wait */
> + if (!num_signal)
> + dma_fence_get(&ofence->base);
> +
> + /* Update last fence too before adding callback */
> + xe_oa_update_last_fence(stream, fence);
> +
> + /* Add job fence callback to schedule work to signal ofence->base */
> + err = dma_fence_add_callback(fence, &ofence->cb, xe_oa_config_cb);
> + xe_gt_assert(stream->gt, !err || err == -ENOENT);
> + if (err == -ENOENT)
> + xe_oa_config_cb(fence, &ofence->cb);
> +
> + /* If nothing needs to be signaled we wait synchronously */
> + if (!num_signal) {
> + dma_fence_wait(&ofence->base, false);
> + dma_fence_put(&ofence->base);
> + }
> +
> + /* Done with syncs */
> + for (i = 0; i < stream->num_syncs; i++)
> + xe_sync_entry_cleanup(&stream->syncs[i]);
> + kfree(stream->syncs);
> +
> + return 0;
> exit:
> + kfree(ofence);
> return err;
> }
>
> @@ -1479,6 +1561,7 @@ static int xe_oa_stream_init(struct xe_oa_stream *stream,
> goto err_free_oa_buf;
> }
>
> + spin_lock_init(&stream->oa_fence_lock);
> ret = xe_oa_enable_metric_set(stream);
> if (ret) {
> drm_dbg(&stream->oa->xe->drm, "Unable to enable metric set\n");
> diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
> index 99f4b2d4bdcf6..935f98772a948 100644
> --- a/drivers/gpu/drm/xe/xe_oa_types.h
> +++ b/drivers/gpu/drm/xe/xe_oa_types.h
> @@ -239,6 +239,12 @@ struct xe_oa_stream {
> /** @no_preempt: Whether preemption and timeslicing is disabled for stream exec_q */
> u32 no_preempt;
>
> + /** @last_fence: fence to use in stream destroy when needed */
> + struct dma_fence *last_fence;
> +
> + /** @oa_fence_lock: Lock for struct xe_oa_fence */
> + spinlock_t oa_fence_lock;
> +
> /** @num_syncs: size of @syncs array */
> u32 num_syncs;
>
> --
> 2.41.0
>
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH 4/7] drm/xe/oa: Signal output fences
2024-09-17 22:18 ` Dixit, Ashutosh
@ 2024-09-17 23:38 ` Matthew Brost
2024-09-18 19:59 ` Dixit, Ashutosh
0 siblings, 1 reply; 31+ messages in thread
From: Matthew Brost @ 2024-09-17 23:38 UTC (permalink / raw)
To: Dixit, Ashutosh; +Cc: intel-xe
On Tue, Sep 17, 2024 at 03:18:03PM -0700, Dixit, Ashutosh wrote:
> On Fri, 30 Aug 2024 15:16:15 -0700, Ashutosh Dixit wrote:
> >
>
> Hi Matt,
>
> > Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
> > output fences in the xe_sync array. The fences are signaled
> > asynchronously. When there are no output fences to signal, the OA
> > configuration wait is synchronously re-introduced into the ioctl.
> >
> > v2: Don't wait in the work, use callback + delayed work (Matt B)
> > Use a single, not a per-fence spinlock (Matt Brost)
>
> Want to check with you about this "single, not per-fence spinlock" issue
> below.
>
> > v3: Move ofence alloc before job submission (Matt)
> > Assert, don't fail, from dma_fence_add_callback (Matt)
> > Additional dma_fence_get for dma_fence_wait (Matt)
> > Change dma_fence_wait to non-interruptible (Matt)
> > v4: Introduce last_fence to prevent uaf if stream is closed with
> > pending OA config jobs
> >
> > Suggested-by: Matthew Brost <matthew.brost@intel.com>
> > Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> > Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
> > Reviewed-by: Matthew Brost <matthew.brost@intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_oa.c | 117 ++++++++++++++++++++++++++-----
> > drivers/gpu/drm/xe/xe_oa_types.h | 6 ++
> > 2 files changed, 106 insertions(+), 17 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
> > index b4b68019d35b7..56f95fd431bf9 100644
> > --- a/drivers/gpu/drm/xe/xe_oa.c
> > +++ b/drivers/gpu/drm/xe/xe_oa.c
> > @@ -100,6 +100,15 @@ struct xe_oa_config_bo {
> > struct xe_bb *bb;
> > };
> >
> > +struct xe_oa_fence {
> > + /* @base: dma fence base */
> > + struct dma_fence base;
> > + /* @work: work to signal @base */
> > + struct delayed_work work;
> > + /* @cb: callback to schedule @work */
> > + struct dma_fence_cb cb;
> > +};
> > +
> > #define DRM_FMT(x) DRM_XE_OA_FMT_TYPE_##x
> >
> > static const struct xe_oa_format oa_formats[] = {
> > @@ -172,10 +181,10 @@ static struct xe_oa_config *xe_oa_get_oa_config(struct xe_oa *oa, int metrics_se
> > return oa_config;
> > }
> >
> > -static void free_oa_config_bo(struct xe_oa_config_bo *oa_bo)
> > +static void free_oa_config_bo(struct xe_oa_config_bo *oa_bo, struct dma_fence *last_fence)
> > {
> > xe_oa_config_put(oa_bo->oa_config);
> > - xe_bb_free(oa_bo->bb, NULL);
> > + xe_bb_free(oa_bo->bb, last_fence);
> > kfree(oa_bo);
> > }
> >
> > @@ -648,7 +657,8 @@ static void xe_oa_free_configs(struct xe_oa_stream *stream)
> >
> > xe_oa_config_put(stream->oa_config);
> > llist_for_each_entry_safe(oa_bo, tmp, stream->oa_config_bos.first, node)
> > - free_oa_config_bo(oa_bo);
> > + free_oa_config_bo(oa_bo, stream->last_fence);
> > + dma_fence_put(stream->last_fence);
> > }
> >
> > static void xe_oa_store_flex(struct xe_oa_stream *stream, struct xe_lrc *lrc,
> > @@ -945,40 +955,112 @@ xe_oa_alloc_config_buffer(struct xe_oa_stream *stream, struct xe_oa_config *oa_c
> > return oa_bo;
> > }
> >
> > +static void xe_oa_update_last_fence(struct xe_oa_stream *stream, struct dma_fence *fence)
> > +{
> > + dma_fence_put(stream->last_fence);
> > + stream->last_fence = dma_fence_get(fence);
> > +}
> > +
> > +static void xe_oa_fence_work_fn(struct work_struct *w)
> > +{
> > + struct xe_oa_fence *ofence = container_of(w, typeof(*ofence), work.work);
> > +
> > + /* Signal fence to indicate new OA configuration is active */
> > + dma_fence_signal(&ofence->base);
> > + dma_fence_put(&ofence->base);
> > +}
> > +
> > +static void xe_oa_config_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
> > +{
> > + /* Additional empirical delay needed for NOA programming after registers are written */
> > +#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
> > +
> > + struct xe_oa_fence *ofence = container_of(cb, typeof(*ofence), cb);
> > +
> > + INIT_DELAYED_WORK(&ofence->work, xe_oa_fence_work_fn);
> > + queue_delayed_work(system_unbound_wq, &ofence->work,
> > + usecs_to_jiffies(NOA_PROGRAM_ADDITIONAL_DELAY_US));
> > + dma_fence_put(fence);
> > +}
> > +
> > +static const char *xe_oa_get_driver_name(struct dma_fence *fence)
> > +{
> > + return "xe_oa";
> > +}
> > +
> > +static const char *xe_oa_get_timeline_name(struct dma_fence *fence)
> > +{
> > + return "unbound";
> > +}
> > +
> > +static const struct dma_fence_ops xe_oa_fence_ops = {
> > + .get_driver_name = xe_oa_get_driver_name,
> > + .get_timeline_name = xe_oa_get_timeline_name,
> > +};
> > +
> > static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config *config)
> > {
> > #define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
> > struct xe_oa_config_bo *oa_bo;
> > - int err = 0, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
> > + struct xe_oa_fence *ofence;
> > + int i, err, num_signal = 0;
> > struct dma_fence *fence;
> > - long timeout;
> >
> > - /* Emit OA configuration batch */
> > + ofence = kzalloc(sizeof(*ofence), GFP_KERNEL);
> > + if (!ofence) {
> > + err = -ENOMEM;
> > + goto exit;
> > + }
> > +
> > oa_bo = xe_oa_alloc_config_buffer(stream, config);
> > if (IS_ERR(oa_bo)) {
> > err = PTR_ERR(oa_bo);
> > goto exit;
> > }
> >
> > + /* Emit OA configuration batch */
> > fence = xe_oa_submit_bb(stream, XE_OA_SUBMIT_ADD_DEPS, oa_bo->bb);
> > if (IS_ERR(fence)) {
> > err = PTR_ERR(fence);
> > goto exit;
> > }
> >
> > - /* Wait till all previous batches have executed */
> > - timeout = dma_fence_wait_timeout(fence, false, 5 * HZ);
> > - dma_fence_put(fence);
> > - if (timeout < 0)
> > - err = timeout;
> > - else if (!timeout)
> > - err = -ETIME;
> > - if (err)
> > - drm_dbg(&stream->oa->xe->drm, "dma_fence_wait_timeout err %d\n", err);
> > + /* Point of no return: initialize and set fence to signal */
> > + dma_fence_init(&ofence->base, &xe_oa_fence_ops, &stream->oa_fence_lock, 0, 0);
>
> About stream->oa_fence_lock. This was added in response to this comment
> from you in v1 of this patch:
>
> /* No per fence spin lock, global OA one for user_signal */
>
> here:
> https://patchwork.freedesktop.org/patch/607602/?series=137058&rev=1#comment_1104327
>
> However, I just realized that, the way it is implemented, there is a uaf
> here: lock memory can be freed before the lock is accessed in
> dma_fence_signal() in xe_oa_fence_work_fn() (when the oa stream is
> destroyed).
>
> Of course we can implement some reference counting etc. to solve the uaf,
> but the simplest way to solve it seems to be to go back to the per-fence
> lock, unless doing so is incorrect? Looking at dma_fence_init calls, I do
> see per fence locks being used occasionally (xe_preempt_fence, vgem_fence
> etc.).
>
> So just want to check with you if it's ok to go back to the per fence lock,
> or we should solve it some other way.
>
Yea my bad on that suggestion. That is an issue, just move the lock back
to the fence.
Matt
> Thanks.
> --
> Ashutosh
>
> >
> > - /* Additional empirical delay needed for NOA programming after registers are written */
> > - usleep_range(us, 2 * us);
> > + for (i = 0; i < stream->num_syncs; i++) {
> > + if (stream->syncs[i].flags & DRM_XE_SYNC_FLAG_SIGNAL)
> > + num_signal++;
> > + xe_sync_entry_signal(&stream->syncs[i], &ofence->base);
> > + }
> > +
> > + /* Additional dma_fence_get in case we dma_fence_wait */
> > + if (!num_signal)
> > + dma_fence_get(&ofence->base);
> > +
> > + /* Update last fence too before adding callback */
> > + xe_oa_update_last_fence(stream, fence);
> > +
> > + /* Add job fence callback to schedule work to signal ofence->base */
> > + err = dma_fence_add_callback(fence, &ofence->cb, xe_oa_config_cb);
> > + xe_gt_assert(stream->gt, !err || err == -ENOENT);
> > + if (err == -ENOENT)
> > + xe_oa_config_cb(fence, &ofence->cb);
> > +
> > + /* If nothing needs to be signaled we wait synchronously */
> > + if (!num_signal) {
> > + dma_fence_wait(&ofence->base, false);
> > + dma_fence_put(&ofence->base);
> > + }
> > +
> > + /* Done with syncs */
> > + for (i = 0; i < stream->num_syncs; i++)
> > + xe_sync_entry_cleanup(&stream->syncs[i]);
> > + kfree(stream->syncs);
> > +
> > + return 0;
> > exit:
> > + kfree(ofence);
> > return err;
> > }
> >
> > @@ -1479,6 +1561,7 @@ static int xe_oa_stream_init(struct xe_oa_stream *stream,
> > goto err_free_oa_buf;
> > }
> >
> > + spin_lock_init(&stream->oa_fence_lock);
> > ret = xe_oa_enable_metric_set(stream);
> > if (ret) {
> > drm_dbg(&stream->oa->xe->drm, "Unable to enable metric set\n");
> > diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
> > index 99f4b2d4bdcf6..935f98772a948 100644
> > --- a/drivers/gpu/drm/xe/xe_oa_types.h
> > +++ b/drivers/gpu/drm/xe/xe_oa_types.h
> > @@ -239,6 +239,12 @@ struct xe_oa_stream {
> > /** @no_preempt: Whether preemption and timeslicing is disabled for stream exec_q */
> > u32 no_preempt;
> >
> > + /** @last_fence: fence to use in stream destroy when needed */
> > + struct dma_fence *last_fence;
> > +
> > + /** @oa_fence_lock: Lock for struct xe_oa_fence */
> > + spinlock_t oa_fence_lock;
> > +
> > /** @num_syncs: size of @syncs array */
> > u32 num_syncs;
> >
> > --
> > 2.41.0
> >
^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH 4/7] drm/xe/oa: Signal output fences
2024-09-18 19:53 [PATCH v6 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
@ 2024-09-18 19:53 ` Ashutosh Dixit
0 siblings, 0 replies; 31+ messages in thread
From: Ashutosh Dixit @ 2024-09-18 19:53 UTC (permalink / raw)
To: intel-xe
Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
output fences in the xe_sync array. The fences are signaled
asynchronously. When there are no output fences to signal, the OA
configuration wait is synchronously re-introduced into the ioctl.
v2: Don't wait in the work, use callback + delayed work (Matt B)
Use a single, not a per-fence spinlock (Matt Brost)
v3: Move ofence alloc before job submission (Matt)
Assert, don't fail, from dma_fence_add_callback (Matt)
Additional dma_fence_get for dma_fence_wait (Matt)
Change dma_fence_wait to non-interruptible (Matt)
v4: Introduce last_fence to prevent uaf if stream is closed with
pending OA config jobs
v5: Remove oa_fence_lock, move spinlock back into xe_oa_fence to
prevent uaf
Suggested-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_oa.c | 119 ++++++++++++++++++++++++++-----
drivers/gpu/drm/xe/xe_oa_types.h | 3 +
2 files changed, 105 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index c72cc7b0451a2..6aee2ba454ad1 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -100,6 +100,17 @@ struct xe_oa_config_bo {
struct xe_bb *bb;
};
+struct xe_oa_fence {
+ /* @base: dma fence base */
+ struct dma_fence base;
+ /* @lock: lock for the fence */
+ spinlock_t lock;
+ /* @work: work to signal @base */
+ struct delayed_work work;
+ /* @cb: callback to schedule @work */
+ struct dma_fence_cb cb;
+};
+
#define DRM_FMT(x) DRM_XE_OA_FMT_TYPE_##x
static const struct xe_oa_format oa_formats[] = {
@@ -172,10 +183,10 @@ static struct xe_oa_config *xe_oa_get_oa_config(struct xe_oa *oa, int metrics_se
return oa_config;
}
-static void free_oa_config_bo(struct xe_oa_config_bo *oa_bo)
+static void free_oa_config_bo(struct xe_oa_config_bo *oa_bo, struct dma_fence *last_fence)
{
xe_oa_config_put(oa_bo->oa_config);
- xe_bb_free(oa_bo->bb, NULL);
+ xe_bb_free(oa_bo->bb, last_fence);
kfree(oa_bo);
}
@@ -655,7 +666,8 @@ static void xe_oa_free_configs(struct xe_oa_stream *stream)
xe_oa_config_put(stream->oa_config);
llist_for_each_entry_safe(oa_bo, tmp, stream->oa_config_bos.first, node)
- free_oa_config_bo(oa_bo);
+ free_oa_config_bo(oa_bo, stream->last_fence);
+ dma_fence_put(stream->last_fence);
}
static void xe_oa_store_flex(struct xe_oa_stream *stream, struct xe_lrc *lrc,
@@ -954,40 +966,113 @@ xe_oa_alloc_config_buffer(struct xe_oa_stream *stream, struct xe_oa_config *oa_c
return oa_bo;
}
+static void xe_oa_update_last_fence(struct xe_oa_stream *stream, struct dma_fence *fence)
+{
+ dma_fence_put(stream->last_fence);
+ stream->last_fence = dma_fence_get(fence);
+}
+
+static void xe_oa_fence_work_fn(struct work_struct *w)
+{
+ struct xe_oa_fence *ofence = container_of(w, typeof(*ofence), work.work);
+
+ /* Signal fence to indicate new OA configuration is active */
+ dma_fence_signal(&ofence->base);
+ dma_fence_put(&ofence->base);
+}
+
+static void xe_oa_config_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
+{
+ /* Additional empirical delay needed for NOA programming after registers are written */
+#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
+
+ struct xe_oa_fence *ofence = container_of(cb, typeof(*ofence), cb);
+
+ INIT_DELAYED_WORK(&ofence->work, xe_oa_fence_work_fn);
+ queue_delayed_work(system_unbound_wq, &ofence->work,
+ usecs_to_jiffies(NOA_PROGRAM_ADDITIONAL_DELAY_US));
+ dma_fence_put(fence);
+}
+
+static const char *xe_oa_get_driver_name(struct dma_fence *fence)
+{
+ return "xe_oa";
+}
+
+static const char *xe_oa_get_timeline_name(struct dma_fence *fence)
+{
+ return "unbound";
+}
+
+static const struct dma_fence_ops xe_oa_fence_ops = {
+ .get_driver_name = xe_oa_get_driver_name,
+ .get_timeline_name = xe_oa_get_timeline_name,
+};
+
static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config *config)
{
#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
struct xe_oa_config_bo *oa_bo;
- int err = 0, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
+ struct xe_oa_fence *ofence;
+ int i, err, num_signal = 0;
struct dma_fence *fence;
- long timeout;
- /* Emit OA configuration batch */
+ ofence = kzalloc(sizeof(*ofence), GFP_KERNEL);
+ if (!ofence) {
+ err = -ENOMEM;
+ goto exit;
+ }
+
oa_bo = xe_oa_alloc_config_buffer(stream, config);
if (IS_ERR(oa_bo)) {
err = PTR_ERR(oa_bo);
goto exit;
}
+ /* Emit OA configuration batch */
fence = xe_oa_submit_bb(stream, XE_OA_SUBMIT_ADD_DEPS, oa_bo->bb);
if (IS_ERR(fence)) {
err = PTR_ERR(fence);
goto exit;
}
- /* Wait till all previous batches have executed */
- timeout = dma_fence_wait_timeout(fence, false, 5 * HZ);
- dma_fence_put(fence);
- if (timeout < 0)
- err = timeout;
- else if (!timeout)
- err = -ETIME;
- if (err)
- drm_dbg(&stream->oa->xe->drm, "dma_fence_wait_timeout err %d\n", err);
+ /* Point of no return: initialize and set fence to signal */
+ spin_lock_init(&ofence->lock);
+ dma_fence_init(&ofence->base, &xe_oa_fence_ops, &ofence->lock, 0, 0);
- /* Additional empirical delay needed for NOA programming after registers are written */
- usleep_range(us, 2 * us);
+ for (i = 0; i < stream->num_syncs; i++) {
+ if (stream->syncs[i].flags & DRM_XE_SYNC_FLAG_SIGNAL)
+ num_signal++;
+ xe_sync_entry_signal(&stream->syncs[i], &ofence->base);
+ }
+
+ /* Additional dma_fence_get in case we dma_fence_wait */
+ if (!num_signal)
+ dma_fence_get(&ofence->base);
+
+ /* Update last fence too before adding callback */
+ xe_oa_update_last_fence(stream, fence);
+
+ /* Add job fence callback to schedule work to signal ofence->base */
+ err = dma_fence_add_callback(fence, &ofence->cb, xe_oa_config_cb);
+ xe_gt_assert(stream->gt, !err || err == -ENOENT);
+ if (err == -ENOENT)
+ xe_oa_config_cb(fence, &ofence->cb);
+
+ /* If nothing needs to be signaled we wait synchronously */
+ if (!num_signal) {
+ dma_fence_wait(&ofence->base, false);
+ dma_fence_put(&ofence->base);
+ }
+
+ /* Done with syncs */
+ for (i = 0; i < stream->num_syncs; i++)
+ xe_sync_entry_cleanup(&stream->syncs[i]);
+ kfree(stream->syncs);
+
+ return 0;
exit:
+ kfree(ofence);
return err;
}
diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
index 99f4b2d4bdcf6..c8e0df13faf83 100644
--- a/drivers/gpu/drm/xe/xe_oa_types.h
+++ b/drivers/gpu/drm/xe/xe_oa_types.h
@@ -239,6 +239,9 @@ struct xe_oa_stream {
/** @no_preempt: Whether preemption and timeslicing is disabled for stream exec_q */
u32 no_preempt;
+ /** @last_fence: fence to use in stream destroy when needed */
+ struct dma_fence *last_fence;
+
/** @num_syncs: size of @syncs array */
u32 num_syncs;
--
2.41.0
^ permalink raw reply related [flat|nested] 31+ messages in thread
* Re: [PATCH 4/7] drm/xe/oa: Signal output fences
2024-09-17 23:38 ` Matthew Brost
@ 2024-09-18 19:59 ` Dixit, Ashutosh
0 siblings, 0 replies; 31+ messages in thread
From: Dixit, Ashutosh @ 2024-09-18 19:59 UTC (permalink / raw)
To: Matthew Brost; +Cc: intel-xe
On Tue, 17 Sep 2024 16:38:43 -0700, Matthew Brost wrote:
>
> > > + dma_fence_init(&ofence->base, &xe_oa_fence_ops, &stream->oa_fence_lock, 0, 0);
> >
> > About stream->oa_fence_lock. This was added in response to this comment
> > from you in v1 of this patch:
> >
> > /* No per fence spin lock, global OA one for user_signal */
> >
> > here:
> > https://patchwork.freedesktop.org/patch/607602/?series=137058&rev=1#comment_1104327
> >
> > However, I just realized that, the way it is implemented, there is a uaf
> > here: lock memory can be freed before the lock is accessed in
> > dma_fence_signal() in xe_oa_fence_work_fn() (when the oa stream is
> > destroyed).
> >
> > Of course we can implement some reference counting etc. to solve the uaf,
> > but the simplest way to solve it seems to be to go back to the per-fence
> > lock, unless doing so is incorrect? Looking at dma_fence_init calls, I do
> > see per fence locks being used occasionally (xe_preempt_fence, vgem_fence
> > etc.).
> >
> > So just want to check with you if it's ok to go back to the per fence lock,
> > or we should solve it some other way.
> >
>
> Yea my bad on that suggestion. That is an issue, just move the lock back
> to the fence.
No problem, thanks, I've moved the lock back into the fence in the latest
version.
Ashutosh
^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH 4/7] drm/xe/oa: Signal output fences
2024-10-22 20:03 [PATCH v7 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
@ 2024-10-22 20:03 ` Ashutosh Dixit
0 siblings, 0 replies; 31+ messages in thread
From: Ashutosh Dixit @ 2024-10-22 20:03 UTC (permalink / raw)
To: intel-xe
Introduce 'struct xe_oa_fence' which includes the dma_fence used to signal
output fences in the xe_sync array. The fences are signaled
asynchronously. When there are no output fences to signal, the OA
configuration wait is synchronously re-introduced into the ioctl.
v2: Don't wait in the work, use callback + delayed work (Matt B)
Use a single, not a per-fence spinlock (Matt Brost)
v3: Move ofence alloc before job submission (Matt)
Assert, don't fail, from dma_fence_add_callback (Matt)
Additional dma_fence_get for dma_fence_wait (Matt)
Change dma_fence_wait to non-interruptible (Matt)
v4: Introduce last_fence to prevent uaf if stream is closed with
pending OA config jobs
v5: Remove oa_fence_lock, move spinlock back into xe_oa_fence to
prevent uaf
Suggested-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
drivers/gpu/drm/xe/xe_oa.c | 119 ++++++++++++++++++++++++++-----
drivers/gpu/drm/xe/xe_oa_types.h | 3 +
2 files changed, 105 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index 380ee1e632510..25558535076a6 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -100,6 +100,17 @@ struct xe_oa_config_bo {
struct xe_bb *bb;
};
+struct xe_oa_fence {
+ /* @base: dma fence base */
+ struct dma_fence base;
+ /* @lock: lock for the fence */
+ spinlock_t lock;
+ /* @work: work to signal @base */
+ struct delayed_work work;
+ /* @cb: callback to schedule @work */
+ struct dma_fence_cb cb;
+};
+
#define DRM_FMT(x) DRM_XE_OA_FMT_TYPE_##x
static const struct xe_oa_format oa_formats[] = {
@@ -172,10 +183,10 @@ static struct xe_oa_config *xe_oa_get_oa_config(struct xe_oa *oa, int metrics_se
return oa_config;
}
-static void free_oa_config_bo(struct xe_oa_config_bo *oa_bo)
+static void free_oa_config_bo(struct xe_oa_config_bo *oa_bo, struct dma_fence *last_fence)
{
xe_oa_config_put(oa_bo->oa_config);
- xe_bb_free(oa_bo->bb, NULL);
+ xe_bb_free(oa_bo->bb, last_fence);
kfree(oa_bo);
}
@@ -655,7 +666,8 @@ static void xe_oa_free_configs(struct xe_oa_stream *stream)
xe_oa_config_put(stream->oa_config);
llist_for_each_entry_safe(oa_bo, tmp, stream->oa_config_bos.first, node)
- free_oa_config_bo(oa_bo);
+ free_oa_config_bo(oa_bo, stream->last_fence);
+ dma_fence_put(stream->last_fence);
}
static void xe_oa_store_flex(struct xe_oa_stream *stream, struct xe_lrc *lrc,
@@ -951,40 +963,113 @@ xe_oa_alloc_config_buffer(struct xe_oa_stream *stream, struct xe_oa_config *oa_c
return oa_bo;
}
+static void xe_oa_update_last_fence(struct xe_oa_stream *stream, struct dma_fence *fence)
+{
+ dma_fence_put(stream->last_fence);
+ stream->last_fence = dma_fence_get(fence);
+}
+
+static void xe_oa_fence_work_fn(struct work_struct *w)
+{
+ struct xe_oa_fence *ofence = container_of(w, typeof(*ofence), work.work);
+
+ /* Signal fence to indicate new OA configuration is active */
+ dma_fence_signal(&ofence->base);
+ dma_fence_put(&ofence->base);
+}
+
+static void xe_oa_config_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
+{
+ /* Additional empirical delay needed for NOA programming after registers are written */
+#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
+
+ struct xe_oa_fence *ofence = container_of(cb, typeof(*ofence), cb);
+
+ INIT_DELAYED_WORK(&ofence->work, xe_oa_fence_work_fn);
+ queue_delayed_work(system_unbound_wq, &ofence->work,
+ usecs_to_jiffies(NOA_PROGRAM_ADDITIONAL_DELAY_US));
+ dma_fence_put(fence);
+}
+
+static const char *xe_oa_get_driver_name(struct dma_fence *fence)
+{
+ return "xe_oa";
+}
+
+static const char *xe_oa_get_timeline_name(struct dma_fence *fence)
+{
+ return "unbound";
+}
+
+static const struct dma_fence_ops xe_oa_fence_ops = {
+ .get_driver_name = xe_oa_get_driver_name,
+ .get_timeline_name = xe_oa_get_timeline_name,
+};
+
static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config *config)
{
#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
struct xe_oa_config_bo *oa_bo;
- int err = 0, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
+ struct xe_oa_fence *ofence;
+ int i, err, num_signal = 0;
struct dma_fence *fence;
- long timeout;
- /* Emit OA configuration batch */
+ ofence = kzalloc(sizeof(*ofence), GFP_KERNEL);
+ if (!ofence) {
+ err = -ENOMEM;
+ goto exit;
+ }
+
oa_bo = xe_oa_alloc_config_buffer(stream, config);
if (IS_ERR(oa_bo)) {
err = PTR_ERR(oa_bo);
goto exit;
}
+ /* Emit OA configuration batch */
fence = xe_oa_submit_bb(stream, XE_OA_SUBMIT_ADD_DEPS, oa_bo->bb);
if (IS_ERR(fence)) {
err = PTR_ERR(fence);
goto exit;
}
- /* Wait till all previous batches have executed */
- timeout = dma_fence_wait_timeout(fence, false, 5 * HZ);
- dma_fence_put(fence);
- if (timeout < 0)
- err = timeout;
- else if (!timeout)
- err = -ETIME;
- if (err)
- drm_dbg(&stream->oa->xe->drm, "dma_fence_wait_timeout err %d\n", err);
+ /* Point of no return: initialize and set fence to signal */
+ spin_lock_init(&ofence->lock);
+ dma_fence_init(&ofence->base, &xe_oa_fence_ops, &ofence->lock, 0, 0);
- /* Additional empirical delay needed for NOA programming after registers are written */
- usleep_range(us, 2 * us);
+ for (i = 0; i < stream->num_syncs; i++) {
+ if (stream->syncs[i].flags & DRM_XE_SYNC_FLAG_SIGNAL)
+ num_signal++;
+ xe_sync_entry_signal(&stream->syncs[i], &ofence->base);
+ }
+
+ /* Additional dma_fence_get in case we dma_fence_wait */
+ if (!num_signal)
+ dma_fence_get(&ofence->base);
+
+ /* Update last fence too before adding callback */
+ xe_oa_update_last_fence(stream, fence);
+
+ /* Add job fence callback to schedule work to signal ofence->base */
+ err = dma_fence_add_callback(fence, &ofence->cb, xe_oa_config_cb);
+ xe_gt_assert(stream->gt, !err || err == -ENOENT);
+ if (err == -ENOENT)
+ xe_oa_config_cb(fence, &ofence->cb);
+
+ /* If nothing needs to be signaled we wait synchronously */
+ if (!num_signal) {
+ dma_fence_wait(&ofence->base, false);
+ dma_fence_put(&ofence->base);
+ }
+
+ /* Done with syncs */
+ for (i = 0; i < stream->num_syncs; i++)
+ xe_sync_entry_cleanup(&stream->syncs[i]);
+ kfree(stream->syncs);
+
+ return 0;
exit:
+ kfree(ofence);
return err;
}
diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
index 99f4b2d4bdcf6..c8e0df13faf83 100644
--- a/drivers/gpu/drm/xe/xe_oa_types.h
+++ b/drivers/gpu/drm/xe/xe_oa_types.h
@@ -239,6 +239,9 @@ struct xe_oa_stream {
/** @no_preempt: Whether preemption and timeslicing is disabled for stream exec_q */
u32 no_preempt;
+ /** @last_fence: fence to use in stream destroy when needed */
+ struct dma_fence *last_fence;
+
/** @num_syncs: size of @syncs array */
u32 num_syncs;
--
2.41.0
^ permalink raw reply related [flat|nested] 31+ messages in thread
end of thread, other threads:[~2024-10-22 20:04 UTC | newest]
Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-28 1:50 [PATCH v4 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 1/7] drm/xe/oa: Separate batch submission from waiting for completion Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 2/7] drm/xe/oa/uapi: Define and parse OA sync properties Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 3/7] drm/xe/oa: Add input fence dependencies Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 4/7] drm/xe/oa: Signal output fences Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 5/7] drm/xe/oa: Move functions up so they can be reused for config ioctl Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 6/7] drm/xe/oa: Add syncs support to OA " Ashutosh Dixit
2024-08-28 1:50 ` [PATCH 7/7] drm/xe/oa: Allow only certain property changes from config Ashutosh Dixit
2024-08-28 1:56 ` ✓ CI.Patch_applied: success for drm/xe/oa: xe_syncs for OA (rev4) Patchwork
2024-08-28 1:57 ` ✓ CI.checkpatch: " Patchwork
2024-08-28 1:58 ` ✓ CI.KUnit: " Patchwork
2024-08-28 2:10 ` ✓ CI.Build: " Patchwork
2024-08-28 2:12 ` ✓ CI.Hooks: " Patchwork
2024-08-28 2:14 ` ✓ CI.checksparse: " Patchwork
2024-08-28 2:33 ` ✓ CI.BAT: " Patchwork
2024-08-28 10:52 ` ✗ CI.FULL: failure " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2024-10-22 20:03 [PATCH v7 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
2024-10-22 20:03 ` [PATCH 4/7] drm/xe/oa: Signal output fences Ashutosh Dixit
2024-09-18 19:53 [PATCH v6 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
2024-09-18 19:53 ` [PATCH 4/7] drm/xe/oa: Signal output fences Ashutosh Dixit
2024-08-30 22:16 [PATCH v5 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
2024-08-30 22:16 ` [PATCH 4/7] drm/xe/oa: Signal output fences Ashutosh Dixit
2024-08-30 22:15 ` Dixit, Ashutosh
2024-08-30 22:45 ` Matthew Brost
2024-08-30 22:58 ` Dixit, Ashutosh
2024-09-17 22:18 ` Dixit, Ashutosh
2024-09-17 23:38 ` Matthew Brost
2024-09-18 19:59 ` Dixit, Ashutosh
2024-08-21 15:28 [PATCH v3 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
2024-08-21 15:28 ` [PATCH 4/7] drm/xe/oa: Signal output fences Ashutosh Dixit
2024-08-21 15:49 ` Matthew Brost
2024-08-20 0:58 [PATCH v2 0/7] drm/xe/oa: xe_syncs for OA Ashutosh Dixit
2024-08-20 0:58 ` [PATCH 4/7] drm/xe/oa: Signal output fences Ashutosh Dixit
2024-08-20 19:23 ` Matthew Brost
2024-08-21 15:20 ` Dixit, Ashutosh
2024-08-21 16:02 ` Matthew Brost
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox