2020-08-14 17:12:49

by Dongjiu Geng

[permalink] [raw]
Subject: Adjust interrupt Priority for ARM64 GIC

Hi Marc,
In the Linux kernel, we can not adjust the interrupt Priority, For all the interrupts, the interrupt Priority are fixed to 0xa0.
In some scenarios, it needs to change the Priority. so I want to upstream a serie patch to support to change the Priority through procfs. do you agree I upstream this feature? thanks~


2020-09-01 07:51:26

by Marc Zyngier

[permalink] [raw]
Subject: Re: Adjust interrupt Priority for ARM64 GIC

Hi Dongjiu,

In the future, please use my kernel.org address, as I don't work
for ARM anymore, and would have missed this email if I wasn't pointed
to it.

On 2020-08-14 18:10, Dongjiu Geng wrote:
> Hi Marc,
> In the Linux kernel, we can not adjust the interrupt Priority, For
> all the interrupts, the interrupt Priority are fixed to 0xa0.
> In some scenarios, it needs to change the Priority. so I want to
> upstream a serie patch to support to change the Priority through
> procfs. do you agree I upstream this feature? thanks~

No, that's not something I would ever consider, and for multiple
reasons:

- Linux only supports a single priority, meaning that interrupts are
themselves aren't preemptable. Dealing with things like (pseudo) NMI
is invasive enough, and I can't see a good reason to relax the
single priority requirement.

- Building on top of the above, the whole scheduler and locking model
relies on the non-preemptable property of an interrupt.

- I cannot see a good reason to leave the priority control to userspace.
That's a sure recipe for userspace-controlled livelocks.

Now, I'm sure you want to introduce this for a reason, and you are not
explaining it ("some scenarios" doesn't quite cut it). If you care to
explain these "scenarios", maybe there is something we can do.

But please don't waste time implementing any sort of priority change,
there is no way I'll consider it as such.

Thanks,

M.
--
Jazz is not dead. It just smells funny...

2020-09-01 08:49:12

by Dongjiu Geng

[permalink] [raw]
Subject: Re: Adjust interrupt Priority for ARM64 GIC



On 2020/9/1 15:48, Marc Zyngier wrote:
> Hi Dongjiu,
>
> In the future, please use my kernel.org address, as I don't work
> for ARM anymore, and would have missed this email if I wasn't pointed
> to it.
>
> On 2020-08-14 18:10, Dongjiu Geng wrote:
>> Hi Marc,
>>    In the Linux kernel, we can not adjust the  interrupt Priority, For
>> all the interrupts, the interrupt Priority are fixed to 0xa0.
>> In some scenarios, it needs to change the Priority. so I want to
>> upstream a serie patch to support to change the Priority through
>> procfs. do you agree I upstream this feature? thanks~
>
> No, that's not something I would ever consider, and for multiple
> reasons:
>
> - Linux only supports a single priority, meaning that interrupts are
>   themselves aren't preemptable. Dealing with things like (pseudo) NMI
>   is invasive enough, and I can't see a good reason to relax the
>   single priority requirement.
>
> - Building on top of the above, the whole scheduler and locking model
>   relies on the non-preemptable property of an interrupt.
>
> - I cannot see a good reason to leave the priority control to userspace.
>   That's a sure recipe for userspace-controlled livelocks.
>
> Now, I'm sure you want to introduce this for a reason, and you are not
> explaining it ("some scenarios" doesn't quite cut it). If you care to
> explain these "scenarios", maybe there is something we can do.
Marc,
Thanks for answer.
In the real-time system(RTOS), we want the timer tick irq is responded as
soon as possible to trigger kernel do task schedule. Non-preemptable IRQ decreases the Real-Time Performance of Real-Time Operating System

>
> But please don't waste time implementing any sort of priority change,
> there is no way I'll consider it as such.
>
> Thanks,
>
>         M.

2020-09-01 09:09:18

by Marc Zyngier

[permalink] [raw]
Subject: Re: Adjust interrupt Priority for ARM64 GIC

On 2020-09-01 09:48, Dongjiu Geng wrote:
> On 2020/9/1 15:48, Marc Zyngier wrote:
>> Hi Dongjiu,
>>
>> In the future, please use my kernel.org address, as I don't work
>> for ARM anymore, and would have missed this email if I wasn't pointed
>> to it.
>>
>> On 2020-08-14 18:10, Dongjiu Geng wrote:
>>> Hi Marc,
>>>    In the Linux kernel, we can not adjust the  interrupt Priority,
>>> For
>>> all the interrupts, the interrupt Priority are fixed to 0xa0.
>>> In some scenarios, it needs to change the Priority. so I want to
>>> upstream a serie patch to support to change the Priority through
>>> procfs. do you agree I upstream this feature? thanks~
>>
>> No, that's not something I would ever consider, and for multiple
>> reasons:
>>
>> - Linux only supports a single priority, meaning that interrupts are
>>   themselves aren't preemptable. Dealing with things like (pseudo) NMI
>>   is invasive enough, and I can't see a good reason to relax the
>>   single priority requirement.
>>
>> - Building on top of the above, the whole scheduler and locking model
>>   relies on the non-preemptable property of an interrupt.
>>
>> - I cannot see a good reason to leave the priority control to
>> userspace.
>>   That's a sure recipe for userspace-controlled livelocks.
>>
>> Now, I'm sure you want to introduce this for a reason, and you are not
>> explaining it ("some scenarios" doesn't quite cut it). If you care to
>> explain these "scenarios", maybe there is something we can do.
> Marc,
> Thanks for answer.
> In the real-time system(RTOS), we want the timer tick irq is
> responded as
> soon as possible to trigger kernel do task schedule. Non-preemptable
> IRQ decreases the Real-Time Performance of Real-Time Operating System

Giving the timer a higher priority doesn't solve anything, really.
It just papers over the fact that you are not using threaded interrupts.
You also don't explain how you plan to change the scheduler and the
whole locking infrastructure to cope with nesting interrupts in the
general case.

I would suggest you use PREEMPT-RT, where all interrupts are threaded
and thus preemptable.

M.
--
Jazz is not dead. It just smells funny...