History log of /netbsd-src/sys/uvm/uvm_vnode.c (Results 1 – 25 of 121)
Revision Date Author Comments
# 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.


12345