Re: svn commit: r254380 - in head/sys: kern sys

2013-08-16 Thread Ivan Voras
We have a single-writer / multiple-readers lock on *any particular byte* of a vnode. The rangelock code is what keeps track of this, and the locking contention I was reducing was in the rangelock bookkeeping. So, for example, if multiple processes or multiple threads read or write a file

Re: svn commit: r254380 - in head/sys: kern sys

2013-08-16 Thread Colin Percival
On 08/16/13 02:38, Ivan Voras wrote: We have a single-writer / multiple-readers lock on *any particular byte* of a vnode. The rangelock code is what keeps track of this, and the locking contention I was reducing was in the rangelock bookkeeping. So, for example, if multiple processes or

svn commit: r254380 - in head/sys: kern sys

2013-08-15 Thread Colin Percival
Author: cperciva Date: Thu Aug 15 20:19:17 2013 New Revision: 254380 URL: http://svnweb.freebsd.org/changeset/base/254380 Log: Change the queue of locks in kern_rangelock.c from holding lock requests in the order that they arrive, to holding (a) granted write lock requests, followed by

Re: svn commit: r254380 - in head/sys: kern sys

2013-08-15 Thread Ivan Voras
On 15 August 2013 22:19, Colin Percival cperc...@freebsd.org wrote: For workloads with R parallel reads and W parallel writes, this improves the time spent from O((R+W)^2) to O(W*(R+W)); i.e., heavy parallel-read workloads become significantly more scalable. No statistically

Re: svn commit: r254380 - in head/sys: kern sys

2013-08-15 Thread Colin Percival
On 08/15/13 13:29, Ivan Voras wrote: On 15 August 2013 22:19, Colin Percival cperc...@freebsd.org wrote: For workloads with R parallel reads and W parallel writes, this improves the time spent from O((R+W)^2) to O(W*(R+W)); i.e., heavy parallel-read workloads become significantly more

Re: svn commit: r254380 - in head/sys: kern sys

2013-08-15 Thread Ivan Voras
On 15 August 2013 22:32, Colin Percival cperc...@freebsd.org wrote: No, I wasn't aware that it existed. Given that this change applies only to parallel operations *on the same vnode* and blogbench seems to have traffic randomly spread between many files, I doubt there would be any difference.

Re: svn commit: r254380 - in head/sys: kern sys

2013-08-15 Thread Colin Percival
On 08/15/13 14:34, Ivan Voras wrote: On 15 August 2013 22:32, Colin Percival cperc...@freebsd.org wrote: No, I wasn't aware that it existed. Given that this change applies only to parallel operations *on the same vnode* and blogbench seems to have traffic randomly spread between many files, I