[igt-dev] [PATCH i-g-t 15/17] benchmarks/gem_wsim: introduce bb_size in w_step
Bernatowicz, Marcin
marcin.bernatowicz at linux.intel.com
Fri Sep 29 10:08:43 UTC 2023
On 9/29/2023 11:35 AM, Tvrtko Ursulin wrote:
>
> On 28/09/2023 18:45, Marcin Bernatowicz wrote:
>> Put it next to bb_handle.
>> Use it in alloc_step_batch and measure_active_set.
>
> Could say why.
>
> Like xe might need more than 4k? Might not be able to allocate only 4k?
> (Guessing only.)
Xe uses following formula:
w->bb_size = ALIGN(sizeof(*w->xe.data) + xe_cs_prefetch_size(fd),
xe_get_default_alignment(fd));
which equaled 4096 on platform I tested.
I didn't want to put bb_size inside xe specifics as it is connected with
bb_handle.
Regards,
marcin
>
> Regards,
>
> Tvrtko
>
>> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz at linux.intel.com>
>> ---
>> benchmarks/gem_wsim.c | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/benchmarks/gem_wsim.c b/benchmarks/gem_wsim.c
>> index 4618509ab..d22d66aeb 100644
>> --- a/benchmarks/gem_wsim.c
>> +++ b/benchmarks/gem_wsim.c
>> @@ -183,6 +183,7 @@ struct w_step {
>> } i915;
>> };
>> uint32_t bb_handle;
>> + size_t bb_size;
>> };
>> struct ctx {
>> @@ -1481,6 +1482,7 @@ alloc_step_batch(struct workload *wrk, struct
>> w_step *w)
>> unsigned int nr_obj = 2 + w->data_deps.nr;
>> unsigned int i;
>> + w->bb_size = 4096;
>> w->i915.obj = calloc(nr_obj, sizeof(*w->i915.obj));
>> igt_assert(w->i915.obj);
>> @@ -1522,7 +1524,7 @@ alloc_step_batch(struct workload *wrk, struct
>> w_step *w)
>> igt_assert(j < nr_obj);
>> }
>> - w->bb_handle = w->i915.obj[j].handle = gem_create(fd, 4096);
>> + w->bb_handle = w->i915.obj[j].handle = gem_create(fd, w->bb_size);
>> w->i915.obj[j].relocation_count = create_bb(w, j);
>> igt_assert(w->i915.obj[j].relocation_count <=
>> ARRAY_SIZE(w->i915.reloc));
>> w->i915.obj[j].relocs_ptr = to_user_pointer(&w->i915.reloc);
>> @@ -1722,7 +1724,7 @@ static void measure_active_set(struct workload
>> *wrk)
>> if (w->type != BATCH)
>> continue;
>> - batch_sizes += 4096;
>> + batch_sizes += w->bb_size;
>> for (j = 0; j < w->data_deps.nr; j++) {
>> struct dep_entry *dep = &w->data_deps.list[j];
More information about the igt-dev
mailing list