On 23/11/2017 12:50, Chris Wilson wrote:
Quoting Tvrtko Ursulin (2017-11-23 12:34:32)
From: Tvrtko Ursulin <[email protected]>

We do two things, both of which are purely to simplify and clarify the
implementation:

1.

Simplify the CPU online callback so it is more obvious that the purpose
there is to set a single CPU mask bit for the first CPU which comes
online. Using cpumask_weight for this reads more obvious than the trick
with cpumask_and_any.

2.

Modify the event init so that events can be created only on a single CPU.

This removes looking at the requested CPU thread siblings, and only allows
creating on the current active CPU.

Signed-off-by: Tvrtko Ursulin <[email protected]>
Cc: Chris Wilson <[email protected]>
Cc: Dmitry Rogozhkin <[email protected]>

Works for me.
Tested-by: Chris Wilson <[email protected]>

As much as I understand this (which is not a lot!),
Reviewed-by: Chris Wilson <[email protected]>

Thanks, now waiting for results!

Your patch (1/2) is the main fix here, without it the cpumask is not initialized on !hotplug kernels hence -ENODEV on everything.

This patch is mostly making the code more obvious. I am not sure that the addition of rejecting thread siblings actually changes anything. Perf stat at least seems to only try to init one event per real core and seems to be skipping thread siblings. So it just makes it more obvious we really want to only run on a single CPU.

Regards,

Tvrtko
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to