<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/source/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in tests_scheduler.c</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>f412fe573b3c78fdcf351e282a3c488bb073846b - drm/sched: Fix clang build warning in kunit tests</title>
        <link>http://kernelsources.org:8080/source/history/linux/drivers/gpu/drm/scheduler/tests/tests_scheduler.c#f412fe573b3c78fdcf351e282a3c488bb073846b</link>
        <description>drm/sched: Fix clang build warning in kunit testsInitializing compile time constant struct or arrays from another suchvariable is a gcc extension, while clang strictly requires a compile timeconstant literal.As reported by LKP:&gt;&gt; drivers/gpu/drm/scheduler/tests/tests_scheduler.c:675:10: error: initializer element is not a compile-time constant                                 drm_sched_scheduler_two_clients_attr),                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   include/kunit/test.h:224:13: note: expanded from macro &apos;KUNIT_CASE_PARAM_ATTR&apos;                     .attr = attributes, .module_name = KBUILD_MODNAME}                             ^~~~~~~~~~   1 error generated.vim +675 drivers/gpu/drm/scheduler/tests/tests_scheduler.c   671   672	static struct kunit_case drm_sched_scheduler_two_clients_tests[] = {   673		KUNIT_CASE_PARAM_ATTR(drm_sched_scheduler_two_clients_test,   674				      drm_sched_scheduler_two_clients_gen_params, &gt; 675				      drm_sched_scheduler_two_clients_attr),   676		{}   677	};   678Fix it by using a compound literal as other tests do.Signed-off-by: Tvrtko Ursulin &lt;tvrtko.ursulin@igalia.com&gt;Reported-by: kernel test robot &lt;lkp@intel.com&gt;Closes: https://lore.kernel.org/oe-kbuild-all/202605220312.Pu7UO05u-lkp@intel.com/Fixes: 97ef806a5314 (&quot;drm/sched: Add some scheduling quality unit tests&quot;)Cc: Philipp Stanner &lt;phasta@kernel.org&gt;Acked-by: Philipp Stanner &lt;phasta@kernel.org&gt;Signed-off-by: Tvrtko Ursulin &lt;tursulin@ursulin.net&gt;Link: https://lore.kernel.org/r/20260522090129.9385-1-tvrtko.ursulin@igalia.com

            List of files:
            /linux/drivers/gpu/drm/scheduler/tests/tests_scheduler.c</description>
        <pubDate>Fri, 22 May 2026 11:01:29 +0200</pubDate>
        <dc:creator>Tvrtko Ursulin &lt;tvrtko.ursulin@igalia.com&gt;</dc:creator>
    </item>
<item>
        <title>df5ff8b62a47bb6a378c81ce8aff267f6e5c9e3f - drm/sched: Add some more scheduling quality unit tests</title>
        <link>http://kernelsources.org:8080/source/history/linux/drivers/gpu/drm/scheduler/tests/tests_scheduler.c#df5ff8b62a47bb6a378c81ce8aff267f6e5c9e3f</link>
        <description>drm/sched: Add some more scheduling quality unit testsThis time round we explore the rate of submitted job queue processingwith multiple identical parallel clients.Example test output:3 clients:        t               cycle:     min  avg max : ...        +     0ms                   0    0    0 :   0   0   0        +   102ms                   2    2    2 :   2   2   2        +   208ms                   5    6    6 :   6   5   5        +   310ms                   8    9    9 :   9   9   8...        +  2616ms                  82   83   83 :  83  83  82        +  2717ms                  83   83   83 :  83  83  83    avg_max_min_delta(x100)=60Every 100ms for the duration of the test it logs how many jobs eachclient had completed, prefixed by minimum, average and maximum numbers.When finished overall average delta between max and min is output as arough indicator to scheduling fairness.Signed-off-by: Tvrtko Ursulin &lt;tvrtko.ursulin@igalia.com&gt;Cc: Christian K&#246;nig &lt;christian.koenig@amd.com&gt;Cc: Danilo Krummrich &lt;dakr@kernel.org&gt;Cc: Matthew Brost &lt;matthew.brost@intel.com&gt;Cc: Philipp Stanner &lt;phasta@kernel.org&gt;Cc: Pierre-Eric Pelloux-Prayer &lt;pierre-eric.pelloux-prayer@amd.com&gt;Acked-by: Christian K&#246;nig &lt;christian.koenig@amd.com&gt;Acked-by: Danilo Krummrich &lt;dakr@kernel.org&gt;Tested-by: Vitaly Prosyak &lt;vitaly.prosyak@amd.com&gt;Signed-off-by: Philipp Stanner &lt;phasta@kernel.org&gt;Link: https://patch.msgid.link/20260417103744.76020-6-tvrtko.ursulin@igalia.com

            List of files:
            /linux/drivers/gpu/drm/scheduler/tests/tests_scheduler.c</description>
        <pubDate>Fri, 17 Apr 2026 12:37:20 +0200</pubDate>
        <dc:creator>Tvrtko Ursulin &lt;tvrtko.ursulin@igalia.com&gt;</dc:creator>
    </item>
