[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3bb6d4bb-ebf1-1a1f-9766-b02a187cbe1e@oracle.com>
Date: Thu, 20 Jul 2017 22:36:42 -0500
From: Vijay Kumar <vijay.ac.kumar@...cle.com>
To: David Miller <davem@...emloft.net>
Cc: sparclinux@...r.kernel.org, rob.gardner@...cle.com,
anthony.yznaga@...cle.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 0/2] sparc64: Use low latency path to resume idle cpu
On 7/20/2017 9:55 PM, David Miller wrote:
> From: Vijay Kumar <vijay.ac.kumar@...cle.com>
> Date: Thu, 20 Jul 2017 21:44:24 -0500
>
>> I had same thoughts initially but I had to go with this approach as
>> scheduler_ipi is wrapped with irq_enter() and irq_exit(). Whereas POKE
>> resumes the cpu in process context.
>>
>> Comments in scheduler_ipi():
>>
>> * Not all reschedule IPI handlers call irq_enter/irq_exit, since
>> * traditionally all their work was done from the interrupt return
>> * path. Now that we actually do some work, we need to make sure
>> * we do call them.
>> *
>> * Some archs already do call them, luckily irq_enter/exit nest
>> * properly.
>> *
>> * Arguably we should visit all archs and update all handlers,
>> * however a fair share of IPIs are still resched only so this would
>> * somewhat pessimize the simple resched case.
>> */
>> irq_enter();
>>
> I still think we should be able to fake the state such that this
> direct schedule_ipi() call will work.
>
> I could be wrong :)
I can give a try :). But looks to me one thing that will go wrong is irq
accounting done in __irq_enter() and rcu_irq_enter().
Thanks,
Vijay
Powered by blists - more mailing lists