Messages in this thread | | | Date | Tue, 23 Jul 2013 11:48:32 +0200 | From | Peter Zijlstra <> | Subject | Re: perf: question about event scheduler |
| |
On Tue, Jul 23, 2013 at 10:13:33AM +0200, Stephane Eranian wrote: > Hi, > > I am looking at ctx_pinned_sched_in() and > ctx_flexible_sched_in() and I am trying to > understand the difference of treatment in > case of errors for the two classes of events > (pinned vs. flexible). > > For pinned events, when a group fails to > schedule in, the code goes on to the next > group and therefore walks the entire list > for each scheduler invocation. > > For flexible events, when a group fails, > the loop aborts and no subsequent group > is tried. > > I am trying to understand the motivation for > this difference here. > > If I recall, the abort is here to limit malicious > DoS where a malicious user would provide > an arbitrary long list of events, hogging the kernel. > But in the case of pinned events, this is ignored > because to create such events one needs to be > root in the first place. > > Am I getting this right?
Whee, long time ago. I think the biggest reason is that pinned events should always be scheduled. Not being able to schedule a pinned event is an error. But yes, that and the fact that they're root only.
| |