Re: [PATCH v2] chrt: Make priority optional for policies that don't use it
Madadi Vineeth Reddy <[email protected]>
| Newsgroups | org.kernel.vger.util-linux |
|---|---|
| Message-ID | <[email protected]> |
On 18/06/25 15:04, Madadi Vineeth Reddy wrote:
> Hi Benno, Karel
>
> On 18/06/25 14:55, Karel Zak wrote:
>> On Wed, Jun 18, 2025 at 11:18:18AM +0200, Karel Zak wrote:
>>> On Wed, Jun 18, 2025 at 10:18:29AM +0200, Benno Schulenberg wrote:
>>>>
>>>> Op 17-06-2025 om 20:24 schreef Madadi Vineeth Reddy:
>>>>> Currently, chrt requires a priority argument even for scheduling
>>>>> policies like SCHED_OTHER and SCHED_BATCH, which ignore it.
>>>>>
>>>>> This change relaxes that requirement. Now, priority is only expected
>>>>> for SCHED_FIFO and SCHED_RR. For other policies, a default value of 0
>>>>> is set internally and no argument is required on the command line.
>>>>
>>>> Doesn't this alter the "show-the-current-policy-and-priority" behavior
>>>> when no priority is given? Currently `./chrt --help` says (trimmed):
>>>
>>> Very good point. The priority policy (--{other,...}) should be
>>> required to ensure that the user wants to alter the setting rather
>>> than print the current situation. Madadi, what do you think?
>>
>> Ah, I now read Benno's note more carefully. The code just silently ignores
>> policy when priority is not specified.
>>
>> $ chrt --fifo --pid $$
>> pid 994013's current scheduling policy: SCHED_OTHER
>> pid 994013's current scheduling priority: 0
>>
>> This is ugly. The question is how important it is to support this for
>> backward compatibility. I'd assume that users use "chrt --pid $$" to get
>> the current setting.
>>
>
> chrt --pid 20570
> pid 20570's current scheduling policy: SCHED_OTHER
> pid 20570's current scheduling priority: 0
> pid 20570's current runtime parameter: 2800000
>
> After this patch also, we still get the current setting. Can you give it
> a try with the patch applied? Let me know if I am missing something.
>
Ah, I found my mistake. With this patch, getting the current settings only
works for SCHED_FIFO and SCHED_RR, but not for the other policies, because
we don’t print them here:
+ if ((ctl->pid > -1) && (ctl->verbose || argc - optind == (need_prio ? 1 : 0))) {
show_sched_info(ctl);
The condition argc - optind == (need_prio ? 1 : 0) becomes true only for
SCHED_FIFO and SCHED_RR, which causes the info to be printed only for those.
I’ll send a new version with the fix.
Thanks,
Madadi Vineeth Reddy
> Thanks for taking a look.
>
> Thanks,
> Madadi Vineeth Reddy
>
>> Karel
>>
>