All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>,
	Andi Shyti <andi.shyti@intel.com>,
	IGT dev <igt-dev@lists.freedesktop.org>
Cc: Andi Shyti <andi@etezian.org>
Subject: Re: [igt-dev] [PATCH v15 4/5] lib/i915: add gem_engine_topology library and for_each loop definition
Date: Fri, 22 Mar 2019 09:56:49 +0000	[thread overview]
Message-ID: <bec74d84-d112-2b44-a620-f741e55eb418@linux.intel.com> (raw)
In-Reply-To: <155324155883.26447.7921522281863006035@skylake-alporthouse-com>


On 22/03/2019 07:59, Chris Wilson wrote:
> Quoting Tvrtko Ursulin (2019-03-22 07:47:02)
>>
>> On 21/03/2019 16:05, Andi Shyti wrote:
>>> +{
>>> +     static const char *unknown_name = "unknown",
>>> +                       *virtual_name = "virtual";
>>
>> Unusual style but it is actually readable so I think I like it.
> 
> Bah, if I can't find a cino= setting, I'm not adopting it ;)
> 
>>> +
>>> +     e2->class    = class;
>>> +     e2->instance = instance;
>>> +     e2->flags    = flags;
>>> +
>>> +     if (class < 0 && instance < 0) {
>>> +             e2->name = virtual_name;
>>> +     } else {
>>> +             const struct intel_execution_engine2 *__e2;
>>> +
>>> +             __for_each_static_engine(__e2)
>>> +                     if (__e2->class == class && __e2->instance == instance)
>>> +                             break;
>>> +
>>> +             e2->name = __e2->name ? __e2->name : unknown_name;
>>
>> I've now started to worry about how will CI/buglog handle us forgetting
>> to expand the static list. (More than one subtest of a same name for
>> "test-$engine_name" ones?) Do we want and igt_warn on unknown engines to
>> make it more visible? Or even just crash?
> 
> Set flags to -1ull. That should cause EINVAL forever one hopes.
> 
> We shouldn't get any test (atm) with unknown as we only use the static
> table for test generation. For runtime test discovery, we can apply the
> filter of does this engine actually exist.

Yes I got confused.

>>> +void intel_next_engine(struct intel_engine_data *ed);
>>> +
>>> +#define IS_PHYSICAL_ENGINE(e2) ((e2->class >= 0) && (e2->instance >= 0))
>>
>> Chris, do you think this will be future proof enough?
> 
> At the moment, we've reserved just the one identifier for placeholders
> (class == I915_ENGINE_CLASS_INVALID). And I feel confident that should
> be enough.
> 
> The problem is if something else gave us multiple instances of a logical
> engine for which we have no means to determine the physical mapping,
> which is vvv
> 
>> I remembered how at one point I had "IS_PHYSICAL" as a flag in engine query.
>>
>> Or we make this here more explicit by being "IS_VIRTUAL" and invert the
>> test in the caller?
> 
> Aye. I think you are right here, and we need to put a caps field into
> the engine_data (filled in by i915_query for valid classes and default
> to !phys for invalid slots). A lot of the for_each_physical_engine()
> tests do not make sense if there is automagic engine mapping going on
> behind the scenes.

You are simply saying to move the "IS_PHYISICAL" test to init_engine 
here and store it in a flag per engine?

Regards,

Tvrtko


_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  reply	other threads:[~2019-03-22  9:56 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-21 16:05 [igt-dev] [PATCH v15 0/5] new engine discovery interface Andi Shyti
2019-03-21 16:05 ` [igt-dev] [PATCH v15 1/5] lib/igt_gt: remove unnecessary argument Andi Shyti
2019-03-21 16:05 ` [igt-dev] [PATCH v15 2/5] lib: ioctl_wrappers: reach engines by index as well Andi Shyti
2019-03-21 16:08   ` Chris Wilson
2019-03-21 16:14     ` Andi Shyti
2019-03-21 16:16       ` Chris Wilson
2019-03-21 16:45   ` Tvrtko Ursulin
2019-03-21 16:05 ` [igt-dev] [PATCH v15 3/5] include/drm-uapi: import i915_drm.h header file Andi Shyti
2019-03-21 16:05 ` [igt-dev] [PATCH v15 4/5] lib/i915: add gem_engine_topology library and for_each loop definition Andi Shyti
2019-03-22  7:47   ` Tvrtko Ursulin
2019-03-22  7:59     ` Chris Wilson
2019-03-22  9:56       ` Tvrtko Ursulin [this message]
2019-03-22  9:59         ` Chris Wilson
2019-03-22 10:03       ` Andi Shyti
2019-03-22  9:51     ` Andi Shyti
2019-03-22 10:10       ` Tvrtko Ursulin
2019-03-22  9:58   ` Tvrtko Ursulin
2019-03-22 10:06     ` Andi Shyti
2019-03-22 10:46   ` Tvrtko Ursulin
2019-03-21 16:05 ` [igt-dev] [PATCH v15 5/5] tests: gem_exec_basic: add "exec-ctx" buffer execution demo test Andi Shyti
2019-03-21 17:08 ` [igt-dev] ✓ Fi.CI.BAT: success for new engine discovery interface Patchwork
2019-03-22  9:02 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bec74d84-d112-2b44-a620-f741e55eb418@linux.intel.com \
    --to=tvrtko.ursulin@linux.intel.com \
    --cc=andi.shyti@intel.com \
    --cc=andi@etezian.org \
    --cc=chris@chris-wilson.co.uk \
    --cc=igt-dev@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.