summaryrefslogtreecommitdiff
path: root/usr.sbin/pstat
AgeCommit message (Collapse)Author
2020-09-28Fix segfault in pstat -vTheo Buehler
Broken in r1.122 when the vnode list at the mount point was converted to a TAILQ to make softdeps happy. There was a for loop that looked a lot like a LIST_FOREACH that was converted to a TAILQ_FOREACH. Unfortunately, the loop is a bit more intricate. Revert to the original loop logic, but now with TAILQ. "looks correct" millert, "looks good" deraadt
2020-04-23 ce examples of "Ar arg Ar arg" with "Ar arg arg" and stop the spread;Jason McIntyre
2020-02-08correct Research Unix edition "appeared in" use in HISTORYJonathan Gray
Starting from "Combined Table of Contents" in Doug McIlroy's "A Research UNIX Reader" a table of which edition manuals appeared in. Checked against manuals from bitsavers/TUHS and source from TUHS where available. Ingo points out there are cases where something is included but not documented until a later release. bcd(6) v6 v7 printf(3) v2 v4 abort(3) v5 v6 system(3) v6 v7 fmod(3) v5 v6 ok schwarze@
2020-01-10Convert the vnode list at the mount point into a tailq. DuringAlexander Bluhm
unmount this list is traversed and the dirty vnodes are flushed to disk. Forced unmount expects that the list is empty after flushing, otherwise the kernel panics with "dangling vnode". As the write to disk can sleep, new vnodes may be inserted. If softdep is enabled, resolving the dependencies creates new dirty vnodes and inserts them to the list. To fix the panic, let insmntque() insert new vnodes at the tail of the list. Then vflush() will still catch them while traversing the list in forward direction. OK tedu@ millert@ visa@
2019-04-23add some missing "pp." to .%P macros;Ingo Schwarze
Fabio Scotoni <fabio at esse dot ch> reported it was missing in eqn(7)
2019-02-05dev_t is signed to permit passing -1 as an invalid condition, but theTheo de Raadt
decomposition into major and minor is unsigned, so we should print them with %u instead of %d. ok guenther
2018-09-10Fix previous commit. It mistakenly included a change for debug.YASUOKA Masahiko
2018-09-07Fix "_nfiles" reference for crash dump.YASUOKA Masahiko
Diff from fukaumi at soum.co.jp ok mpi
2018-08-03unveil _PATH_DEVDB for devname(). All other filenames are openedTheo de Raadt
before unveil/pledge.
2018-06-18Put file descriptors on shared data structures when they are completelyMartin Pieuchot
setup, take 3. LARVAL fd still exist, but they are no longer marked with a flag and no longer reachable via `fd_ofiles[]' or the global linked list. This allows us to simplifies a lot code grabbing new references to fds. All of this is now possible because dup2(2) refuses to clone LARVAL fds. Note that the `fdplock' could now be release in all open(2)-like syscalls, just like it is done in accept(2). With inputs from Mathieu Masson, visa@, guenther@ and art@ Previous version ok bluhm@, ok visa@, sthen@
2018-06-05Revert introduction of fdinsert(), a sanitify check triggers whenMartin Pieuchot
closing a LARVAL file. Found the hardway by sthen@.
2018-06-02LARVAL fds are now invisble from userland.Martin Pieuchot
From tb@
2018-01-02Stop assuming <sys/file.h> will pull in fcntl.h when _KERNEL is defined.Philip Guenther
ok millert@ sthen@
2017-02-09Teach pstat -d to also print untyped kernel symbols.Jeremie Courreges-Anglas
Storage defined in assembly code often doesn't define its type and size, thus the nlist interface can't present it as N_DATA. Instead of fixing all the assembly by adding .type pseudo ops, work around the problem in pstat. Let's hope that allowing N_COMM is sufficient. This makes ''pstat -d u cpuid_level'' useful. Reported by mikeb@, "looks sane" mikeb@ guenther@
2016-11-26Remove leftovers of line disciplines that are no more.Martin Pieuchot
ok mikeb@
2016-10-23For -d, if there is no modifier, don't go down the "longformat" path.Mark Kettenis
Fixes cases like "pstat -d x ticks" on armv7. ok jca@, deraadt@
2016-09-25Make a move towards ending 4 decades of kernel snooping.Theo de Raadt
Add sysctl kern.allowkmem (default 0) which controls the ability to open /dev/mem or /dev/kmem at securelevel > 0. Over 15 years we converted 99% of utilities in the tree to operate on sysctl-nodes (either by themselves or via code hiding in the guts of -lkvm). pstat -d and -v & procmap are affected and continued use of them will require kern.allowkmem=1 in /etc/sysctl.conf. acpidump (and it's buddy sendbug) are affected, but we'll work out a solution soon. There will be some impact in ports. ok kettenis guenther
2016-09-19Add pledge support to pstatTheo Buehler
The filemode(), ttymode() and vnodemode() functions can be split into two pieces. The *_prep() piece must be hoisted to before pledge and the rest can run under pledge "stdio rpath vminfo". The magic block that decides which ones of the *_prep() pieces must be run with which combination of command line switches is quite impressive. Patch from Rob Pierce, thanks! ok deraadt
2016-09-19Fix pstat -ft. In presence of the -f flag, a logic error in ttymode()Theo Buehler
leads to entering codepaths that try to work with only partially initialized kvm structures -- with unsurprising outcomes. Problem found by Rob Pierce, ok deraadt
2016-08-14Convert %q to %ll and cast opaque system values to long long.Philip Guenther
Use uint64_t for the KERN_INTRCNT_CNT sysctl() ok krw@
2016-07-18Fix VFLAG formattingPhilip Guenther
ok bluhm@
2016-06-03correct synopsis to make -d usage clearer.Theo de Raadt
The shed fell over because 15 layers of paint exceeded engineering margins.
2016-05-27W^X violations are no longer permitted by default. A kernel log messageTheo de Raadt
is generated, and mprotect/mmap return ENOTSUP. If the sysctl(8) flag kern.wxabort is set then a SIGABRT occurs instead, for gdb use or coredump creation. W^X violating programs can be permitted on a ffs/nfs filesystem-basis, using the "wxallowed" mount option. One day far in the future upstream software developers will understand that W^X violations are a tremendously risky practice and that style of programming will be banished outright. Until then, we recommend most users need to use the wxallowed option on their /usr/local filesystem. At least your other filesystems don't permit such programs. ok jca kettenis mlarkin natano
2016-05-25remove code to display MNT_EXKERB bitTheo de Raadt
2016-04-25remove systraceTed Unangst
2016-04-12The -T flag consumes the same data as the -f flag so it requiresTodd C. Miller
nlist too. Fixes a crash when the -T flag is specified due to calling kvm_read() with a NULL kvm_t. From Rob Pierce
2015-12-11dformat is pointer, don't compare with 0Ted Unangst
2015-08-28Rework the UNIX domain socket garbage collector, including ideas fromPhilip Guenther
{Free,Net}BSD - when a socket is closed with fds in its input, defer closing them to a task to avoid recursing. This eliminates the complicated extra reference taking which had a 37 line(!) comment explanation - move flags, counts, and links only needed for this from struct file to struct unpcb - document the flow of the mark/sweep collector much help from claudio@ who made me explain the GC to him until we trusted it ok claudio@ mpi@ deraadt@
2015-03-11Remove setgid kmem support. As a result, -d and -v will require you toTheo de Raadt
run this as root. ok millert, also discussed with guenther
2015-02-10Fix -d output of smaller than 64 bit values on big-endian systems.Miod Vallat
ok mpi@ tedu@
2015-01-16Replace <sys/param.h> with <limits.h> and other less dirty headers whereTheo de Raadt
possible. Annotate <sys/param.h> lines with their current reasons. Switch to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where sensible to avoid pulling in the pollution. These are the files confirmed through binary verification. ok guenther, millert, doug (helped with the verification protocol)
2014-12-19don't print vnodes if we didn't read themTed Unangst
2014-12-191. -T (totalflag) requires nlist too.Ted Unangst
2. If we can't read a vnode, there's no way LIST_NEXT is going to be meaningful. 3. set numvnodes before looping in case we return early. getting better, but still not all fixed
2014-11-23<sys/buf.h> isn't actually needed herePhilip Guenther
ok tedu@
2014-11-19delete the KERN_VNODE sysctl. it fails to provide any isolation from theTed Unangst
kernel struct vnode defintion, and the only consumer (pstat) still needs kvm to read much of the required information. no great loss to always use kvm until there's a better replacement interface. ok deraadt millert uebayasi
2014-10-08use reallocarray(NULL, a, b) instead of malloc(a*b)Theo de Raadt
ok doug
2014-10-01Do not mention sliplogin(8) and sl(4).Martin Pieuchot
2014-08-20Remove userland bits related to the crypto(4) interface; ok deraadtMike Belopuhov
2014-07-16zap trailing newlines; "go for it" deraadtOkan Demirmen
2014-03-19Pull in FreeBSD r37363 and r37887:Philip Guenther
-- Sync timestamp changes for inodes of special files to disk as late as possible (when the inode is reclaimed). Temporarily only do this if option UFS_LAZYMOD configured and softupdates aren't enabled. UFS_LAZYMOD is intentionally left out of /sys/conf/options. This is mainly to avoid almost useless disk i/o on battery powered machines. It's silly to write to disk (on the next sync or when the inode becomes inactive) just because someone hit a key or something wrote to the screen or /dev/null. -- Made lazy syncing of timestamps for special files non-optional. -- Also, include support in 'pstat -v' to display the IN_LAZYMOD flag. ok tedu@ millert@
2014-02-16fix bibliographical references; from Jan Stary <hans at stare dot cz>Ingo Schwarze
feedback and ok jmc@
2013-12-01Change 'mountlist' from CIRCLEQ to TAILQ. Be paranoid andKenneth R Westerback
use TAILQ_*_SAFE more than might be needed. Bulk ports build by sthen@ showed nobody sticking their fingers so deep into the kernel. Feedback and suggestions from millert@. ok jsing@
2013-11-12ensure there are prototypesTheo de Raadt
2013-10-22- add UNIX-domain socket info to struct kinfo_file2Philip Guenther
- convert netstat from kvm_getfiles() to kvm_getfile2() using that - delete kvm_getfiles() and KERN_FILE as no longer used (bump libkvm's major) - rename kvm_getfile2() to kvm_getfiles(), kinfo_file2 to kinfo_file and KERN_FILE2 to KERN_FILE. ok deraadt@, millert@ ports scan sthen@
2013-08-22Correct format string mismatches turned up by -Wformat=2Philip Guenther
suggestions and ok millert@
2013-06-05Move FHASLOCK from f_flag to f_iflags, freeing up a bit for passingPhilip Guenther
O_* flags and eliminating an XXX comment. ok matthew@ deraadt@
2013-04-21Tweak #include order to work during the big time_t transitionPhilip Guenther
noted by matthieu@
2013-03-24Do not leak kernel pointers, unless operating as root. Some other displayTheo de Raadt
functionality is lost, but one can argue that privacy was being violated there... ok various, including bluhm and guenther
2013-01-17some simple macro fixes;Jason McIntyre
2012-12-18We no longer use struct eproc for kinfo_proc in sysctl.h so thereTodd C. Miller
is no direct need for sys/proc.h or sys/resource.h. Some consumers of kinfo_proc need these for the proc flags and rlimit defines like RLIM_INF so add the appropriate includes to them. OK deraadt@ sthen@