Re: [rfc][patch] remove racy sync_page?

Linus Torvalds
2006-05-31T15:13:41Z

On Thu, 1 Jun 2006, Nick Piggin wrote:
>
> > And yes, we used to have explicit unplugging (a long long long time ago),
> > and IT SUCKED. People would forget, but even more importantly, people would
> > do it even when not
>
> I don't see what the problem is. Locks also suck if you forget to unlock
> them.

Locks are simple, and in fact are _made_ simple on purpose. We try very
hard to unlock in the same function that we lock, for example. Because if
we don't, bugs happen.

That's simply not _practical_ for IO. Think about it. Quite often, the
waiting is done somewhere else than the actual submission.

> > needed because they didn't have a good place to do it because the waiter was
> > in a totally different path.
>
> Example?

Pretty much all of them.

Where do you wait for IO?

Would you perhaps say "wait_on_page()"?

In other words, we really _do_ exactly what you think we should do.

> I don't know why you think this way of doing plugging is fundamentally
> right and anything else must be wrong... it is always heuristic, isn't
> it?

A _particular_ way of doing plugging is not "fundamentally right". I'm
perfectly happy with chaning the place we unplug, if people want that.
We've done it several times.

But plugging as a _concept_ is definitely fundamentally right, exactly
because it allows us to have the notion of "plug + n*<random submit by
different paths> + unplug".

And you were not suggesting moving unplugging around. You were suggesting
removing the feature. Which is when I said "no f*cking way!".

Linus