K 10 svn:author V 5 markj K 8 svn:date V 27 2016-03-14T22:26:06.272418Z K 7 svn:log V 855 Decrement maxscan by the number of clustered pages. This helps ensure that pages in the laundry queue are not examined more than once during a scan. However, because pages are not removed from the queue until they have been laundered (i.e., the pageout I/O completes), this could cause the scan to stop before it has reached the end of the queue. Thus, dequeue all clustered pages before passing them to the pager. This moves some work out of the completion handler, which is usually invoked asynchronously. In a benchmark where multiple threads sequentially write to MAP_NOSYNC-mapped files, this change has no significant effect on runtime but reduces contention on the laundry queue lock (as measured with lockstat -e 0). Note however that this represents only a very small fraction of the total lock contention in the benchmark. Discussed with: alc END