Per-mount syncer threads and fanout for pagedaemon cleaning

2011-12-26 Thread Venkatesh Srinivas
Hi! I've been playing with two things in DragonFly that might be of interest here. Thing #1 := First, per-mountpoint syncer threads. Currently there is a single thread, 'syncer', which periodically calls fsync() on dirty vnodes from every mount, along with calling vfs_sync() on each filesystem

vm_map_findspace space search?

2010-12-15 Thread Venkatesh Srinivas
Hi, In svn r133636, there was a commit to convert the linear search in vm_map_findspace() to use the vm_map splay tree. Just curious, were there any discussions about that particular change? Any measurements other than the ones noted in the commit log? Any notes on why that design was used rather

i386 pmap_zero_page() late sched_pin()?

2010-12-12 Thread Venkatesh Srinivas
Hi, In the i386 pmap's pmap_zero_page(), there is a fragment... sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)]; mtx_lock(&sysmaps->lock); * sched_pin(); /*map the page we mean to zero at sysmaps->CADDR2*/ pagezero(sysmaps->CADDR2); sched_unpin(); I don't

amd64 pmap pagecopy() optimization()?

2010-12-12 Thread Venkatesh Srinivas
Hi, In svn r127653, a microoptimized pagecopy() implementation was added to amd64's support.S. The pagecopy() prefetches the entire page first and then uses a partly-unrolled loop of loads & non-temporal stores. The commit notes 'it is roughly four times faster than bcopy() for uncached pages