Home | History | Annotate | Download | only in pmap
History log of /src/usr.bin/pmap/pmap.c
RevisionDateAuthorComments
 1.58  09-Sep-2023  ad - Shrink namecache entries to 64 bytes on 32-bit platforms and use 32-bit
key values there for speed (remains 128 bytes & 64-bits on _LP64).
- Comments.
 1.57  21-Aug-2022  mlelstv Add -t option to print pmap as underlying RB tree.
Report gap/maxgap fields when dumping vm_map structure.
 1.56  04-Nov-2020  chs Restrict to root any command option that prints kernel addresses.
 1.55  22-Mar-2020  ad - Don't copy the entire namecache only to look up a few names. Walk the
data structures like cache_revlookup().

- nchash and mb_map are gone. module_map replaced lkm_map.
 1.54  09-May-2018  christos branches: 1.54.2;
handle field rename.
 1.53  04-Oct-2017  kamil branches: 1.53.2;
pmap: Refresh debugging facilities

Print vm_aslr_delta_mmap from 'struct vmspace'.
Print the WANTVA bit of 'flags' from 'struct vm_map'.
Replace %x with %#x, this improves readability of hex vs dec numbers.

Sponsored by <The NetBSD Foundation>
 1.52  14-Dec-2015  christos use ecalloc
 1.51  29-Oct-2012  para fix format string
 1.50  29-Oct-2012  para get rid of not used uvm_map flag (UVM_MAP_KMAPENT)
 1.49  19-Feb-2012  rmind branches: 1.49.2;
G/C VM_MAP_INTRSAFE flag
 1.48  27-Jan-2012  para extending vmem(9) to be able to allocated resources for it's own needs.
simplifying uvm_map handling (no special kernel entries anymore no relocking)
make malloc(9) a thin wrapper around kmem(9)
(with private interface for interrupt safety reasons)

releng@ acknowledged
 1.47  11-Oct-2011  tsutsui branches: 1.47.2;
Consistently use "%#"PRIxVADDR to print VA, not "0x%#"PRIxVADDR
or "0x%"PRIxVADDR etc. Noticed by Y.Sugahara.
 1.46  12-Jun-2011  mrg an_ref is now a uintptr_t.
 1.45  14-Dec-2009  uebayasi branches: 1.45.4;
Fix typo in previous.
 1.44  14-Dec-2009  uebayasi Merge from matt-nb5-mips64; adapt to vaddr_t / vsize_t format specifiers.
 1.43  13-Apr-2009  lukem Fix WARNS=4 issues (-Wcast-qual -Wextra -Wsign-compare)
 1.42  29-Dec-2008  christos branches: 1.42.2;
handle 64 bit time_t/dev_t
 1.41  28-Apr-2008  martin branches: 1.41.10;
Remove clause 3 and 4 from TNF licenses
 1.40  02-Jan-2008  yamt branches: 1.40.4;
remove no longer necessary lockdebug hacks.
 1.39  24-Dec-2007  ad No need to list every file system type in this file.
 1.38  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.37  21-Jul-2007  ad branches: 1.37.4; 1.37.6;
VM_MAP_BUSY, VM_MAP_WANTLOCK are no more.
 1.36  29-Jun-2007  rumble Add read-only support for SGI's Extent File System.

Reviewed by pooka@.
 1.35  06-Mar-2007  dillo Complete rename of hfsp to hfs, requested by thorpej.
 1.34  05-Mar-2007  dillo Integrate apmlabel and HFS+ file system.
 1.33  04-Mar-2007  christos add casts.
 1.32  22-Oct-2006  pooka "teach" about VT_PUFFS
 1.31  24-Jun-2006  yamt remove "XXX = <struct simplelock>" from -D output.
 1.30  29-Dec-2005  tsutsui Add preliminary support for System V Boot File System.
Written by UCHIYAMA Yasushi <uch@netbsd>.
 1.29  15-Dec-2005  reinoud Stub to pmap.c to avoid unhandled enumeration value error. Its only used
for printing purposes.

Will be modified later when UDF is finally committed after review.
Comitting has been put on halt due to dispute over a patch.
 1.28  10-Sep-2005  jmmv Initial addition of tmpfs, an efficient memory file-system. This project
was developed as part of Google's Summer of Code 2005 program. This
change adds the kernel code, the mount_tmpfs utility, a regression test
suite and does all other related changes to integrate these.

The file-system is still *experimental*. Therefore, it is disabled by
default in all kernels. However, as typically done, a commented-out
entry is added in them to ease its setup.

Note that I haven't commited the required mountd(8) changes to be able
to export tmpfs file-systems because NFS support is still very unstable
and because, before enabling it, I'd like to do some other changes.

OK'ed by my project mentor, William Studenmund (wrstuden@).
 1.27  19-Aug-2005  christos 64 bit inode changes
 1.26  11-May-2005  jmc Fix fallout from vm_anon changes
 1.25  11-Feb-2005  chs use vm_map_{min,max}() instead of dereferencing the vm_map pointer directly.
define and use vm_map_set{min,max}() for modifying these values.
remove the {min,max}_offset aliases for these vm_map fields to be more
namespace-friendly. PR 26475.
 1.24  01-Jan-2005  yamt sync with kernel. (vm_map_entry::flags)
 1.23  10-Nov-2004  christos Add V_PTY
 1.22  10-Feb-2004  matt Deal with backing out of changes in:
