Hi Nirmoy,

On Wed, Nov 02, 2022 at 04:57:09PM +0100, Nirmoy Das wrote:
> From: Chris Wilson <[email protected]>
> 
> The goal in launching the request smoketest is to have sufficient tasks
> running across the system such that we are likely to detect concurrency
> issues. We aim to have 2 tasks using the same engine, gt, device (each
> level of locking around submission and signaling) running at the same
> time. While tasks may not be running all the time as they synchronise
> with the gpu, they will be running most of the time, in which case
> having many more tasks than cores available is wasteful (and
> dramatically increases the workload causing excess runtime). Aim to
> limit the number of tasks such that there is at least 2 running per
> engine, spreading surplus cores around the engines (rather than running
> a task per core per engine.)
> 
> Signed-off-by: Chris Wilson <[email protected]>

Pushed in intel-drm-gt-next.

Thanks,
Andi

> ---
>  drivers/gpu/drm/i915/selftests/i915_request.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/selftests/i915_request.c 
> b/drivers/gpu/drm/i915/selftests/i915_request.c
> index a46350c37e9d..4380473ceb98 100644
> --- a/drivers/gpu/drm/i915/selftests/i915_request.c
> +++ b/drivers/gpu/drm/i915/selftests/i915_request.c
> @@ -1710,7 +1710,8 @@ static int live_breadcrumbs_smoketest(void *arg)
>  {
>       struct drm_i915_private *i915 = arg;
>       const unsigned int nengines = num_uabi_engines(i915);
> -     const unsigned int ncpus = num_online_cpus();
> +     const unsigned int ncpus = /* saturate with nengines * ncpus */
> +             max_t(int, 2, DIV_ROUND_UP(num_online_cpus(), nengines));
>       unsigned long num_waits, num_fences;
>       struct intel_engine_cs *engine;
>       struct smoke_thread *threads;
> @@ -1782,7 +1783,7 @@ static int live_breadcrumbs_smoketest(void *arg)
>                       goto out_flush;
>               }
>               /* One ring interleaved between requests from all cpus */
> -             smoke[idx].max_batch /= num_online_cpus() + 1;
> +             smoke[idx].max_batch /= ncpus + 1;
>               pr_debug("Limiting batches to %d requests on %s\n",
>                        smoke[idx].max_batch, engine->name);
>  
> -- 
> 2.38.0

Reply via email to