On 3/11/26 14:26, Christian Loehle wrote:
> On 3/11/26 13:44, Christian Loehle wrote:
>> On 3/11/26 13:23, Juri Lelli wrote:
>>> On 11/03/26 09:31, Christian Loehle wrote:
>>>> On 3/6/26 16:10, Juri Lelli wrote:
>>>
>>> ...
>>>
>>>>> + /* Start one cpuhog per CPU at max bandwidth */
>>>>> + printf("  Starting %d cpuhog tasks at max bandwidth...\n", num_cpus);
>>>>> +
>>>>> + for (i = 0; i < num_cpus; i++) {
>>>>> +         pids[i] = dl_create_cpuhog(runtime_ns, deadline_ns, period_ns, 
>>>>> 0);
>>>>> +         if (pids[i] < 0) {
>>>>> +                 printf("  Task %d failed to start: %s\n",
>>>>> +                        i + 1, strerror(errno));
>>>>> +                 goto cleanup;
>>>>> +         }
>>>>> +         started++;
>>>>> + }
>>>>
>>>> Would it be okay to just have one task per max-cap CPU to make this pass 
>>>> on HMP?
>>>> Or something more sophisticated?
>>>>
>>>
>>> On HMP we should probably have max bandwidth hogs on big CPUs and then
>>> scale runtime (bandwidth) considering smaller CPUs capacities. Cannot
>>> quickly check atm, but that info (max cap per-CPU) is available
>>> somewhere in sys or proc, is it?
>>
>> Yes it's here:
>> /sys/devices/system/cpu/cpu0/cpu_capacity
>>
>> FWIW I've attached the two patches to get a pass out of arm64 HMP.
> 
> Wait nevermind, this isn't right, this would expect a 10 CPU system with
> [1024, 128, 128, 128, 128, 128, 128, 128, 128, 128]
> = 2176
> would allow for 2 1024-equivalent hogs, but that is obviously wrong as
> the capacity -> bandwidth calculation must be capped in practice by
> only summing the k-highest-cap-CPUs if there's only k deadline-tasks.
> 
> Let me go and read how this is actually supposed to work.

Nevermind the nevermind, it's a bit counterintuitive because we specifically
test this edgecase here but my original proposal is fine...

if you're still taking suggestions, I think a test with hotplugging and
bandwidth would be nice, too:

-Fill to max, verify extra admission fails.
-Kill one task, offline one CPU, verify offline succeeds.
-Try respawn while CPU is offline, verify admission fails.
-Online CPU again, verify respawn succeeds.

Reply via email to