Re: [rfc][patch 1/2] mnt_want_write speedup 1

Dave Hansen
2008-12-19T06:32:47Z

On Fri, 2008-12-19 at 07:19 +0100, Nick Piggin wrote:
> Hi. Fun, chasing down performance regressions.... I wonder what people think
> about these patches? Is it OK to bloat struct vfsmount? Any races?

Very cool stuff, Nick. I especially like how much it simplifies things
and removes *SO* much code.

Bloating the vfsmount was one of the things that really, really tried to
avoid. When I start to think about the SGI machines, it gets me really
worried. I went to a lot of trouble to make sure that the per-vfsmount
memory overhead didn't scale with the number of cpus.

> This could
> be made even faster if mnt_make_readonly could tolerate a really high latency
> synchronize_rcu()... can it?)

Yes, I think it can tolerate it. There's a lot of work to do, and we
already have to go touch all the other per-cpu objects. There also
tends to be writeout when this happens, so I don't think a few seconds,
even, will be noticed.

> This patch speeds up lmbench lat_mmap test by about 8%. lat_mmap is set up
> basically to mmap a 64MB file on tmpfs, fault in its pages, then unmap it.
> A microbenchmark yes, but it exercises some important paths in the mm.

Do you know where the overhead actually came from? Was it the
spinlocks? Was removing all the atomic ops what really helped?

I'll take a more in-depth look at your code tomorrow and see if I see
any races.

-- Dave