| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Notes:
svn path=/head/; revision=111712
|
|
|
|
| |
Notes:
svn path=/head/; revision=111467
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove the buftimelock mutex and acquire the buf's interlock to protect
these fields instead.
- Hold the vnode interlock while locking bufs on the clean/dirty queues.
This reduces some cases from one BUF_LOCK with a LK_NOWAIT and another
BUF_LOCK with a LK_TIMEFAIL to a single lock.
Reviewed by: arch, mckusick
Notes:
svn path=/head/; revision=111463
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Get rid of the useless atop() / pmap_phys_address() detour. The
device mmap handlers must now give back the physical address
without atop()'ing it.
- Don't borrow the physical address of the mapping in the returned
int. Now we properly pass a vm_offset_t * and expect it to be
filled by the mmap handler when the mapping was successful. The
mmap handler must now return 0 when successful, any other value
is considered as an error. Previously, returning -1 was the only
way to fail. This change thus accidentally fixes some devices
which were bogusly returning errno constants which would have been
considered as addresses by the device pager.
- Garbage collect the poorly named pmap_phys_address() now that it's
no longer used.
- Convert all the d_mmap_t consumers to the new API.
I'm still not sure wheter we need a __FreeBSD_version bump for this,
since and we didn't guarantee API/ABI stability until 5.1-RELEASE.
Discussed with: alc, phk, jake
Reviewed by: peter
Compile-tested on: LINT (i386), GENERIC (alpha and sparc64)
Runtime-tested on: i386
Notes:
svn path=/head/; revision=111462
|
|
|
|
| |
Notes:
svn path=/head/; revision=111434
|
|
|
|
|
|
|
| |
Approved by: trb
Notes:
svn path=/head/; revision=111119
|
|
|
|
| |
Notes:
svn path=/head/; revision=110983
|
|
|
|
|
|
|
|
|
| |
It's unnecessary for two reasons: (1) Giant is at present already held in
such cases and (2) our various implementations of pmap_growkernel() look to
be MP safe. (For example, for sparc64 the proof of (2) is trivial.)
Notes:
svn path=/head/; revision=110958
|
|
|
|
|
|
|
| |
synchronization of access to kernel_vm_end.
Notes:
svn path=/head/; revision=110957
|
|
|
|
|
|
|
|
|
| |
synchronized.
Suggested by: tegge
Notes:
svn path=/head/; revision=110597
|
|
|
|
| |
Notes:
svn path=/head/; revision=110313
|
|
|
|
|
|
|
|
|
| |
than a positive number.
- In pagedaemon_wakeup(), set vm_pages_needed to 1 rather than
incrementing it to accomplish the same.
Notes:
svn path=/head/; revision=110225
|
|
|
|
| |
Notes:
svn path=/head/; revision=110218
|
|
|
|
|
|
|
| |
- Style changes to vm_pageout(): declarations and white-space.
Notes:
svn path=/head/; revision=110207
|
|
|
|
|
|
|
|
| |
with the page queue lock.
- Assert that the page queue lock is held in vm_page_free_wakeup().
Notes:
svn path=/head/; revision=110204
|
|
|
|
|
|
|
|
| |
two cases that existed before for performance optimization purposes can
be reduced to one.
Notes:
svn path=/head/; revision=109912
|
|
|
|
| |
Notes:
svn path=/head/; revision=109820
|
|
|
|
| |
Notes:
svn path=/head/; revision=109630
|
|
|
|
|
|
|
| |
Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
Notes:
svn path=/head/; revision=109623
|
|
|
|
| |
Notes:
svn path=/head/; revision=109587
|
|
|
|
|
|
|
|
|
|
| |
I/O, CAM, and AIO. Still TODO: streamline useracc() checks.
Reviewed by: alc, tegge
MFC after: 7 days
Notes:
svn path=/head/; revision=109572
|
|
|
|
|
|
|
|
| |
- Assert that the page queues lock rather than Giant is held in
vm_page_hold().
Notes:
svn path=/head/; revision=109554
|
|
|
|
|
|
|
|
| |
Submitted by: tmm
Pointy hat to: jeff
Notes:
svn path=/head/; revision=109548
|
|
|
|
|
|
|
|
|
| |
So add a VM_METER compat define.
Submitted by: Andy Fawcett <andy@athame.co.uk>
Notes:
svn path=/head/; revision=109496
|
|
|
|
|
|
|
| |
portable copy.
Notes:
svn path=/head/; revision=109342
|
|
|
|
|
|
|
|
| |
counter outside the scope of existing locks.
- Eliminate a redundant clearing of vm_pageout_deficit.
Notes:
svn path=/head/; revision=109223
|
|
|
|
| |
Notes:
svn path=/head/; revision=109216
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dereferenced when a process exits due to the vmspace ref-count being
bumped. Change shmexit() and shmexit_myhook() to take a vmspace instead
of a process and call it in vmspace_dofree(). This way if it is missed
in exit1()'s early-resource-free it will still be caught when the zombie is
reaped.
Also fix a potential race in shmexit_myhook() by NULLing out
vmspace->vm_shm prior to calling shm_delete_mapping() and free().
MFC after: 7 days
Notes:
svn path=/head/; revision=109205
|
|
|
|
| |
Notes:
svn path=/head/; revision=109198
|
|
|
|
|
|
|
|
| |
removal of unnecessary casts and throw in some minor cleanups to see if
anyone complains, just for the hell of it.
Notes:
svn path=/head/; revision=109153
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The objective being to eliminate some cases of page queues locking.
(See, for example, vm/vm_fault.c revision 1.160.)
Reviewed by: tegge
(Also, pointed out by tegge that I changed vm_fault.c before changing
vm_page.c. Oops.)
Notes:
svn path=/head/; revision=109151
|
|
|
|
|
|
|
| |
VM_ALLOC_ZERO to vm_page_alloc().
Notes:
svn path=/head/; revision=109131
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pointer types, and remove a huge number of casts from code using it.
Change struct xfile xf_data to xun_data (ABI is still compatible).
If we need to add a #define for f_data and xf_data we can, but I don't
think it will be necessary. There are no operational changes in this
commit.
Notes:
svn path=/head/; revision=109123
|
|
|
|
|
|
|
| |
expression.
Notes:
svn path=/head/; revision=109114
|
|
|
|
|
|
|
|
|
|
| |
(the patch in the PR was stale).
PR: kern/5689
Submitted by: Hiten Pandya <hiten@unixdaemons.com>
Notes:
svn path=/head/; revision=109097
|
|
|
|
|
|
|
|
|
|
| |
requests when the number of free pages is below the reserved threshold.
Previously, VM_ALLOC_ZERO was only honored when the number of free pages
was above the reserved threshold. Honoring it in all cases generally
makes sense, does no harm, and simplifies the code.
Notes:
svn path=/head/; revision=108963
|
|
|
|
|
|
|
| |
the pager input for small filesystems.
Notes:
svn path=/head/; revision=108723
|
|
|
|
|
|
|
| |
cnt.v_wire_count.
Notes:
svn path=/head/; revision=108693
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to sort out disk-io from file-io in the vm/buffer/filesystem space.
The intent is to sort VOP_STRATEGY calls into those which operate
on "real" vnodes and those which operate on VCHR vnodes. For
the latter kind, the call will be changed to VOP_SPECSTRATEGY,
possibly conditionally for those places where dual-use happens.
Add a default VOP_SPECSTRATEGY method which will call the normal
VOP_STRATEGY. First time it is called it will print debugging
information. This will only happen if a normal vnode is passed
to VOP_SPECSTRATEGY by mistake.
Add a real VOP_SPECSTRATEGY in specfs, which does what VOP_STRATEGY
does on a VCHR vnode today.
Add a new VOP_STRATEGY method in specfs to catch instances where
the conversion to VOP_SPECSTRATEGY has not yet happened. Handle
the request just like we always did, but first time called print
debugging information.
Apart up to two instances of console messages per boot, this amounts
to a glorified no-op commit.
If you get any of the messages on your console I would very much
like a copy of them mailed to phk@freebsd.org
Notes:
svn path=/head/; revision=108686
|
|
|
|
| |
Notes:
svn path=/head/; revision=108677
|
|
|
|
|
|
|
|
| |
(This procedure needs further work, but this change is sufficient for
locking the kmem_object.)
Notes:
svn path=/head/; revision=108676
|
|
|
|
| |
Notes:
svn path=/head/; revision=108675
|
|
|
|
|
|
|
|
| |
kmem_object without Giant. In that case, assert that the kmem_object's
mutex is held.
Notes:
svn path=/head/; revision=108610
|
|
|
|
|
|
|
| |
Spotted by: bde
Notes:
svn path=/head/; revision=108609
|
|
|
|
|
|
|
|
| |
Move struct swdevt from sys/conf.h to the more appropriate vm/swap_pager.h.
Adjust #include use in libkvm and pstat(8) to match.
Notes:
svn path=/head/; revision=108602
|
|
|
|
|
|
|
|
| |
include file where they belong.
Share the dmmax_mask variable.
Notes:
svn path=/head/; revision=108600
|
|
|
|
| |
Notes:
svn path=/head/; revision=108599
|
|
|
|
|
|
|
| |
directly in vm/vm_swap.c.
Notes:
svn path=/head/; revision=108595
|
|
|
|
| |
Notes:
svn path=/head/; revision=108594
|
|
|
|
|
|
|
| |
all BUF_STRATEGY did in the first place was call VOP_STRATEGY.
Notes:
svn path=/head/; revision=108589
|