http://mail-index.netbsd.org/source-changes/2004/01/29/0027.html
 1.21  31-Jan-2004  atatat Lint police.
 1.20  29-Jan-2004  yamt follow the kernel vm_map_entry allocation strategy change.
 1.19  21-Oct-2003  fvdl Don't assign NULL to an integer.
 1.18  30-Jul-2003  yamt eliminate v_id.
 1.17  15-Jul-2003  itojun strlcat
 1.16  04-May-2003  atatat Build main.c with LOCKDEBUG defined so that it gets the larger kbit
definition. Since we're now passing it into pmap.c which is already
compiled that way, it would be nice if it was the right size.

Also, fix a memset bug that caused a segmentation fault when printing
the kernel's vm_map.
 1.15  04-Apr-2003  atatat Add some more intricate groveler options:

-A address Dumps the vm_amap structure found at address.

-E address Dumps the vm_map_entry structure found at address.

-S address Dumps the vmspace structure found at address.

-V address Dumps the vm_map structure found at address.

This required reorganizing the code a little, which led to some
cleanup (yay!). These new methods are executed without any extra
privileges, so you need read access on /dev/mem or on the kernel core
into which you are digging.

This should be useful for, eg, examining amaps are corrupt when being
destroyed, which can cause a kernel panic (and, hence, are no longer
connected to a map entry, or the map entry is no longer connected to a
vm_map/vmspace).

The options in the man page have also been reorganized.
 1.14  28-Mar-2003  atatat Add the capability to dump the struct vm_amap and the am_anon,
am_bckptr, am_slots, and am_anon data, if the vm_map_entry has an
amap. This adds three new debug "bits" to the -D argument, so the
namei cache dumping "bit" has been moved up.

Also, change the * that gets emitted with -vv to indicate the number
of pages skipped and the size of the area (in kilobytes).
 1.13  27-Feb-2003  atatat Clean up code in places, add some more (possible) submap names, make
better use of the submap names when dumping the kernel map, clean up
the "interface" between the main and LOCKDEBUG dependent pmap modules,
and make the heap identification work better.
 1.12  23-Feb-2003  atatat Oops. Missed some possible UVM_ET_IS*() macro uses.
 1.11  22-Feb-2003  atatat Properly print the VM_MAP_TOPDOWN flag if it is set, document the
VM_MAP_TOPDOWN flag (and the VM_MAP_DYING flag, since it never got
documented before), minor tweak to one of the examples, and use the
UVM_ET_IS*() macros instead of doing the same work manually.
 1.10  08-Jan-2003  atatat Make pmap work on LOCKDEBUG *and* non-LOCKDEBUG kernels (previously it
would fail in spectacular ways on LOCKDEBUG kernels) by compiling the
groveler code twice (the second time with LOCKDEBUG defined so that
the appropriate structures get larger in the right way). We currently
decide if we are operating on a kernel with LOCKDEBUG enabled if the
kernel's vm_map has referential integrity between a few pointers
and/or values.

Also, if you use more than one -v, you get a * on a line by itself in
between gaps in entries. It makes finding gaps much easier visually.
 1.9  06-Dec-2002  thorpej Avoid a trigraph, and fix printf formats.
 1.8  29-Oct-2002  thorpej Don't truncate the vm_map_entry offset to 32-bits when printing.
 1.7  17-Oct-2002  atatat Provides better error messages from the symbol lookups (printing
merely " == 1" is just *not* helpful).

Note which symbols were missing (better for bug reports, if anyone
files one :).

Make the kernel submap symbols optional (sparc, sparc64, most powerpc,
and the sh3 ports seem not to have a phys_map -- problem noted by
myself yesterday).

Oh, and a little misc lint cleanup while I'm here.
 1.6  12-Oct-2002  atatat Print the contents of the aref (it's small and MI -- MD code here
would be horrific).

Handle the new VM_MAP_DYING flag (and adjust the VM_MAP_TOPDOWN bit).

Check to see if 0, 1, and 2 are properly "open" and try to "adjust" if
they're not. Emit no warnings or errors here.
 1.5  19-Sep-2002  atatat Provide names for the map and submaps when doing recursive verbose
ddb-style output.
 1.4  17-Sep-2002  atatat Make error messages a little more informative. Add -R option to
recurse into submaps (a kernel thing) as suggested by Chuck Cranor,
with the output from these entries indented. Clean up and rework code
slightly, to make the recursion task much easier. Also, add a note to
the BUGS section in the man page thats mentions that stuff "just won't
work right" unless pmap is reading from the proper kernel.
 1.3  13-Sep-2002  atatat Add verbose support to the -l output, tweak verbose support for -d
output, and tweak the man page (running pmap(1) vs. the kernel_map can
have a *very* visible effect).
 1.2  01-Sep-2002  atatat Unterminated comment. Grr...
 1.1  01-Sep-2002  atatat Move pmap(1) to /usr/bin (from /usr/sbin) where it belongs.
 1.37.6.2  21-Jul-2007  ad VM_MAP_BUSY, VM_MAP_WANTLOCK are no more.
 1.37.6.1  21-Jul-2007  ad file pmap.c was added on branch matt-mips64 on 2007-07-21 20:54:13 +0000
 1.37.4.2  09-Jan-2008  matt sync with HEAD
 1.37.4.1  06-Nov-2007  matt sync with HEAD
 1.40.4.1  18-May-2008  yamt sync with head.
 1.41.10.2  21-Apr-2010  matt sync to netbsd-5
 1.41.10.1  24-Aug-2009  matt Fix some vaddr_t/vaddr_t type droppings.
 1.42.2.1  13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.45.4.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.47.2.2  30-Oct-2012  yamt sync with head
 1.47.2.1  17-Apr-2012  yamt sync with head
 1.49.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.53.2.1  21-May-2018  pgoyette Sync with HEAD
 1.54.2.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed