#
fda613df |
| 05-Apr-2024 |
riastradh <riastradh@NetBSD.org> |
uvm: Expand v_size <= v_writesize assertions to help diagnostics.
PR kern/58117
|
#
a812fa9b |
| 09-Apr-2023 |
riastradh <riastradh@NetBSD.org> |
uvm: Simplify assertion in uvn_get.
No functional change intended.
|
#
a83cdbec |
| 09-Apr-2023 |
riastradh <riastradh@NetBSD.org> |
uvm(9): KASSERT(A && B) -> KASSERT(A); KASSERT(B)
|
#
e9de1129 |
| 13-Mar-2021 |
skrll <skrll@NetBSD.org> |
Consistently use %#jx instead of 0x%jx or just %jx in UVMHIST_LOG formats
|
#
0d0b0c4d |
| 16-Aug-2020 |
chs <chs@NetBSD.org> |
in uvm_findpage(), when uvm_page_array_fill_and_peek() returns a page that is not the one we want and we make an assertion about dirtiness, check the dirty status of the page we wanted rather than th
in uvm_findpage(), when uvm_page_array_fill_and_peek() returns a page that is not the one we want and we make an assertion about dirtiness, check the dirty status of the page we wanted rather than the page we got.
show more ...
|
#
19303cec |
| 14-Aug-2020 |
chs <chs@NetBSD.org> |
centralize calls from UVM to radixtree into a few functions. in those functions, assert that the object lock is held in the correct mode.
|
#
f3bd60e2 |
| 09-Jul-2020 |
skrll <skrll@NetBSD.org> |
Consistently use UVMHIST(__func__)
Convert UVMHIST_{CALLED,LOG} into UVMHIST_CALLARGS
|
#
4bfe0439 |
| 25-May-2020 |
ad <ad@NetBSD.org> |
- Alter the convention for uvm_page_array slightly, so the basic search parameters can't change part way through a search: move the "uobj" and "flags" arguments over to uvm_page_array_init() and
- Alter the convention for uvm_page_array slightly, so the basic search parameters can't change part way through a search: move the "uobj" and "flags" arguments over to uvm_page_array_init() and store those with the array.
- With that, detect when it's not possible to find any more pages in the tree with the given search parameters, and avoid repeated tree lookups if the caller loops over uvm_page_array_fill_and_peek().
show more ...
|
#
812b46df |
| 19-May-2020 |
ad <ad@NetBSD.org> |
PR kern/32166: pgo_get protocol is ambiguous Also problems with tmpfs+nfs noted by hannken@.
Don't pass PGO_ALLPAGES to pgo_get, and ignore PGO_DONTCARE in the !PGO_LOCKED case. In uao_get() have u
PR kern/32166: pgo_get protocol is ambiguous Also problems with tmpfs+nfs noted by hannken@.
Don't pass PGO_ALLPAGES to pgo_get, and ignore PGO_DONTCARE in the !PGO_LOCKED case. In uao_get() have uvm_pagealloc() take care of page zeroing and release busy pages on error.
show more ...
|
#
6e318774 |
| 19-May-2020 |
ad <ad@NetBSD.org> |
Don't try to do readahead on tmpfs.
|
#
1d7848ad |
| 22-Mar-2020 |
ad <ad@NetBSD.org> |
Process concurrent page faults on individual uvm_objects / vm_amaps in parallel, where the relevant pages are already in-core. Proposed on tech-kern.
Temporarily disabled on MP architectures with _
Process concurrent page faults on individual uvm_objects / vm_amaps in parallel, where the relevant pages are already in-core. Proposed on tech-kern.
Temporarily disabled on MP architectures with __HAVE_UNLOCKED_PMAP until adjustments are made to their pmaps.
show more ...
|
#
da3ef92b |
| 14-Mar-2020 |
ad <ad@NetBSD.org> |
Make uvm_pagemarkdirty() responsible for putting vnodes onto the syncer work list. Proposed on tech-kern@.
|
#
5972ba16 |
| 14-Mar-2020 |
ad <ad@NetBSD.org> |
Make page waits (WANTED vs BUSY) interlocked by pg->interlock. Gets RW locks out of the equation for sleep/wakeup, and allows observing+waiting for busy pages when holding only a read lock. Propose
Make page waits (WANTED vs BUSY) interlocked by pg->interlock. Gets RW locks out of the equation for sleep/wakeup, and allows observing+waiting for busy pages when holding only a read lock. Proposed on tech-kern.
show more ...
|
#
d21f61c2 |
| 03-Mar-2020 |
rjs <rjs@NetBSD.org> |
Make some wait channel names unique to six characters.
|
#
bf797310 |
| 27-Feb-2020 |
ad <ad@NetBSD.org> |
Tighten up the locking around vp->v_iflag a little more after the recent split of vmobjlock & v_interlock.
|
#
d2a0ebb6 |
| 23-Feb-2020 |
ad <ad@NetBSD.org> |
UVM locking changes, proposed on tech-kern:
- Change the lock on uvm_object, vm_amap and vm_anon to be a RW lock. - Break v_interlock and vmobjlock apart. v_interlock remains a mutex. - Do partial
UVM locking changes, proposed on tech-kern:
- Change the lock on uvm_object, vm_amap and vm_anon to be a RW lock. - Break v_interlock and vmobjlock apart. v_interlock remains a mutex. - Do partial PV list locking in the x86 pmap. Others to follow later.
show more ...
|
#
05a3457e |
| 15-Jan-2020 |
ad <ad@NetBSD.org> |
Merge from yamt-pagecache (after much testing):
- Reduce unnecessary page scan in putpages esp. when an object has a ton of pages cached but only a few of them are dirty.
- Reduce the number of p
Merge from yamt-pagecache (after much testing):
- Reduce unnecessary page scan in putpages esp. when an object has a ton of pages cached but only a few of them are dirty.
- Reduce the number of pmap operations by tracking page dirtiness more precisely in uvm layer.
show more ...
|
#
a7b92da9 |
| 21-Dec-2019 |
ad <ad@NetBSD.org> |
- Rename VM_PGCOLOR_BUCKET() to VM_PGCOLOR(). I want to reuse "bucket" for something else soon and TBH it matches what this macro does better.
- Add inlines to set/get locator values in the unuse
- Rename VM_PGCOLOR_BUCKET() to VM_PGCOLOR(). I want to reuse "bucket" for something else soon and TBH it matches what this macro does better.
- Add inlines to set/get locator values in the unused lower bits of pg->phys_addr. Begin by using it to cache the freelist index, because computing it is expensive and that shows up during profiling. Discussed on tech-kern.
show more ...
|
#
cb32a134 |
| 28-Oct-2017 |
pgoyette <pgoyette@NetBSD.org> |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
show more ...
|
#
97b0e5c3 |
| 06-Dec-2015 |
wiz <wiz@NetBSD.org> |
Fix typo in comment.
|
#
4a1ce99b |
| 06-Dec-2015 |
mlelstv <mlelstv@NetBSD.org> |
Clean up assertions and catch integer overflow.
|
#
d8e04c90 |
| 24-Aug-2015 |
pooka <pooka@NetBSD.org> |
to garnish, dust with _KERNEL_OPT
|
#
fd236653 |
| 30-Jul-2012 |
matt <matt@NetBSD.org> |
-fno-common broke kernhist since it used commons. Add a KERNHIST_DEFINE which is define the kernel history. Change UVM to deal with the new usage.
|
#
c5f76e4c |
| 01-Jun-2012 |
martin <martin@NetBSD.org> |
Only use generic readahead on VREG vnodes, the space used to store the context is not valid on other types. Prevents the crash reported in PR kern/38889, but does not fix the mmap of block devices, m
Only use generic readahead on VREG vnodes, the space used to store the context is not valid on other types. Prevents the crash reported in PR kern/38889, but does not fix the mmap of block devices, more work is needed (no size on VBLK vnodes).
show more ...
|
#
3d901f1f |
| 06-Sep-2011 |
matt <matt@NetBSD.org> |
Allocate color appropriate pages.
|