[igt-dev] [PATCH i-g-t 15/31] i915/perf: Add OAM support
Umesh Nerlige Ramappa
umesh.nerlige.ramappa at intel.com
Wed Mar 15 20:37:24 UTC 2023
On Tue, Mar 14, 2023 at 05:38:36PM -0700, Dixit, Ashutosh wrote:
>On Mon, 13 Mar 2023 08:21:21 -0700, Kamil Konieczny wrote:
>>
>> > @@ -5306,10 +5345,27 @@ test_sysctl_defaults(void)
>> > igt_assert_eq(max_freq, 100000);
>> > }
>> >
>> > -#define __for_each_perf_enabled_engine(fd__, e__) \
>> > - for_each_physical_engine(fd__, e__) \
>> > - if (perf_supports_engine(e__)) \
>> > - igt_dynamic_f("%s", e__->name)
>> > +static struct intel_execution_engine2 *
>> > +__ci_to_e2(const intel_ctx_t *ctx, struct i915_engine_class_instance *ci)
>> > +{
>> > + static struct intel_execution_engine2 e2;
>>
>> e2 is on stack, see below, so it should be *e2
e2 is not on the stack because it is static.
>>
>> > + struct intel_execution_engine2 *e;
>> > +
>> > + for_each_ctx_engine(drm_fd, ctx, e) {
>> > + if (e->class == ci->engine_class && e->instance == ci->engine_instance) {
>> > + e2 = *e;
>> > + break;
>> > + }
>> > + }
>> > +
>> > + return &e2;
>> --------------- ^
>> imho you should allocate memory for this and return NULL when
>> not found.
>
>Yup something needs to be done here since e2 is on stack so dangerous to
>return a pointer to it.
Same as above, the static function variable is not allocated on the
stack, so a pointer to it works just fine.
Thanks,
Umesh
More information about the igt-dev
mailing list