Hi Ivo, Can you explain how this problem could create a scheduler overhead? I am a little confused, because as far as i know,scheduler does not come in the picture of the wake up path right? select_task_rq() in try_to_wake_up() is where the scheduler comes in,and this is after the task wakes up. On 01/03/2013 03:19 PM, Ivo Sieben wrote: > Oleg, Peter, Ingo, Andi & Preeti, > > 2013/1/2 Jiri Slaby <jslaby@xxxxxxx>: >> On 01/02/2013 04:21 PM, Ivo Sieben wrote: >>> I don't understand your responses: do you suggest to implement this >>> "if active" behavior in: >>> * A new wake_up function called wake_up_if_active() that is part of >>> the waitqueue layer? >> >> Sounds good. >> >> -- >> js >> suse labs > > I want to ask you 'scheduler' people for your opinion: > > Maybe you remember my previous patch where I suggested an extra > 'waitqueue empty' check before entering the critical section of the > wakeup() function (If you do not remember see > https://lkml.org/lkml/2012/10/25/159) > > Finally Oleg responded that a lot of callers do > > if (waitqueue_active(q)) > wake_up(...); > > what made my patch pointless and adds a memory barrier. I then decided > to also implement the 'waitqueue_active' approach for my problem. > > But now I get a review comment by Jiri that he would like to hide this > 'if active behavior' in a wake_up_if_active() kind of function. I > think he is right that implementing this check in the wakeup function > would clean things up, right? > > I would like to have your opinion on the following two suggestions: > - We still can do the original patch on the wake_up() that I > suggested. I then can do an additional code cleanup patch that removes > the double 'waitqueue_active' call (a quick grep found about 150 of > these waitqueue active calls) on several places in the code. I think this is a good move. > - Or - as an alternative - I could add extra _if_active() versions of > all wake_up() functions, that implement this extra test. Why add 'extra' if_active versions? Why not optimize this within the existing wake_up() functions? > > Regards, > Ivo Regards Preeti U Murthy > -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html