[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e5f02d36-590d-e15c-01a5-60f1f890fbb2@oracle.com>
Date: Tue, 4 Sep 2018 17:20:11 -0700
From: Subhra Mazumdar <subhra.mazumdar@...cle.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: linux-kernel@...r.kernel.org, peterz@...radead.org,
dhaval.giani@...cle.com, steven.sistare@...cle.com
Subject: Re: [RFC PATCH 2/2] pipe: use pipe busy wait
On 09/04/2018 02:54 PM, Thomas Gleixner wrote:
> On Thu, 30 Aug 2018, subhra mazumdar wrote:
>>
>> +void pipe_busy_wait(struct pipe_inode_info *pipe)
>> +{
>> + unsigned long wait_flag = pipe->pipe_wait_flag;
>> + unsigned long start_time = pipe_busy_loop_current_time();
>> +
>> + pipe_unlock(pipe);
>> + preempt_disable();
>> + for (;;) {
>> + if (pipe->pipe_wait_flag > wait_flag) {
>> + preempt_enable();
>> + pipe_lock(pipe);
>> + return;
>> + }
>> + if (pipe_busy_loop_timeout(pipe, start_time))
>> + break;
>> + cpu_relax();
>> + }
>> + preempt_enable();
> You are not really serious about busy looping with preemption disabled?
>
> That's just wrong. Why do you want to block others from getting on the CPU
> if there is nothing in the pipe?
>
> There is no point in doing so, really. If the wait loop is preempted
> because there is more important work to do, then it will come back and
> either see new data, or leave due to wait time reached.
Makes sense. I will remove it.
Thanks,
Subhra
>
> Thanks,
>
> tglx
>
Powered by blists - more mailing lists