Skip to content

Test "YieldTasks" fails on CPUs with more than 8 physical threads #7

@jkunstwald

Description

@jkunstwald

In SimpleTests.cpp, line 192, this vector is declared:

MT::StaticVector<YieldTask, 512> tasks;

which is then filled with taskCount elements. On CPUs with many threads, taskCount easily exceeds 512, it is 900 with 16 threads for example.

Subsequently if raising that limit to a "safe" maximum, like 2048, line 206 has to be adjusted as well to pass taskCount instead of tasks.Size() to RunAsync:

scheduler.RunAsync(MT::TaskGroup::Default(), tasks.Begin(), (uint32)taskCount);

Sadly the test fails on my CPU even after this fix at the check in line 163:

CHECK_EQUAL(TASK_COUNT_PER_WORKER, state1->counterPhase0);

Where TASK_COUNT_PER_WORKER is 60, but state1->counterPhase0 is 0.

System:
Win10 1809
VS19 Toolset v142
Ryzen 2700X

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions