Hi Tvrtko,
On Mon, Feb 19, 2024 at 12:51:44PM +0000, Tvrtko Ursulin wrote:
On 19/02/2024 11:16, Tvrtko Ursulin wrote:
On 15/02/2024 13:59, Andi Shyti wrote:
...
+/*
- Exclude unavailable engines.
- Only the first CCS engine is utilized due to the disabling of
CCS auto load
- balancing. As a result, all CCS engines operate collectively,
functioning
- essentially as a single CCS engine, hence the count of active
CCS engines is
- considered '1'.
- Currently, this applies to platforms with more than one CCS engine,
- specifically DG2.
- */
+#define for_each_available_uabi_engine(engine__, i915__) \ + for_each_uabi_engine(engine__, i915__) \ + if ((IS_DG2(i915__)) && \ + ((engine__)->uabi_class == I915_ENGINE_CLASS_COMPUTE) && \ + ((engine__)->uabi_instance)) { } \ + else
If you don't want userspace to see some engines, just don't add them to the uabi list in intel_engines_driver_register or thereabouts?
It will be dynamic. In next series I am preparing the user will be able to increase the number of CCS engines he wants to use.
Similar as we do for gsc which uses I915_NO_UABI_CLASS, although for ccs you can choose a different approach, whatever is more elegant.
That is also needed for i915->engine_uabi_class_count to be right, so userspace stats which rely on it are correct.
Oh yes. Will update it.
I later realized it is more than that - everything that uses intel_engine_lookup_user to look up class instance passed in from userspace relies on the engine not being on the user list otherwise userspace could bypass the fact engine query does not list it. Like PMU, Perf/POA, context engine map and SSEU context query.
Correct, will look into that, thank you!
Andi