#
de0c3e08 |
| 27-Jun-2009 |
Alan Cox <alc@FreeBSD.org> |
Correct a long-standing performance bug in cluster_rbuild(). Specifically, in the case of a file system with a block size that is less than the page size, cluster_rbuild() looks at too many of the p
Correct a long-standing performance bug in cluster_rbuild(). Specifically, in the case of a file system with a block size that is less than the page size, cluster_rbuild() looks at too many of the page's valid bits. Consequently, it may terminate prematurely, resulting in poor performance.
Reported by: bde Reviewed by: tegge Approved by: re (kib)
show more ...
|
#
7e857dd1 |
| 12-Jun-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
- Merge from HEAD
|
#
0a2e596a |
| 07-Jun-2009 |
Alan Cox <alc@FreeBSD.org> |
Eliminate unnecessary obfuscation when testing a page's valid bits.
|
Revision tags: release/7.2.0_cvs, release/7.2.0, release/7.1.0_cvs, release/7.1.0, release/6.4.0_cvs, release/6.4.0 |
|
#
698b1a66 |
| 22-Mar-2008 |
Jeff Roberson <jeff@FreeBSD.org> |
- Complete part of the unfinished bufobj work by consistently using BO_LOCK/UNLOCK/MTX when manipulating the bufobj. - Create a new lock in the bufobj to lock bufobj fields independently. This
- Complete part of the unfinished bufobj work by consistently using BO_LOCK/UNLOCK/MTX when manipulating the bufobj. - Create a new lock in the bufobj to lock bufobj fields independently. This leaves the vnode interlock as an 'identity' lock while the bufobj is an io lock. The bufobj lock is ordered before the vnode interlock and also before the mnt ilock. - Exploit this new lock order to simplify softdep_check_suspend(). - A few sync related functions are marked with a new XXX to note that we may not properly interlock against a non-zero bv_cnt when attempting to sync all vnodes on a mountlist. I do not believe this race is important. If I'm wrong this will make these locations easier to find.
Reviewed by: kib (earlier diff) Tested by: kris, pho (earlier diff)
show more ...
|
Revision tags: release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0 |
|
#
1c4bcd05 |
| 01-Jun-2007 |
Jeff Roberson <jeff@FreeBSD.org> |
- Move rusage from being per-process in struct pstats to per-thread in td_ru. This removes the requirement for per-process synchronization in statclock() and mi_switch(). This was previously
- Move rusage from being per-process in struct pstats to per-thread in td_ru. This removes the requirement for per-process synchronization in statclock() and mi_switch(). This was previously supported by sched_lock which is going away. All modifications to rusage are now done in the context of the owning thread. reads proceed without locks. - Aggregate exiting threads rusage in thread_exit() such that the exiting thread's rusage is not lost. - Provide a new routine, rufetch() to fetch an aggregate of all rusage structures from all threads in a process. This routine must be used in any place requiring a rusage from a process prior to it's exit. The exited process's rusage is still available via p_ru. - Aggregate tick statistics only on demand via rufetch() or when a thread exits. Tick statistics are kept in the thread and protected by sched_lock until it exits.
Initial patch by: attilio Reviewed by: attilio, bde (some objections), arch (mostly silent)
show more ...
|
#
59f65a4b |
| 05-Mar-2007 |
Wojciech A. Koszek <wkoszek@FreeBSD.org> |
Change these descriptions of memory types used in malloc(9), as their current, rather long strings make output from vmstat -m look unpleasant.
Approved by: cognet (mentor)
|
Revision tags: release/6.2.0_cvs, release/6.2.0 |
|
#
9af80719 |
| 22-Oct-2006 |
Alan Cox <alc@FreeBSD.org> |
Replace PG_BUSY with VPO_BUSY. In other words, changes to the page's busy flag, i.e., VPO_BUSY, are now synchronized by the per-vm object lock instead of the global page queues lock.
|
#
a1e363f2 |
| 26-Sep-2006 |
Tor Egge <tegge@FreeBSD.org> |
Add mnt_noasync counter to better handle interleaved calls to nmount(), sync() and sync_fsync() without losing MNT_ASYNC. Add MNTK_ASYNC flag which is set only when MNT_ASYNC is set and mnt_noasync
Add mnt_noasync counter to better handle interleaved calls to nmount(), sync() and sync_fsync() without losing MNT_ASYNC. Add MNTK_ASYNC flag which is set only when MNT_ASYNC is set and mnt_noasync is zero, and check that flag instead of MNT_ASYNC before initiating async io.
show more ...
|
Revision tags: release/5.5.0_cvs, release/5.5.0, release/6.1.0_cvs, release/6.1.0 |
|
#
41d7199b |
| 21-Mar-2006 |
Tor Egge <tegge@FreeBSD.org> |
Remove unused leaked debug function prototype.
|
#
7de3839d |
| 19-Mar-2006 |
Tor Egge <tegge@FreeBSD.org> |
Let snapshots make a copy of old contents for all buffers taking part in a cluster instead of just the first buffer.
Delay buf_start() calls until snapshots have a copy of old content.
PR: kern/93
Let snapshots make a copy of old contents for all buffers taking part in a cluster instead of just the first buffer.
Delay buf_start() calls until snapshots have a copy of old content.
PR: kern/93942
show more ...
|
#
6951bea6 |
| 07-Dec-2005 |
Craig Rodrigues <rodrigc@FreeBSD.org> |
Changes imported from XFS for FreeBSD project: - add fields to struct buf (needed by XFS) - 3 private fields: b_fsprivate1, b_fsprivate2, b_fsprivate3 - b_pin_count, count of pinned buffer
-
Changes imported from XFS for FreeBSD project: - add fields to struct buf (needed by XFS) - 3 private fields: b_fsprivate1, b_fsprivate2, b_fsprivate3 - b_pin_count, count of pinned buffer
- add new B_MANAGED flag - add breada() function to initiate asynchronous I/O on read-ahead blocks. - add bufdone_finish(), bpin(), bunpin_wait() functions
Patches provided by: kan Reviewed by: phk Silence on: arch@
show more ...
|
Revision tags: release/6.0.0_cvs, release/6.0.0 |
|
#
5bb84bc8 |
| 31-Oct-2005 |
Robert Watson <rwatson@FreeBSD.org> |
Normalize a significant number of kernel malloc type names:
- Prefer '_' to ' ', as it results in more easily parsed results in memory monitoring tools such as vmstat.
- Remove punctuation that i
Normalize a significant number of kernel malloc type names:
- Prefer '_' to ' ', as it results in more easily parsed results in memory monitoring tools such as vmstat.
- Remove punctuation that is incompatible with using memory type names as file names, such as '/' characters.
- Disambiguate some collisions by adding subsystem prefixes to some memory types.
- Generally prefer lower case to upper case.
- If the same type is defined in multiple architecture directories, attempt to use the same name in additional cases.
Not all instances were caught in this change, so more work is required to finish this conversion. Similar changes are required for UMA zone names.
show more ...
|
#
198b0a3b |
| 24-Oct-2005 |
Stephan Uphoff <ups@FreeBSD.org> |
Only set B_RAM (Read ahead mark) on an incore buffers if we can lock it. This fixes a race condition caused by the unlocked write access to the b_flags field.
MFC after: 3 days
|
#
857b66d5 |
| 13-Aug-2005 |
Alexander Kabaev <kan@FreeBSD.org> |
Do not use vm_pager_init() to initialize vnode_pbuf_freecnt variable. vm_pager_init() is run before required nswbuf variable has been set to correct value. This caused system to run with single pbuf
Do not use vm_pager_init() to initialize vnode_pbuf_freecnt variable. vm_pager_init() is run before required nswbuf variable has been set to correct value. This caused system to run with single pbuf available for vnode_pager. Handle both cluster_pbuf_freecnt and vnode_pbuf_freecnt variable in the same way.
Reported by: ade Obtained from: alc MFC after: 2 days
show more ...
|
#
7daa3570 |
| 14-May-2005 |
Alan Cox <alc@FreeBSD.org> |
Revert revision 1.164: pmap_qremove() does not require protection by VM_LOCK_GIANT.
Discussed with: jeff
|
Revision tags: release/5.4.0_cvs, release/5.4.0 |
|
#
8d46d9c4 |
| 01-May-2005 |
Jeff Roberson <jeff@FreeBSD.org> |
- Remove spls and comments relating to them.
|
#
4e0ed696 |
| 30-Apr-2005 |
Jeff Roberson <jeff@FreeBSD.org> |
- Call VM_LOCK_GIANT in cluster_callback() to protect some pmap calls. VFS will not be acquiring Giant before calling this function anymore.
Sponsored by: Isilon Systems, Inc.
|
#
502a590b |
| 10-Feb-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
make cluster_callback() static
|
#
791625d8 |
| 24-Jan-2005 |
Jeff Roberson <jeff@FreeBSD.org> |
- Remove GIANT_REQUIRED where giant is no longer required.
Sponsored By: Isilon Systems, Inc.
|
Revision tags: release/4.11.0_cvs, release/4.11.0 |
|
#
956d03da |
| 29-Dec-2004 |
Alan Cox <alc@FreeBSD.org> |
Eliminate (now) unnecessary acquisition and release of the global page queues lock.
|
#
ce664eaf |
| 15-Nov-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Don't manually set b_bufobj, pbgetvp() does this for us.
|
#
676f3ee2 |
| 15-Nov-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Explicitly call pbrelvp()
|
Revision tags: release/5.3.0_cvs, release/5.3.0 |
|
#
6e67e2a7 |
| 04-Nov-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Retire b_magic now, we have the bufobj containing the same hint.
|
#
c5995e45 |
| 28-Oct-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Lock bp->b_bufobj->b_object instead of bp->b_object
|
#
f6b855f6 |
| 27-Oct-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Avoid using bp->b_vp when we already have the vnode by other means.
|