On 4/23/19 3:34 PM, Peter Zijlstra wrote: > On Tue, Apr 23, 2019 at 03:12:16PM -0400, Waiman Long wrote: >> On 4/23/19 12:27 PM, Linus Torvalds wrote: >>> On Tue, Apr 23, 2019 at 7:17 AM Peter Zijlstra <pet...@infradead.org> wrote: >>>> I'm not aware of an architecture where disabling interrupts is faster >>>> than disabling preemption. >>> I don't thin kit ever is, but I'd worry a bit about the >>> preempt_enable() just because it also checks if need_resched() is true >>> when re-enabling preemption. >>> >>> So doing preempt_enable() as part of rwsem_read_trylock() might cause >>> us to schedule in *exactly* the wrong place, >> You are right on that. However, there is a variant called >> preempt_enable_no_resched() that doesn't have this side effect. So I am >> going to use that one instead. > Only if the very next line is schedule(). Otherwise you're very much not > going to use that function.
May I know the reason why. I saw a number of instances of preempt_enable_no_resched() without right next a schedule(). Cheers, Longman