History log of /src/sys/uvm/uvm_vnode.c |
Revision | | Date | Author | Comments |
1.121 |
| 05-Apr-2024 |
riastradh | uvm: Expand v_size <= v_writesize assertions to help diagnostics.
PR kern/58117
|
1.120 |
| 09-Apr-2023 |
riastradh | uvm: Simplify assertion in uvn_get.
No functional change intended.
|
1.119 |
| 09-Apr-2023 |
riastradh | uvm(9): KASSERT(A && B) -> KASSERT(A); KASSERT(B)
|
1.118 |
| 13-Mar-2021 |
skrll | Consistently use %#jx instead of 0x%jx or just %jx in UVMHIST_LOG formats
|
1.117 |
| 16-Aug-2020 |
chs | branches: 1.117.2; 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.
|
1.116 |
| 14-Aug-2020 |
chs | centralize calls from UVM to radixtree into a few functions. in those functions, assert that the object lock is held in the correct mode.
|
1.115 |
| 09-Jul-2020 |
skrll | Consistently use UVMHIST(__func__)
Convert UVMHIST_{CALLED,LOG} into UVMHIST_CALLARGS
|
1.114 |
| 25-May-2020 |
ad | - 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().
|
1.113 |
| 19-May-2020 |
ad | 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.
|
1.112 |
| 19-May-2020 |
ad | Don't try to do readahead on tmpfs.
|
1.111 |
| 22-Mar-2020 |
ad | 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.
|
1.110 |
| 14-Mar-2020 |
ad | Make uvm_pagemarkdirty() responsible for putting vnodes onto the syncer work list. Proposed on tech-kern@.
|
1.109 |
| 14-Mar-2020 |
ad | 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.
|
1.108 |
| 03-Mar-2020 |
rjs | Make some wait channel names unique to six characters.
|
1.107 |
| 27-Feb-2020 |
ad | Tighten up the locking around vp->v_iflag a little more after the recent split of vmobjlock & v_interlock.
|
1.106 |
| 23-Feb-2020 |
ad | 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.
|
1.105 |
| 15-Jan-2020 |
ad | 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.
|
1.104 |
| 21-Dec-2019 |
ad | branches: 1.104.2; - 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.
|
1.103 |
| 28-Oct-2017 |
pgoyette | branches: 1.103.4; 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.
|
1.102 |
| 06-Dec-2015 |
wiz | branches: 1.102.10; Fix typo in comment.
|
1.101 |
| 06-Dec-2015 |
mlelstv | Clean up assertions and catch integer overflow.
|
1.100 |
| 24-Aug-2015 |
pooka | to garnish, dust with _KERNEL_OPT
|
1.99 |
| 30-Jul-2012 |
matt | branches: 1.99.2; 1.99.16; -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.
|
1.98 |
| 01-Jun-2012 |
martin | 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).
|
1.97 |
| 06-Sep-2011 |
matt | branches: 1.97.2; 1.97.6; 1.97.8; Allocate color appropriate pages.
|
1.96 |
| 12-Jun-2011 |
rmind | Welcome to 5.99.53! Merge rmind-uvmplock branch:
- Reorganize locking in UVM and provide extra serialisation for pmap(9). New lock order: [vmpage-owner-lock] -> pmap-lock.
- Simplify locking in some pmap(9) modules by removing P->V locking.
- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).
- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner. Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.
- Unify /dev/mem et al in MI code and provide required locking (removes kernel-lock on some ports). Also, avoid cache-aliasing issues.
Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches formed the core changes of this branch.
|
1.95 |
| 23-Apr-2011 |
rmind | branches: 1.95.2; Replace "malloc" in comments, remove unnecessary header inclusions.
|
1.94 |
| 02-Feb-2011 |
chuck | udpate license clauses on my code to match the new-style BSD licenses. verified with Mike Hibler it is ok to remove clause 3 on utah copyright, as per UCB. based on diff that rmind@ sent me.
no functional change with this commit.
|
1.93 |
| 08-Jan-2010 |
pooka | branches: 1.93.2; 1.93.4; 1.93.6; 1.93.8; The VATTR_NULL/VREF/VHOLD/HOLDRELE() macros lost their will to live years ago when the kernel was modified to not alter ABI based on DIAGNOSTIC, and now just call the respective function interfaces (in lowercase). Plenty of mix'n match upper/lowercase has creeped into the tree since then. Nuke the macros and convert all callsites to lowercase.
no functional change
|
1.92 |
| 04-Aug-2009 |
pooka | uvm_vnp_zerorange() logically and by implementation more a part of ubc than uvm_vnode, so move it over.
|
1.91 |
| 04-Aug-2009 |
pooka | kernel opt polish: g/c unnecessary fs_nfs.h and opt_ddb.h
|
1.90 |
| 02-Jan-2008 |
ad | branches: 1.90.10; 1.90.28; Merge vmlocking2 to head.
|
1.89 |
| 01-Dec-2007 |
yamt | branches: 1.89.2; 1.89.6; constify pagerops.
|
1.88 |
| 01-Dec-2007 |
yamt | use designated initiaizers for uvm_pagerops.
|
1.87 |
| 11-Oct-2007 |
ad | branches: 1.87.4; Remove LOCK_ASSERT(!simple_lock_held(&foo));
|
1.86 |
| 10-Oct-2007 |
ad | Merge from vmlocking:
- Split vnode::v_flag into three fields, depending on field locking. - simple_lock -> kmutex in a few places. - Fix some simple locking problems.
|
1.85 |
| 04-Aug-2007 |
pooka | branches: 1.85.2; 1.85.4; 1.85.6; Use VSIZENOTSET only in KASSERTs
|
1.84 |
| 22-Jul-2007 |
pooka | branches: 1.84.4; Retire uvn_attach() - it abuses VXLOCK and its functionality, setting vnode sizes, is handled elsewhere: file system vnode creation or spec_open() for regular files or block special files, respectively.
Add a call to VOP_MMAP() to the pagedvn exec path, since the vnode is being memory mapped.
reviewed by tech-kern & wrstuden
|
1.83 |
| 09-Jul-2007 |
ad | branches: 1.83.2; Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes - select()/poll() improvements - miscellaneous MT safety improvements
|
1.82 |
| 05-Jun-2007 |
yamt | improve post-ubc file overwrite performance in common cases. ie. when it's safe, actually overwrite blocks rather than doing read-modify-write.
also fixes PR/33152 and PR/36303.
|
1.81 |
| 04-Mar-2007 |
christos | branches: 1.81.2; 1.81.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
1.80 |
| 22-Feb-2007 |
thorpej | TRUE -> true, FALSE -> false
|
1.79 |
| 21-Feb-2007 |
thorpej | Replace the Mach-derived boolean_t type with the C99 bool type. A future commit will replace use of TRUE and FALSE with true and false.
|
1.78 |
| 09-Dec-2006 |
chs | branches: 1.78.2; a smorgasbord of improvements to vnode locking and path lookup: - LOCKPARENT is no longer relevant for lookup(), relookup() or VOP_LOOKUP(). these now always return the parent vnode locked. namei() works as before. lookup() and various other paths no longer acquire vnode locks in the wrong order via vrele(). fixes PR 32535. as a nice side effect, path lookup is also up to 25% faster. - the above allows us to get rid of PDIRUNLOCK. - also get rid of WANTPARENT (just use LOCKPARENT and unlock it). - remove an assumption in layer_node_find() that all file systems implement a recursive VOP_LOCK() (unionfs doesn't). - require that all file systems supply vfs_vptofh and vfs_fhtovp routines. fill in eopnotsupp() for file systems that don't support being exported and remove the checks for NULL. (layerfs calls these without checking.) - in union_lookup1(), don't change refcounts in the ISDOTDOT case, just adjust which vnode is locked. fixes PR 33374. - apply fixes for ufs_rename() from ufs_vnops.c rev. 1.61 to ext2fs_rename().
|
1.77 |
| 01-Nov-2006 |
yamt | branches: 1.77.2; remove some __unused from function parameters.
|
1.76 |
| 14-Oct-2006 |
yamt | uvm_vnp_setsize: put back v_size assignment after uvn_put. PR/34147 from Juergen Hannken-Illjes.
|
1.75 |
| 12-Oct-2006 |
yamt | move some knowledge about vnode into uvm_vnode.c.
|
1.74 |
| 12-Oct-2006 |
christos | - sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
1.73 |
| 15-Sep-2006 |
yamt | branches: 1.73.2; merge yamt-pdpolicy branch. - separate page replacement policy from the rest of kernel - implement an alternative replacement policy
|
1.72 |
| 22-Jul-2006 |
yamt | branches: 1.72.4; - in genfs_getpages, take g_glock earlier so that it can't be intervened by truncation. it also fixes a deadlock. (g_glock vs pages locking order) - uvm_vnp_setsize: modify v_size while holding v_interlock.
reviewed by Chuck Silvers.
|
1.71 |
| 21-Jul-2006 |
ad | - Use the LWP cached credentials where sane. - Minor cosmetic changes.
|
1.70 |
| 14-May-2006 |
elad | integrate kauth.
|
1.69 |
| 11-Dec-2005 |
christos | branches: 1.69.4; 1.69.6; 1.69.8; 1.69.10; 1.69.12; merge ktrace-lwp.
|
1.68 |
| 29-Nov-2005 |
yamt | merge yamt-readahead branch.
|
1.67 |
| 29-Nov-2005 |
yamt | read-ahead statistics.
|
1.66 |
| 27-Jun-2005 |
thorpej | branches: 1.66.2; 1.66.8; Sprinkle some static.
|
1.65 |
| 27-Jun-2005 |
thorpej | Use ANSI function decls.
|
1.64 |
| 09-Jan-2005 |
chs | adjust the UBC mapping code to support non-vnode uvm_objects. this means we can no longer look at the vnode size to determine how many pages to request in a fault, which is good since for NFS the size can change out from under us on the server anyway. there's also a new flag UBC_UNMAP for ubc_release(), so that the file system code can make the decision about whether to cache mappings for files being used as executables.
|
1.63 |
| 24-Mar-2004 |
junyoung | Nuke __P().
|
1.62 |
| 29-Jun-2003 |
fvdl | branches: 1.62.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
1.61 |
| 28-Jun-2003 |
darrenr | Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
1.60 |
| 22-Apr-2003 |
yamt | correct accounting of {exec,file}pages. they are not updated correctly when breaking loan.
|
1.59 |
| 06-Sep-2002 |
gehenna | Merge the gehenna-devsw branch into the trunk.
This merge changes the device switch tables from static array to dynamically generated by config(8).
- All device switches is defined as a constant structure in device drivers.
- The new grammer ``device-major'' is introduced to ``files''.
device-major <prefix> char <num> [block <num>] [<rules>]
- All device major numbers must be listed up in port dependent majors.<arch> by using this grammer.
- Added the new naming convention. The name of the device switch must be <prefix>_[bc]devsw for auto-generation of device switch tables.
- The backward compatibility of loading block/character device switch by LKM framework is broken. This is necessary to convert from block/character device major to device name in runtime and vice versa.
- The restriction to assign device major by LKM is completely removed. We don't need to reserve LKM entries for dynamic loading of device switch.
- In compile time, device major numbers list is packed into the kernel and the LKM framework will refer it to assign device major number dynamically.
|
1.58 |
| 17-May-2002 |
enami | Make uvn_findpages to return number of pages found so that caller can easily check if all requested pages are found or not.
|
1.57 |
| 31-Dec-2001 |
chs | branches: 1.57.8; in uvm_vnp_setsize(), wait for any i/o in progress on pages that we free.
|
1.56 |
| 09-Dec-2001 |
chs | replace "vnode" and "vtext" with "file" and "exec" in uvmexp field names.
|
1.55 |
| 10-Nov-2001 |
lukem | add RCSIDs, and in some cases, slightly cleanup #include order
|
1.54 |
| 26-Sep-2001 |
chs | branches: 1.54.2; change the names of the arguments to uvn_put() to match their usage.
|
1.53 |
| 22-Sep-2001 |
sommerfeld | VOP_PUTPAGES must release the uobj's lock for us, so ensure it's locked beforehand and unlocked afterwards using LOCK_ASSERT().
|
1.52 |
| 15-Sep-2001 |
chs | a whole bunch of changes to improve performance and robustness under load:
- remove special treatment of pager_map mappings in pmaps. this is required now, since I've removed the globals that expose the address range. pager_map now uses pmap_kenter_pa() instead of pmap_enter(), so there's no longer any need to special-case it. - eliminate struct uvm_vnode by moving its fields into struct vnode. - rewrite the pageout path. the pager is now responsible for handling the high-level requests instead of only getting control after a bunch of work has already been done on its behalf. this will allow us to UBCify LFS, which needs tighter control over its pages than other filesystems do. writing a page to disk no longer requires making it read-only, which allows us to write wired pages without causing all kinds of havoc. - use a new PG_PAGEOUT flag to indicate that a page should be freed on behalf of the pagedaemon when it's unlocked. this flag is very similar to PG_RELEASED, but unlike PG_RELEASED, PG_PAGEOUT can be cleared if the pageout fails due to eg. an indirect-block buffer being locked. this allows us to remove the "version" field from struct vm_page, and together with shrinking "loan_count" from 32 bits to 16, struct vm_page is now 4 bytes smaller. - no longer use PG_RELEASED for swap-backed pages. if the page is busy because it's being paged out, we can't release the swap slot to be reallocated until that write is complete, but unlike with vnodes we don't keep a count of in-progress writes so there's no good way to know when the write is done. instead, when we need to free a busy swap-backed page, just sleep until we can get it busy ourselves. - implement a fast-path for extending writes which allows us to avoid zeroing new pages. this substantially reduces cpu usage. - encapsulate the data used by the genfs code in a struct genfs_node, which must be the first element of the filesystem-specific vnode data for filesystems which use genfs_{get,put}pages(). - eliminate many of the UVM pagerops, since they aren't needed anymore now that the pager "put" operation is a higher-level operation. - enhance the genfs code to allow NFS to use the genfs_{get,put}pages instead of a modified copy. - clean up struct vnode by removing all the fields that used to be used by the vfs_cluster.c code (which we don't use anymore with UBC). - remove kmem_object and mb_object since they were useless. instead of allocating pages to these objects, we now just allocate pages with no object. such pages are mapped in the kernel until they are freed, so we can use the mapping to find the page to free it. this allows us to remove splvm() protection in several places.
The sum of all these changes improves write throughput on my decstation 5000/200 to within 1% of the rate of NetBSD 1.5 and reduces the elapsed time for "make release" of a NetBSD 1.5 source tree on my 128MB pc to 10% less than a 1.5 kernel took.
|
1.51 |
| 17-Aug-2001 |
chs | branches: 1.51.2; allow mappings of VBLK vnodes.
|
1.50 |
| 26-May-2001 |
chs | branches: 1.50.2; replace vm_page_t with struct vm_page *.
|
1.49 |
| 25-May-2001 |
chs | remove trailing whitespace.
|
1.48 |
| 10-Mar-2001 |
chs | eliminate the VM_PAGER_* error codes in favor of the traditional E* codes. the mapping is:
VM_PAGER_OK 0 VM_PAGER_BAD <unused> VM_PAGER_FAIL <unused> VM_PAGER_PEND 0 (see below) VM_PAGER_ERROR EIO VM_PAGER_AGAIN EAGAIN VM_PAGER_UNLOCK EBUSY VM_PAGER_REFAULT ERESTART
for async i/o requests, it used to be possible for the request to be convert to sync, and the pager would return VM_PAGER_OK or VM_PAGER_PEND to indicate whether the caller should perform post-i/o cleanup. this is no longer allowed; pagers must now return 0 to indicate that the async i/o was successfully started, and the caller never needs to worry about doing the post-i/o cleanup.
|
1.47 |
| 09-Mar-2001 |
chs | add UBC memory-usage balancing. we track the number of pages in use for each of the basic types (anonymous data, executable image, cached files) and prevent the pagedaemon from reusing a given page if that would reduce the count of that type of page below a sysctl-setable minimum threshold. the thresholds are controlled via three new sysctl tunables: vm.anonmin, vm.vnodemin, and vm.vtextmin. these tunables are the percentages of pageable memory reserved for each usage, and we do not allow the sum of the minimums to be more than 95% so that there's always some memory that can be reused.
|
1.46 |
| 22-Feb-2001 |
enami | branches: 1.46.2; When shrinking file size, don't dispose of a page still in use.
|
1.45 |
| 18-Feb-2001 |
chs | in uvn_flush(), add a fast path for the case where the vnode has no pages. update the comment above this function while I'm here.
|
1.44 |
| 08-Feb-2001 |
chs | remove a debug printf() that has outlived its usefulness.
|
1.43 |
| 06-Feb-2001 |
chs | in uvn_flush(), interpret a "stop" value of 0 as meaning all pages at offsets equal to or higher than "start". use this in uvm_vnp_setsize() instead of the vnode's size since there can be pages past EOF.
|
1.42 |
| 28-Jan-2001 |
thorpej | Page scanner improvements, behavior is actually a bit more like Mach VM's now. Specific changes: - Pages now need not have all of their mappings removed before being put on the inactive list. They only need to have the "referenced" attribute cleared. This makes putting pages onto the inactive list much more efficient. In order to eliminate redundant clearings of "refrenced", callers of uvm_pagedeactivate() must now do this themselves. - When checking the "modified" attribute for a page (for clearing PG_CLEAN), make sure to only do it if PG_CLEAN is currently set on the page (saves a potentially expensive pmap operation). - When scanning the inactive list, if a page is referenced, reactivate it (this part was actually added in uvm_pdaemon.c,v 1.27). This now works properly now that pages on the inactive list are allowed to have mappings. - When scanning the inactive list and considering a page for freeing, remove all mappings, and then check the "modified" attribute if the page is marked PG_CLEAN. - When scanning the active list, if the page was referenced since its last sweep by the scanner, don't deactivate it. (This part was actually added in uvm_pdaemon.c,v 1.28.)
These changes greatly improve interactive performance during moderate to high memory and I/O load.
|
1.41 |
| 08-Jan-2001 |
chs | in uvn_flush(), when PGO_SYNCIO is specified then we should wait for pending i/os to complete before returning even if PGO_CLEANIT is not specified. this fixes two races:
(1) NFS write rpcs vs. setattr operations which truncate the file. if the truncate doesn't wait for pending writes to complete then a later write rpc completion can undo the effect of the truncate. this problem has been reported by several people.
(2) write i/os in disk-based filesystem vs. the disk block being freed by a truncation, allocated to a new file, and written again with different data. if the disk driver reorders the requests and does the second i/o first, the old data will clobber the new, corrupting the new file. I haven't heard of anyone experiencing this problem yet, but it's fixed now anyway.
|
1.40 |
| 16-Dec-2000 |
chs | in uvn_flush(), don't deactivate busy pages.
|
1.39 |
| 06-Dec-2000 |
chs | in uvn_findpage(), only increment the counter of vnode pages if we succeed in allocating a page.
from Lars Heidieker <lars@heidieker.de> in PR 11636.
|
1.38 |
| 30-Nov-2000 |
simonb | Move uvm_pgcnt_vnode and uvm_pgcnt_anon into uvmexp (as vnodepages and anonpages), and add vtextpages which is currently unused but will be used to trace the number of pages used by vtext vnodes.
|
1.37 |
| 27-Nov-2000 |
chs | Initial integration of the Unified Buffer Cache project.
|
1.36 |
| 24-Nov-2000 |
chs | g/c unused pager ops "asyncget" and "aiodone".
|
1.35 |
| 27-Jun-2000 |
mrg | remove include of <vm/vm.h>
|
1.34 |
| 26-Jun-2000 |
mrg | remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h> <vm/vm_inherit.h> -> <uvm/uvm_inherit.h> <vm/vm_kern.h> -> into <uvm/uvm_extern.h> <vm/vm_object.h> -> nothing <vm/vm_pager.h> -> into <uvm/uvm_pager.h>
also includes a bunch of <vm/vm_page.h> include removals (due to redudancy with <vm/vm.h>), and a scattering of other similar headers.
|
1.33 |
| 19-May-2000 |
thorpej | branches: 1.33.4; Tell uvm_pagermapin() the direction of the I/O so that it can map with only the protection that it needs.
|
1.32 |
| 03-Apr-2000 |
chs | remove the "shareprot" pagerop. it's not needed anymore since share maps are long gone.
|
1.31 |
| 27-Mar-2000 |
kleink | Kill duplicate uvn_attach() prototype (public, already in uvm_vnode.h).
|
1.30 |
| 26-Mar-2000 |
kleink | Merge parts of chs-ubc2 into the trunk: Add a new type voff_t (defined as a synonym for off_t) to describe offsets into uvm objects, and update the appropriate interfaces to use it, the most visible effect being the ability to mmap() file offsets beyond the range of a vaddr_t.
Originally by Chuck Silvers; blame me for problems caused by merging this into non-UBC.
|
1.29 |
| 13-Mar-2000 |
soren | Fix doubled 'the's in comments.
|
1.28 |
| 28-Jan-2000 |
chs | remove a debug printf that has outlived its usefulness.
|
1.27 |
| 19-Oct-1999 |
chs | put various debugging printfs under #ifdef DEBUG.
|
1.26 |
| 12-Sep-1999 |
chs | branches: 1.26.2; 1.26.4; 1.26.6; eliminate the PMAP_NEW option by making it required for all ports. ports which previously had no support for PMAP_NEW now implement the pmap_k* interfaces as wrappers around the non-k versions.
|
1.25 |
| 22-Jul-1999 |
thorpej | Garbage collect thread_sleep()/thread_wakeup() left over from the old Mach VM code. Also nuke iprintf(), which was no longer used anywhere.
Add proclist locking where appropriate.
|
1.24 |
| 22-Jul-1999 |
thorpej | 0 -> FALSE in a few places.
|
1.23 |
| 11-Apr-1999 |
chs | add a `flags' argument to uvm_pagealloc_strat(). define a flag UVM_PGA_USERESERVE to allow non-kernel object allocations to use pages from the reserve. use the new flag for allocations in pmap modules.
|
1.22 |
| 25-Mar-1999 |
mrg | branches: 1.22.2; remove now >1 year old pre-release message.
|
1.21 |
| 25-Mar-1999 |
sommerfe | Prevent deadlock cited in PR4629 from crashing the system. (copyout and system call now just return EFAULT). A complete fix will presumably have to wait for UBC and/or for vnode locking protocols to be revamped to allow use of shared locks.
|
1.20 |
| 24-Mar-1999 |
cgd | after discussion with chuck, nuke pgo_attach from uvm_pagerops
|
1.19 |
| 04-Mar-1999 |
chs | fix printf arg types.
|
1.18 |
| 29-Jan-1999 |
bouyer | A small typo fix, + enclose "used_vnode_size = %qu" debug printf inside #ifdef DEBUG/#endif
|
1.17 |
| 04-Nov-1998 |
chs | branches: 1.17.2; we must unlock a vp's object's lock before calling vrele().
|
1.16 |
| 18-Oct-1998 |
chs | shift by PAGE_SHIFT instead of multiplying or dividing by PAGE_SIZE.
|
1.15 |
| 13-Aug-1998 |
eeh | Merge paddr_t changes into the main branch.
|
1.14 |
| 09-Aug-1998 |
perry | bzero->memset, bcopy->memcpy, bcmp->memcmp
|
1.13 |
| 07-Jul-1998 |
thorpej | branches: 1.13.2; Add support for mmap'ing disk block devices.
|
1.12 |
| 24-Jun-1998 |
sommerfe | Always include fifos; "not an option any more".
|
1.11 |
| 22-Jun-1998 |
sommerfe | defopt for options FIFO
|
1.10 |
| 05-May-1998 |
kleink | Remove inclusions of syscall (and syscall argument) related header files; we don't need them here.
|
1.9 |
| 11-Mar-1998 |
chuck | bug fix: when doing uvm_vnp_sync() actually skip over blocked uvn's so that we don't try and sync them later. should get rid of the "uvm_vnp_sync: dying vnode on sync list" related warnings that were occuring during a "make install."
|
1.8 |
| 09-Mar-1998 |
mrg | KNF.
|
1.7 |
| 01-Mar-1998 |
fvdl | Merge with Lite2 + local changes
|
1.6 |
| 19-Feb-1998 |
thorpej | Include the NFS option header.
|
1.5 |
| 18-Feb-1998 |
mrg | bug fix from chuck: uvm_vnp_terminate panic when /sbin/init was unlinked
|
1.4 |
| 10-Feb-1998 |
mrg | - add defopt's for UVM, UVMHIST and PMAP_NEW. - remove unnecessary UVMHIST_DECL's.
|
1.3 |
| 07-Feb-1998 |
mrg | restore rcsids
|
1.2 |
| 06-Feb-1998 |
thorpej | RCS ID police.
|
1.1 |
| 05-Feb-1998 |
mrg | branches: 1.1.1; Initial revision
|
1.1.1.1 |
| 05-Feb-1998 |
mrg | initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some minor portions derived from the old Mach code. i provided some help getting swap and paging working, and other bug fixes/ideas. chuck silvers <chuq@chuq.com> also provided some other fixes.
this is the UVM kernel code portion.
this will be KNF'd shortly. :-)
|
1.13.2.1 |
| 30-Jul-1998 |
eeh | Split vm_offset_t and vm_size_t into paddr_t, psize_t, vaddr_t, and vsize_t.
|
1.17.2.8 |
| 02-Jun-1999 |
chs | implement UFP_NORDONLY.
|
1.17.2.7 |
| 30-May-1999 |
chs | add uvm_vnp_asyncget() and uvn_doasyncget() for doing readahead. in uvm_vnp_sync(), use an async uvn_flush() again. remove uvm_vnp_setpageblknos().
|
1.17.2.6 |
| 30-Apr-1999 |
chs | fix uvn_flush() to actually wait for sync i/os. fix uvm_vnp_setpageblknos() to deal with big ranges. fix uvm_vnp_zerorange() to not be just totally wrong. also, use the new ubc_alloc() interface.
|
1.17.2.5 |
| 29-Apr-1999 |
chs | temporarily make uvm_vnp_sync() use sync io. make uvm_vnp_zerorange() deal with ranges larger than 1 ubc window.
|
1.17.2.4 |
| 09-Apr-1999 |
chs | fix vnode reference-counting in uvm_vnp_sync().
|
1.17.2.3 |
| 25-Feb-1999 |
chs | delete non-UBC parts of uvn_attach(), uvn_reference(), uvn_detach(), uvm_vnp_terminate(), uvm_vnp_uncache(). add uvn_findpages(), for looking-up/allocating multiple pages. allow async vnode pageouts. lock the writeable list when remove vnodes from it too. rename uvm_vnp_relocate() to uvm_vnp_setpageblknos() and expand its functionality to optionally zero the pages. add uvm_vnp_zerorange(), incomplete but does enough for the moment. use LIST_* macros and SLOCK_{,UN}LOCKED.
|
1.17.2.2 |
| 16-Nov-1998 |
chs | uvn_put() now unlocks the uobj before calling VOP_PUTPAGES(). move the important line of uvm_vnp_setsize() outside the debug ifdef. adjust other debugging code.
|
1.17.2.1 |
| 09-Nov-1998 |
chs | initial snapshot. lots left to do.
|
1.22.2.2 |
| 31-Jan-2000 |
he | Pull up revision 1.28 (via patch, requested by chs): Remove a debug printf that has outlived its usefulness.
|
1.22.2.1 |
| 16-Apr-1999 |
chs | branches: 1.22.2.1.2; pull up 1.22 -> 1.23: add a `flags' argument to uvm_pagealloc_strat(). define a flag UVM_PGA_USERESERVE to allow non-kernel object allocations to use pages from the reserve. use the new flag for allocations in pmap modules.
|
1.22.2.1.2.9 |
| 31-Aug-1999 |
perseant | Rudimentary support for LFS under UBC:
- LFS-specific VOP_BALLOC and VOP_PUTPAGES vnode ops.
- getblk VREG panic #ifdef'd out (can be reinstated when Ifile is internalized and Ifile can be made another type from VREG)
- interface to VOP_PUTPAGES changed to pass all pager flags, not just sync. FS putpages routines must know about the pager flags.
- new LFS magic disk address, -2 ("unwritten"), meaning accounted for but not assigned to a fixed disk location (since LFS does these two things separately, and the previous accounting method using buffer headers no longer will work). Changed references to (foo == (daddr_t)-1) to (foo < 0). Since disk drivers reject all addresses < 0, this should not present a problem for other FSs.
|
1.22.2.1.2.8 |
| 11-Aug-1999 |
chs | fix uvn_flush() to work now that vnode offsets are signed.
|
1.22.2.1.2.7 |
| 09-Aug-1999 |
chs | create a new type "voff_t" for uvm_object offsets and define it to be "off_t". also, remove pgo_asyncget().
|
1.22.2.1.2.6 |
| 06-Aug-1999 |
chs | clean up some leftovers.
|
1.22.2.1.2.5 |
| 02-Aug-1999 |
thorpej | Update from trunk.
|
1.22.2.1.2.4 |
| 31-Jul-1999 |
chs | in uvn_findpage(), ignore any offsets where the return page pointer is non-NULL.
|
1.22.2.1.2.3 |
| 11-Jul-1999 |
chs | remove uvm_vnp_uncache(), it's not needed anymore. use uvm_errno2vmerror(). put uvm_vnp_zerorange() back the way it was before, it was right the first time.
|
1.22.2.1.2.2 |
| 04-Jul-1999 |
chs | remove UVM_VNODE_* flags in favor of V* vnode flags. rewrite uvm_vnp_zerorange(). it's still wrong, but it's closer. update stuff to use buf instead of uvm_aiobuf. uvm_vnp_asyncget() can now determine the blocksize from the vnode rather than needing it to be passed in.
|
1.22.2.1.2.1 |
| 07-Jun-1999 |
chs | merge everything from chs-ubc branch.
|
1.26.6.1 |
| 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
1.26.4.1 |
| 15-Nov-1999 |
fvdl | Sync with -current
|
1.26.2.8 |
| 23-Mar-2001 |
bouyer | Make sure files that shouldn't change are identical to HEAD.
|
1.26.2.7 |
| 12-Mar-2001 |
bouyer | Sync with HEAD.
|
1.26.2.6 |
| 11-Feb-2001 |
bouyer | Sync with HEAD.
|
1.26.2.5 |
| 18-Jan-2001 |
bouyer | Sync with head (for UBC+NFS fixes, mostly).
|
1.26.2.4 |
| 05-Jan-2001 |
bouyer | Sync with HEAD
|
1.26.2.3 |
| 08-Dec-2000 |
bouyer | Sync with HEAD.
|
1.26.2.2 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago
|
1.26.2.1 |
| 20-Oct-1999 |
thorpej | Sync w/ trunk.
|
1.33.4.1 |
| 15-Nov-2001 |
he | Apply patch (requested by chs): Make sure to initialize uio_procp in uvn_io(). Fixes kernel crash problem, reported in PR#14185.
|
1.46.2.13 |
| 17-Sep-2002 |
nathanw | Catch up to -current.
|
1.46.2.12 |
| 16-Jul-2002 |
nathanw | Whitespace.
|
1.46.2.11 |
| 12-Jul-2002 |
nathanw | No longer need to pull in lwp.h; proc.h pulls it in for us.
|
1.46.2.10 |
| 24-Jun-2002 |
nathanw | Curproc->curlwp renaming.
Change uses of "curproc->l_proc" back to "curproc", which is more like the original use. Bare uses of "curproc" are now "curlwp".
"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL) so that it is always safe to reference curproc (*de*referencing curproc is another story, but that's always been true).
|
1.46.2.9 |
| 20-Jun-2002 |
nathanw | Catch up to -current.
|
1.46.2.8 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.46.2.7 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.46.2.6 |
| 26-Sep-2001 |
nathanw | Catch up to -current. Again.
|
1.46.2.5 |
| 21-Sep-2001 |
nathanw | Catch up to -current.
|
1.46.2.4 |
| 24-Aug-2001 |
nathanw | Catch up with -current.
|
1.46.2.3 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.46.2.2 |
| 09-Apr-2001 |
nathanw | Catch up with -current.
|
1.46.2.1 |
| 05-Mar-2001 |
nathanw | Initial commit of scheduler activations and lightweight process support.
|
1.50.2.4 |
| 10-Oct-2002 |
jdolecek | sync kqueue with -current; this includes merge of gehenna-devsw branch, merge of i386 MP branch, and part of autoconf rototil work
|
1.50.2.3 |
| 23-Jun-2002 |
jdolecek | catch up with -current on kqueue branch
|
1.50.2.2 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.50.2.1 |
| 25-Aug-2001 |
thorpej | Merge Aug 24 -current into the kqueue branch.
|
1.51.2.2 |
| 01-Oct-2001 |
fvdl | Catch up with -current.
|
1.51.2.1 |
| 07-Sep-2001 |
thorpej | Commit my "devvp" changes to the thorpej-devvp branch. This replaces the use of dev_t in most places with a struct vnode *.
This will form the basic infrastructure for real cloning device support (besides being architecurally cleaner -- it'll be good to get away from using numbers to represent objects).
|
1.54.2.1 |
| 12-Nov-2001 |
thorpej | Sync the thorpej-mips-cache branch with -current.
|
1.57.8.2 |
| 30-May-2002 |
gehenna | Catch up with -current.
|
1.57.8.1 |
| 16-May-2002 |
gehenna | Replace the direct-access to devsw table with calling devsw APIs.
|
1.62.2.7 |
| 11-Dec-2005 |
christos | Sync with head.
|
1.62.2.6 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.62.2.5 |
| 17-Jan-2005 |
skrll | Sync with HEAD.
|
1.62.2.4 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.62.2.3 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.62.2.2 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.62.2.1 |
| 02-Jul-2003 |
darrenr | Apply the aborted ktrace-lwp changes to a specific branch. This is just for others to review, I'm concerned that patch fuziness may have resulted in some errant code being generated but I'll look at that later by comparing the diff from the base to the branch with the file I attempt to apply to it. This will, at the very least, put the changes in a better context for others to review them and attempt to tinker with removing passing of 'struct lwp' through the kernel.
|
1.66.8.2 |
| 29-Nov-2005 |
yamt | sync with head.
|
1.66.8.1 |
| 19-Nov-2005 |
yamt | - as read-ahead context is per-vnode now, there are less reasons to make VOP_READ call uvm_ra_request explicitly. move it to pager (uvn_get) so that it can handle accesses via mmap as well. - pass advice to pager via ubc. - tweak DPRINTF.
XXX can be disturbed by PGO_LOCKED.
XXX it's controversial where it should be done. (uvm_fault, uvn_get or genfs_getpages.)
|
1.66.2.7 |
| 21-Jan-2008 |
yamt | sync with head
|
1.66.2.6 |
| 07-Dec-2007 |
yamt | sync with head
|
1.66.2.5 |
| 27-Oct-2007 |
yamt | sync with head.
|
1.66.2.4 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.66.2.3 |
| 26-Feb-2007 |
yamt | sync with head.
|
1.66.2.2 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.66.2.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.69.12.1 |
| 24-May-2006 |
tron | Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
|
1.69.10.1 |
| 08-Mar-2006 |
elad | Adapt to kernel authorization changes.
|
1.69.8.3 |
| 11-Aug-2006 |
yamt | sync with head
|
1.69.8.2 |
| 24-May-2006 |
yamt | sync with head.
|
1.69.8.1 |
| 12-Mar-2006 |
yamt | - change the way to account read-ahead stats. - fix UVM_PQFLAGBITS.
|
1.69.6.1 |
| 01-Jun-2006 |
kardel | Sync with head.
|
1.69.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.72.4.2 |
| 12-Jan-2007 |
ad | Sync with head.
|
1.72.4.1 |
| 18-Nov-2006 |
ad | Sync with head.
|
1.73.2.2 |
| 10-Dec-2006 |
yamt | sync with head.
|
1.73.2.1 |
| 22-Oct-2006 |
yamt | sync with head
|
1.77.2.1 |
| 17-Feb-2007 |
tron | Apply patch (requested by chs in ticket #422): - Fix various deadlock problems with nullfs and unionfs. - Speed up path lookups by upto 25%.
|
1.78.2.2 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
1.78.2.1 |
| 27-Feb-2007 |
yamt | - sync with head. - move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
|
1.81.4.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.81.2.10 |
| 09-Oct-2007 |
ad | Sync with head.
|
1.81.2.9 |
| 20-Aug-2007 |
ad | Sync with HEAD.
|
1.81.2.8 |
| 15-Jul-2007 |
ad | Sync with head.
|
1.81.2.7 |
| 15-Jul-2007 |
ad | Sync with head.
|
1.81.2.6 |
| 17-Jun-2007 |
ad | - Increase the number of thread priorities from 128 to 256. How the space is set up is to be revisited. - Implement soft interrupts as kernel threads. A generic implementation is provided, with hooks for fast-path MD code that can run the interrupt threads over the top of other threads executing in the kernel. - Split vnode::v_flag into three fields, depending on how the flag is locked (by the interlock, by the vnode lock, by the file system). - Miscellaneous locking fixes and improvements.
|
1.81.2.5 |
| 09-Jun-2007 |
ad | Sync with head.
|
1.81.2.4 |
| 13-Apr-2007 |
ad | - Make the devsw interface MP safe, and add some comments. - Allow individual block/character drivers to be marked MP safe. - Provide wrappers around the device methods that look up the device, returning ENXIO if it's not found, and acquire the kernel lock if needed.
|
1.81.2.3 |
| 13-Apr-2007 |
ad | - Fix a (new) bug where vget tries to acquire freed vnodes' interlocks. - Minor locking fixes.
|
1.81.2.2 |
| 21-Mar-2007 |
ad | Acquire the kernel lock in the VOP_* wrappers and the socket ops.
|
1.81.2.1 |
| 13-Mar-2007 |
ad | Pull in the initial set of changes for the vmlocking branch.
|
1.83.2.1 |
| 15-Aug-2007 |
skrll | Sync with HEAD.
|
1.84.4.3 |
| 03-Dec-2007 |
joerg | Sync with HEAD.
|
1.84.4.2 |
| 26-Oct-2007 |
joerg | Sync with HEAD.
Follow the merge of pmap.c on i386 and amd64 and move pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup code to restore CR4 before jumping back into kernel space as the large page option might cover that.
|
1.84.4.1 |
| 04-Aug-2007 |
jmcneill | Sync with HEAD.
|
1.85.6.2 |
| 04-Aug-2007 |
pooka | Use VSIZENOTSET only in KASSERTs
|
1.85.6.1 |
| 04-Aug-2007 |
pooka | file uvm_vnode.c was added on branch matt-mips64 on 2007-08-04 09:42:59 +0000
|
1.85.4.1 |
| 14-Oct-2007 |
yamt | sync with head.
|
1.85.2.2 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.85.2.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.87.4.2 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.87.4.1 |
| 08-Dec-2007 |
mjf | Sync with HEAD.
|
1.89.6.1 |
| 02-Jan-2008 |
bouyer | Sync with HEAD
|
1.89.2.2 |
| 18-Dec-2007 |
ad | Lock readahead context using the associated object's lock.
|
1.89.2.1 |
| 04-Dec-2007 |
ad | Pull the vmlocking changes into a new branch.
|
1.90.28.4 |
| 29-Feb-2012 |
matt | Improve UVM_PAGE_TRKOWN. Add more asserts to uvm_page.
|
1.90.28.3 |
| 03-Jun-2011 |
matt | Restore $NetBSD$
|
1.90.28.2 |
| 03-Jun-2011 |
matt | Rework page free lists to be sorted by color first rather than free_list. Kept per color PGFL_* counter in each page free list. Minor cleanups.
|
1.90.28.1 |
| 25-May-2011 |
matt | Make uvm_map recognize UVM_FLAG_COLORMATCH which tells uvm_map that the 'align' argument specifies the starting color of the KVA range to be returned.
When calling uvm_km_alloc with UVM_KMF_VAONLY, also specify the starting color of the kva range returned (UMV_KMF_COLORMATCH) and pass those to uvm_map.
In uvm_pglistalloc, make sure the pages being returned have sequentially advancing colors (so they can be mapped in a contiguous address range). Add a few missing UVM_FLAG_COLORMATCH flags to uvm_pagealloc calls.
Make the socket and pipe loan color-safe.
Make the mips pmap enforce strict page color (color(VA) == color(PA)).
|
1.90.10.2 |
| 11-Mar-2010 |
yamt | sync with head
|
1.90.10.1 |
| 19-Aug-2009 |
yamt | sync with head.
|
1.93.8.1 |
| 08-Feb-2011 |
bouyer | Sync with HEAD
|
1.93.6.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.93.4.4 |
| 31-May-2011 |
rmind | sync with head
|
1.93.4.3 |
| 05-Mar-2011 |
rmind | sync with head
|
1.93.4.2 |
| 17-Mar-2010 |
rmind | Reorganise UVM locking to protect P->V state and serialise pmap(9) operations on the same page(s) by always locking their owner. Hence lock order: "vmpage"-lock -> pmap-lock.
Patch, proposed on tech-kern@, from Andrew Doran.
|
1.93.4.1 |
| 16-Mar-2010 |
rmind | Change struct uvm_object::vmobjlock to be dynamically allocated with mutex_obj_alloc(). It allows us to share the locks among UVM objects.
|
1.93.2.6 |
| 21-Nov-2010 |
uebayasi | uvm_findpage_xip: A few UVMHIST logs.
|
1.93.2.5 |
| 20-Nov-2010 |
uebayasi | uvn_findpage_xip: This is responsible to return a page with marked as "busy".
|
1.93.2.4 |
| 18-Nov-2010 |
uebayasi | Make XIP pager use cdev_mmap() instead of struct vm_physseg.
|
1.93.2.3 |
| 16-Nov-2010 |
uebayasi | Factor out the part which lookups physical page "identity" from UVM object, into sys/uvm/uvm_vnode.c:uvn_findpage_xip(). Eventually this will become a call to cdev UVM object pager.
|
1.93.2.2 |
| 25-Aug-2010 |
uebayasi | Actually make this build with options XIP.
|
1.93.2.1 |
| 11-Feb-2010 |
uebayasi | uvn_get: For XIP vnodes, skip read-ahead, because it's pointless.
|
1.95.2.1 |
| 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
1.97.8.1 |
| 11-Jun-2012 |
riz | Pull up following revision(s) (requested by martin in ticket #301): sys/uvm/uvm_vnode.c: revision 1.98 tests/lib/libc/sys/t_mmap.c: revision 1.3 tests/lib/libc/sys/t_mmap.c: revision 1.4 tests/lib/libc/sys/t_mmap.c: revision 1.5 tests/lib/libc/sys/t_mmap.c: revision 1.6 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). Do not skip the block device mmap test, as it does not crash the kernel any more. Mark it as expected failure instead. mmap_block: do not use a hardcoded block device list, but query the kernel for attached disks instead, then try to mmap the raw partition. Use atf_tc_skip(). A test case for serious PR kern/38889: crash on open/mmap/close of block device. The test case is skipped for the time being as it replicates the panic described in the PR (tested on NetBSD/amd64 6.0 BETA).
|
1.97.6.1 |
| 02-Jun-2012 |
mrg | sync to latest -current.
|
1.97.2.9 |
| 02-Nov-2012 |
yamt | uvn_findpage: fix dense case. add comments.
|
1.97.2.8 |
| 30-Oct-2012 |
yamt | sync with head
|
1.97.2.7 |
| 01-Aug-2012 |
yamt | - fix integrity sync. putpages for integrity sync (fsync, msync with MS_SYNC, etc) should not skip pages being written back by other threads.
- adapt to radix tree tag api changes.
|
1.97.2.6 |
| 01-Aug-2012 |
yamt | fix a typo in a comment.
|
1.97.2.5 |
| 17-Feb-2012 |
yamt | byebye PG_HOLE as it turned out to be unnecessary.
|
1.97.2.4 |
| 18-Jan-2012 |
yamt | - bug fixes - minor optimizations - assertions - comments
|
1.97.2.3 |
| 20-Dec-2011 |
yamt | don't inline uvn_findpages in genfs_io.
|
1.97.2.2 |
| 26-Nov-2011 |
yamt | - uvm_page_array_fill: add some more parameters - uvn_findpages: use gang-lookup - genfs_putpages: re-enable backward clustering - mechanical changes after the recent radixtree.h api changes
|
1.97.2.1 |
| 02-Nov-2011 |
yamt | page cache related changes
- maintain object pages in radix tree rather than rb tree. - 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. - fix nfs commit range tracking. - fix nfs write clustering. XXX hack
|
1.99.16.2 |
| 27-Dec-2015 |
skrll | Sync with HEAD (as of 26th Dec)
|
1.99.16.1 |
| 22-Sep-2015 |
skrll | Sync with HEAD
|
1.99.2.1 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.102.10.1 |
| 02-Nov-2017 |
snj | Pull up following revision(s) (requested by pgoyette in ticket #335): share/man/man9/kernhist.9: 1.5-1.8 sys/arch/acorn26/acorn26/pmap.c: 1.39 sys/arch/arm/arm32/fault.c: 1.105 via patch sys/arch/arm/arm32/pmap.c: 1.350, 1.359 sys/arch/arm/broadcom/bcm2835_bsc.c: 1.7 sys/arch/arm/omap/if_cpsw.c: 1.20 sys/arch/arm/omap/tiotg.c: 1.7 sys/arch/evbarm/conf/RPI2_INSTALL: 1.3 sys/dev/ic/sl811hs.c: 1.98 sys/dev/usb/ehci.c: 1.256 sys/dev/usb/if_axe.c: 1.83 sys/dev/usb/motg.c: 1.18 sys/dev/usb/ohci.c: 1.274 sys/dev/usb/ucom.c: 1.119 sys/dev/usb/uhci.c: 1.277 sys/dev/usb/uhub.c: 1.137 sys/dev/usb/umass.c: 1.160-1.162 sys/dev/usb/umass_quirks.c: 1.100 sys/dev/usb/umass_scsipi.c: 1.55 sys/dev/usb/usb.c: 1.168 sys/dev/usb/usb_mem.c: 1.70 sys/dev/usb/usb_subr.c: 1.221 sys/dev/usb/usbdi.c: 1.175 sys/dev/usb/usbdi_util.c: 1.67-1.70 sys/dev/usb/usbroothub.c: 1.3 sys/dev/usb/xhci.c: 1.75 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: 1.34 sys/kern/kern_history.c: 1.15 sys/kern/kern_xxx.c: 1.74 sys/kern/vfs_bio.c: 1.275-1.276 sys/miscfs/genfs/genfs_io.c: 1.71 sys/sys/kernhist.h: 1.21 sys/ufs/ffs/ffs_balloc.c: 1.63 sys/ufs/lfs/lfs_vfsops.c: 1.361 sys/ufs/lfs/ulfs_inode.c: 1.21 sys/ufs/lfs/ulfs_vnops.c: 1.52 sys/ufs/ufs/ufs_inode.c: 1.102 sys/ufs/ufs/ufs_vnops.c: 1.239 sys/uvm/pmap/pmap.c: 1.37-1.39 sys/uvm/pmap/pmap_tlb.c: 1.22 sys/uvm/uvm_amap.c: 1.108 sys/uvm/uvm_anon.c: 1.64 sys/uvm/uvm_aobj.c: 1.126 sys/uvm/uvm_bio.c: 1.91 sys/uvm/uvm_device.c: 1.66 sys/uvm/uvm_fault.c: 1.201 sys/uvm/uvm_km.c: 1.144 sys/uvm/uvm_loan.c: 1.85 sys/uvm/uvm_map.c: 1.353 sys/uvm/uvm_page.c: 1.194 sys/uvm/uvm_pager.c: 1.111 sys/uvm/uvm_pdaemon.c: 1.109 sys/uvm/uvm_swap.c: 1.175 sys/uvm/uvm_vnode.c: 1.103 usr.bin/vmstat/vmstat.c: 1.219 Reorder to test for null before null deref in debug code -- Reorder to test for null before null deref in debug code -- KNF -- No need for '\n' in UVMHIST_LOG -- normalise a BIOHIST log message -- 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. -- For some reason this single kernel seems to have outgrown its declared size as a result of the kernhist(9) changes. Bump the size. XXX The amount of increase may be excessive - anyone with more detailed XXX knowledge please feel free to further adjust the value appropriately. -- Misssed one cast of pointer --> uintptr_t in previous kernhist(9) commit -- And yet another one. :( -- Use correct mark-up for NetBSD version. -- More improvements in grammar and readability. -- Remove a stray '"' (obvious typo) and add a couple of casts that are probably needed. -- And replace an instance of "%p" conversion with "%#jx" -- Whitespace fix. Give Bl tag table a width. Fix Xr.
|
1.103.4.1 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.104.2.2 |
| 29-Feb-2020 |
ad | Sync with head.
|
1.104.2.1 |
| 17-Jan-2020 |
ad | Sync with head.
|
1.117.2.1 |
| 03-Apr-2021 |
thorpej | Sync with HEAD.
|