Messages in this thread | | | From | Nick Piggin <> | Subject | Re: [PATCH 6/6] sched: disabled rt-bandwidth by default | Date | Thu, 28 Aug 2008 23:45:16 +1000 |
| |
On Thursday 28 August 2008 23:07, Ingo Molnar wrote: > * Nick Piggin <nickpiggin@yahoo.com.au> wrote: > > There is no customer issue and there is no handwaving about > > compliance; > > well, the reason i'm asking is that i cannot for anything in the world > imagine you being so upset about _anything_ but something that involves > benchmark runs ;-)
;) Well yes as you know I'm not actively doing much scheduler work for a while now. Luckily there are a lot of really good people who probably do a better job on it than me anyway, so on the whole I'm quite happy with it.
But ironically that's also why I hadn't raised my concerns earlier... I simply was not aware of the change. So I wish I had participated in the discussion earlier, but that's life, so I have to raise my concern now.
> And what does SCHED_FIFO RT policy scheduling have to do with > performance and benchmarks? Nothing usually in the real world, except > for this little known fact: a common 'tuning' for TPC database > benchmarks is to run all DB threads as SCHED_FIFO to squeeze the last > 0.1% of performance out of the setup. > > So - and i'm taking an educated guess here - is SCHED_FIFO+TPC > performance perhaps one of the factors that played a role in you > initiating this thread? If yes then it's obviously an incredibly broken > use of SCHED_FIFO and we can add the sysctl tuning to the long list of > dozens of other tunings that happen before a TPC run anyway. > > Hm?
To address this concern: no, it is not tpc ;) Actually I don't know a thing about how tpc except what scant information can basically be gained on the list (disclaimer: I probably could find out more under NDA, but I don't care to).
No, there is no customer behind the scenes and nor do I have a use case myself. I really would have told you about it by now.
I'm concerned because I honestly think there is a risk of breaking systems. I also think that in this problem space, people often care about guard bands and worst case scenarios so even if the app does not do a cpu hogging polling loop or cooperative scheduling or anything like that, then I think it is risky to add this source of uncertianty.
The other issue is that the old behaviour (and, dare I say it, specification) is quite straightforward. At least it is simpler and thus I guess easier to analyze than this behaviour with the added caveat.
I realise that as Linux gets better at this, people are wanting to use -rt programs like audio mixing on their desktops and for that kind of thing, throttling is probably often the desired behaviour. So I can see why it was implemented. I just think it is a nasty surprise to have this behaviour by default in the kernel.
I hope I explained myself better now. I was not being too constructive when I was getting heated.
What I would like to see is maybe a new SCHED_ policy or two which can be defined basically as rt-with-throttle which some apps could use. I also think the sysctl to throttle it is a fine idea. And for desktop installations there is probably a much stronger argument for it. But I disagree with having it default from kernel.org like this.
| |