Messages in this thread | | | Date | Thu, 26 Mar 2009 17:47:04 -0700 | From | Andrew Morton <> | Subject | Re: Linux 2.6.29 |
| |
On Thu, 26 Mar 2009 17:27:43 -0700 (PDT) Linus Torvalds <torvalds@linux-foundation.org> wrote:
> > > On Thu, 26 Mar 2009, Andrew Morton wrote: > > > > userspace can do it quite easily. Run a self-tuning script after > > installation and when the disk hardware changes significantly. > > Uhhuh. > > "user space can do it". > > That's the global cop-out.
userspace can get closer than the kernel can.
> The fact is, user-space isn't doing it, and never has done anything even > _remotely_ like it. > > In fact, I claim that it's impossible to do. If you give me a number for > the throughput of your harddisk, I will laugh in your face and call you a > moron. > > Why? Because no such number exists. It depends on the access patterns.
Those access patterns are observable!
> If > you write one large file, the number will be very different (and not just > by a few percent) from the numbers of you writing thousands of small > files, or re-writing a large database in random order. > > So no. User space CAN NOT DO IT, and the fact that you even claim > something like that shows a distinct lack of thought.
userspace can get closer. Even if it's asking the user "what sort of applications will this machine be running" and then use a set of canned tunables based on that.
Better would be to observe system behaviour, perhaps in real time and make adjustments.
> > Maybe we should set the tunables to 99.9% to make it suck enough to > > motivate someone. > > The only times tunables have worked for us is when they auto-tune. > > IOW, we don't have "use 35% of memory for buffer cache" tunables, we just > dynamically auto-tune memory use. And no, we don't expect user space to > run some "tuning program for their load" either. >
This particular case is exceptional - it's just too hard for the kernel to be able to predict the future for this one.
It wouldn't be terribly hard for a userspace daemon to produce better results than we can achieve in-kernel. That might of course require additional kernel work to support it well.
| |