<item>
        <title>97ef806a53146837f6ca84a1b36763fb3bb67eaa - drm/sched: Add some scheduling quality unit tests</title>
        <link>http://kernelsources.org:8080/source/history/linux/drivers/gpu/drm/scheduler/tests/tests_scheduler.c#97ef806a53146837f6ca84a1b36763fb3bb67eaa</link>
        <description>drm/sched: Add some scheduling quality unit testsTo make evaluating different scheduling policies easier (no need forexternal benchmarks) and perfectly repeatable, lets add some syntheticworkloads built upon mock scheduler unit test infrastructure.Focus is on two parallel clients (two threads) submitting different jobpatterns and logging their progress and some overall metrics. This isrepeated for both scheduler credit limit 1 and 2.Example test output:  Normal and low:                    pct1 cps1 qd1;  pct2 cps2 qd2        +     0ms:   0     0    0;   0     0    0        +   104ms: 100  1240  112; 100  1240  125        +   209ms: 100     0   99; 100     0  125        +   313ms: 100     0   86; 100     0  125        +   419ms: 100     0   73; 100     0  125        +   524ms: 100     0   60; 100     0  125        +   628ms: 100     0   47; 100     0  125        +   731ms: 100     0   34; 100     0  125        +   836ms: 100     0   21; 100     0  125        +   939ms: 100     0    8; 100     0  125        +  1043ms:               ; 100     0  120        +  1147ms:               ; 100     0  107        +  1252ms:               ; 100     0   94        +  1355ms:               ; 100     0   81        +  1459ms:               ; 100     0   68        +  1563ms:               ; 100     0   55        +  1667ms:               ; 100     0   42        +  1771ms:               ; 100     0   29        +  1875ms:               ; 100     0   16        +  1979ms:               ; 100     0    3    0: prio=normal sync=0 elapsed_ms=1015ms (ideal_ms=1000ms) cycle_time(min,avg,max)=134,222,978 us latency_time(min,avg,max)=134,222,978us    1: prio=low sync=0 elapsed_ms=2009ms (ideal_ms=1000ms) cycle_time(min,avg,max)=134,215,806 us latency_time(min,avg,max)=134,215,806 usThere we have two clients represented in the two respective columns, withtheir progress logged roughly every 100 milliseconds. The metrics are: - pct - Percentage progress of the job submit part - cps - Cycles per second - qd  - Queue depth - number of submitted unfinished jobsThe cycles per second metric is inherent to the fact that workloadpatterns are a data driven cycling sequence of: - Submit 1..N jobs - Wait for Nth job to finish (optional) - Sleep (optional) - Repeat from startIn this particular example we have a normal priority and a low priorityclient both spamming the scheduler with 8ms jobs with no sync and nosleeping. Hence they build very deep queues and we can see how the lowpriority client is completely starved until the normal finishes.Note that the PCT and CPS metrics are irrelevant for &quot;unsync&quot; clientssince they manage to complete all of their cycles instantaneously.A different example would be:  Heavy and interactive:                    pct1 cps1 qd1;  pct2 cps2 qd2        +     0ms:   0     0    0;   0     0    0        +   106ms:   5    40    3;   5    40    0        +   209ms:   9    40    0;   9    40    0        +   314ms:  14    50    3;  14    50    0        +   417ms:  18    40    0;  18    40    0        +   522ms:  23    50    3;  23    50    0        +   625ms:  27    40    0;  27    40    1        +   729ms:  32    50    0;  32    50    0        +   833ms:  36    40    1;  36    40    0        +   937ms:  40    40    0;  40    40    0        +  1041ms:  45    50    0;  45    50    0        +  1146ms:  49    40    1;  49    40    1        +  1249ms:  54    50    0;  54    50    0        +  1353ms:  58    40    1;  58    40    0        +  1457ms:  62    40    0;  62    40    1        +  1561ms:  67    50    0;  67    50    0        +  1665ms:  71    40    1;  71    40    0        +  1772ms:  76    50    0;  76    50    0        +  1877ms:  80    40    1;  80    40    0        +  1981ms:  84    40    0;  84    40    0        +  2085ms:  89    50    0;  89    50    0        +  2189ms:  93    40    1;  93    40    0        +  2293ms:  97    40    0;  97    40    1In this case client one is submitting 3x 2.5ms jobs, waiting for the 3rdand then sleeping for 2.5ms (in effect causing 75% GPU load, minus theoverheads). Second client is submitting 1ms jobs, waiting for each tofinish and sleeping for 9ms (effective 10% GPU load). Here we can seethe PCT and CPS reflecting real progress.Signed-off-by: Tvrtko Ursulin &lt;tvrtko.ursulin@igalia.com&gt;Cc: Christian K&#246;nig &lt;christian.koenig@amd.com&gt;Cc: Danilo Krummrich &lt;dakr@kernel.org&gt;Cc: Matthew Brost &lt;matthew.brost@intel.com&gt;Cc: Philipp Stanner &lt;phasta@kernel.org&gt;Cc: Pierre-Eric Pelloux-Prayer &lt;pierre-eric.pelloux-prayer@amd.com&gt;Acked-by: Christian K&#246;nig &lt;christian.koenig@amd.com&gt;Acked-by: Danilo Krummrich &lt;dakr@kernel.org&gt;Tested-by: Vitaly Prosyak &lt;vitaly.prosyak@amd.com&gt;Signed-off-by: Philipp Stanner &lt;phasta@kernel.org&gt;Link: https://patch.msgid.link/20260417103744.76020-5-tvrtko.ursulin@igalia.com

            List of files:
            /linux/drivers/gpu/drm/scheduler/tests/tests_scheduler.c</description>
        <pubDate>Fri, 17 Apr 2026 12:37:19 +0200</pubDate>
        <dc:creator>Tvrtko Ursulin &lt;tvrtko.ursulin@igalia.com&gt;</dc:creator>
    </item>
</channel>
</rss>
