Messages in this thread | | | Date | Fri, 19 Aug 2011 11:55:34 -0400 | From | Vivek Goyal <> | Subject | Re: [PATCH 10/11] VFS: Cache request_queue in struct block_device |
| |
On Fri, Aug 19, 2011 at 05:36:22PM +0200, Andi Kleen wrote: > On Fri, Aug 19, 2011 at 10:14:09AM -0400, Vivek Goyal wrote: > > On Thu, Aug 18, 2011 at 02:03:56PM -0700, Andi Kleen wrote: > > > > > > >Is the performance gain because of this one less dereference really > > > >substantial. > > > Yes it is measurable on a large macro benchmark. > > > > > > The gain is from doing the prefetch early enough, and that needs the > > > additional pointer. > > > > So it gives you extra .3% (as mentioned in your first mail). IMHO, for > > .3% we should not cache extra request queue pointer. > > Note this is on a benchmark which is primarily userland. Kernel > is only a small part, so it's a much higher percentage for the kernel > time. > > Also on that large benchmark it's hard to any improvement at all, > and this isn't even a particularly ugly or intrusive change.
> Not sure why you're against it.
Primarily because of code complexity. We are stashing away a pointer and not taking any reference anywhere. So I am not even sure who is making sure that request queue is not gone and there are no comments in the code about why we are stashing a pointer and how are we making sure that request queue is around for the lifetime of bdev.
Thanks Vivek
| |