Searched hist:"8 ccbb7815ced1c3900042f36ff32ccd1f7f812d9" (Results 1 – 4 of 4) sorted by relevance
/haiku/src/system/kernel/fs/ |
H A D | Vnode.cpp | 8ccbb7815ced1c3900042f36ff32ccd1f7f812d9 Sat Jan 02 23:27:41 UTC 2010 Ingo Weinhold <ingo_weinhold@gmx.de> * Moved the vnode structure (to by Vnode class at some time in the future) into its own header/source files. * Changed vnode's bit fields to a single, atomically changeable int32 using flags instead. Added respective accessor methods. * Added a per-vnode mutex-like lock, which uses 2 bits of the structure and 32 global "buckets" which are used for waiter lists for the vnode locks. * Reorganized the VFS locking a bit: Renamed sVnodeMutex to sVnodeLock and made it an r/w lock. In most situations it is now only read-locked to reduce its contention. The per-vnode locks guard the fields of the vnode structure and the newly introduced sUnusedVnodesLock has taken over the job to guard the unused vnodes list.
The main intent of the changes was to reduce the contention of the sVnodeMutex, which was partially successful. In my standard -j8 Haiku image build test the new sUnusedVnodesLock took over about a fourth of the former sVnodeMutex contention, but the sVnodeLock and the vnode locks have virtually no contention to speak of, now. A lot of contention migrated to the unrelated "pages" mutex (another bottleneck). The overall build time dropped about 10 %.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34865 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
H A D | Vnode.h | 8ccbb7815ced1c3900042f36ff32ccd1f7f812d9 Sat Jan 02 23:27:41 UTC 2010 Ingo Weinhold <ingo_weinhold@gmx.de> * Moved the vnode structure (to by Vnode class at some time in the future) into its own header/source files. * Changed vnode's bit fields to a single, atomically changeable int32 using flags instead. Added respective accessor methods. * Added a per-vnode mutex-like lock, which uses 2 bits of the structure and 32 global "buckets" which are used for waiter lists for the vnode locks. * Reorganized the VFS locking a bit: Renamed sVnodeMutex to sVnodeLock and made it an r/w lock. In most situations it is now only read-locked to reduce its contention. The per-vnode locks guard the fields of the vnode structure and the newly introduced sUnusedVnodesLock has taken over the job to guard the unused vnodes list.
The main intent of the changes was to reduce the contention of the sVnodeMutex, which was partially successful. In my standard -j8 Haiku image build test the new sUnusedVnodesLock took over about a fourth of the former sVnodeMutex contention, but the sVnodeLock and the vnode locks have virtually no contention to speak of, now. A lot of contention migrated to the unrelated "pages" mutex (another bottleneck). The overall build time dropped about 10 %.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34865 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
H A D | Jamfile | 8ccbb7815ced1c3900042f36ff32ccd1f7f812d9 Sat Jan 02 23:27:41 UTC 2010 Ingo Weinhold <ingo_weinhold@gmx.de> * Moved the vnode structure (to by Vnode class at some time in the future) into its own header/source files. * Changed vnode's bit fields to a single, atomically changeable int32 using flags instead. Added respective accessor methods. * Added a per-vnode mutex-like lock, which uses 2 bits of the structure and 32 global "buckets" which are used for waiter lists for the vnode locks. * Reorganized the VFS locking a bit: Renamed sVnodeMutex to sVnodeLock and made it an r/w lock. In most situations it is now only read-locked to reduce its contention. The per-vnode locks guard the fields of the vnode structure and the newly introduced sUnusedVnodesLock has taken over the job to guard the unused vnodes list.
The main intent of the changes was to reduce the contention of the sVnodeMutex, which was partially successful. In my standard -j8 Haiku image build test the new sUnusedVnodesLock took over about a fourth of the former sVnodeMutex contention, but the sVnodeLock and the vnode locks have virtually no contention to speak of, now. A lot of contention migrated to the unrelated "pages" mutex (another bottleneck). The overall build time dropped about 10 %.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34865 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
H A D | vfs.cpp | 8ccbb7815ced1c3900042f36ff32ccd1f7f812d9 Sat Jan 02 23:27:41 UTC 2010 Ingo Weinhold <ingo_weinhold@gmx.de> * Moved the vnode structure (to by Vnode class at some time in the future) into its own header/source files. * Changed vnode's bit fields to a single, atomically changeable int32 using flags instead. Added respective accessor methods. * Added a per-vnode mutex-like lock, which uses 2 bits of the structure and 32 global "buckets" which are used for waiter lists for the vnode locks. * Reorganized the VFS locking a bit: Renamed sVnodeMutex to sVnodeLock and made it an r/w lock. In most situations it is now only read-locked to reduce its contention. The per-vnode locks guard the fields of the vnode structure and the newly introduced sUnusedVnodesLock has taken over the job to guard the unused vnodes list.
The main intent of the changes was to reduce the contention of the sVnodeMutex, which was partially successful. In my standard -j8 Haiku image build test the new sUnusedVnodesLock took over about a fourth of the former sVnodeMutex contention, but the sVnodeLock and the vnode locks have virtually no contention to speak of, now. A lot of contention migrated to the unrelated "pages" mutex (another bottleneck). The overall build time dropped about 10 %.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34865 a95241bf-73f2-0310-859d-f6bbb57e9c96
|