From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: References: <76818a8047c4b9da76d0619c7b8f58c89449b4ed.1579731227.git.dale.b.stimson@intel.com> <225f88d1044053674cbd632998c69c0c677a530e.1579731227.git.dale.b.stimson@intel.com> <157977054018.18920.9879323586181021015@skylake-alporthouse-com> From: Tvrtko Ursulin Message-ID: Date: Thu, 23 Jan 2020 15:59:33 +0000 MIME-Version: 1.0 In-Reply-To: <157977054018.18920.9879323586181021015@skylake-alporthouse-com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t 2/2] DBS: tests/i915/gem_ctx_isolation: use the gem_engine_topology library, part 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Chris Wilson , Dale B Stimson , igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, Bommu Krishnaiah , Sreedhar Telukuntla Cc: "Melkaveri, Arjun" , Tvrtko Ursulin List-ID: On 23/01/2020 09:09, Chris Wilson wrote: > Quoting Dale B Stimson (2020-01-22 23:26:57) >> Switch from simple iteration over all potential engines to using >> macro __for_each_physical_engine which only returns engines that are >> actually present. >> >> For each context (as it is created) call gem_context_set_all_engines >> so that execbuf will interpret the engine specification in the new way. >> >> Signed-off-by: Dale B Stimson >> --- >> tests/i915/gem_ctx_isolation.c | 41 ++++++++++++++++++++++++++-------- >> 1 file changed, 32 insertions(+), 9 deletions(-) >> >> diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c >> index 25113b054..31a20ed3a 100644 >> --- a/tests/i915/gem_ctx_isolation.c >> +++ b/tests/i915/gem_ctx_isolation.c >> @@ -240,6 +240,25 @@ static bool ignore_register(uint32_t offset) >> return false; >> } >> >> +/* >> + * context_create_plus_all_engines - Same as gem_context_create plus setup. >> + * >> + * This is a convenience function that may be called instead of the sequence >> + * of gem_context_create followed by gem_context_set_all_engines. >> + * If gem_has_engine_topology(), then function gem_context_set_all_engines >> + * indicates that future execbuf calls for this context should interpret the >> + * engine specification in a gem_engine_topology-compatible way. >> + */ >> +static uint32_t context_create_plus_all_engines(int fd) >> +{ >> + uint32_t ctx; >> + >> + ctx = gem_context_create(fd); >> + gem_context_set_all_engines(fd, ctx); >> + >> + return ctx; >> +} > > gem_context_clone_with_engines() so we can stop assuming that > all-engines is the right answer, because that depends on the conditions > set up by the iterator on the first context. gem_context_clone_with_engines was agreed upon in principle some time ago but never implemented. I have now posted this as https://patchwork.freedesktop.org/series/72464/ and plan to merge it once it passes CI. Dale, Arjun, Krishnaiah and Sreedhar - you have in progress patches which use gem_context_set_all_engines which will be gone and you will need to adjust your work accordingly. Sreedhar specifically for your change in gem_exec_parallel we will need to add a new helper which transfers the engine map from one fd/context to another. I will copy you on a patch which will add it. Regards, Tvrtko _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev