Module Name: src Committed By: snj Date: Thu Nov 2 21:29:53 UTC 2017
Modified Files: src/share/man/man9 [netbsd-8]: kernhist.9 src/sys/arch/acorn26/acorn26 [netbsd-8]: pmap.c src/sys/arch/arm/arm32 [netbsd-8]: fault.c pmap.c src/sys/arch/arm/broadcom [netbsd-8]: bcm2835_bsc.c src/sys/arch/arm/omap [netbsd-8]: if_cpsw.c tiotg.c src/sys/arch/evbarm/conf [netbsd-8]: RPI2_INSTALL src/sys/dev/ic [netbsd-8]: sl811hs.c src/sys/dev/usb [netbsd-8]: ehci.c if_axe.c motg.c ohci.c ucom.c uhci.c uhub.c umass.c umass_quirks.c umass_scsipi.c usb.c usb_mem.c usb_subr.c usbdi.c usbdi_util.c usbroothub.c xhci.c src/sys/external/bsd/drm2/dist/drm/i915 [netbsd-8]: i915_gem.c src/sys/kern [netbsd-8]: kern_history.c kern_xxx.c vfs_bio.c src/sys/miscfs/genfs [netbsd-8]: genfs_io.c src/sys/sys [netbsd-8]: kernhist.h src/sys/ufs/ffs [netbsd-8]: ffs_balloc.c src/sys/ufs/lfs [netbsd-8]: lfs_vfsops.c ulfs_inode.c ulfs_vnops.c src/sys/ufs/ufs [netbsd-8]: ufs_inode.c ufs_vnops.c src/sys/uvm [netbsd-8]: uvm_amap.c uvm_anon.c uvm_aobj.c uvm_bio.c uvm_device.c uvm_fault.c uvm_km.c uvm_loan.c uvm_map.c uvm_page.c uvm_pager.c uvm_pdaemon.c uvm_swap.c uvm_vnode.c src/sys/uvm/pmap [netbsd-8]: pmap.c pmap_tlb.c src/usr.bin/vmstat [netbsd-8]: vmstat.c Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.4.8.1 src/share/man/man9/kernhist.9 cvs rdiff -u -r1.38 -r1.38.8.1 src/sys/arch/acorn26/acorn26/pmap.c cvs rdiff -u -r1.103 -r1.103.10.1 src/sys/arch/arm/arm32/fault.c cvs rdiff -u -r1.349 -r1.349.2.1 src/sys/arch/arm/arm32/pmap.c cvs rdiff -u -r1.5.10.1 -r1.5.10.2 src/sys/arch/arm/broadcom/bcm2835_bsc.c cvs rdiff -u -r1.19 -r1.19.2.1 src/sys/arch/arm/omap/if_cpsw.c cvs rdiff -u -r1.6 -r1.6.8.1 src/sys/arch/arm/omap/tiotg.c cvs rdiff -u -r1.2 -r1.2.8.1 src/sys/arch/evbarm/conf/RPI2_INSTALL cvs rdiff -u -r1.97 -r1.97.8.1 src/sys/dev/ic/sl811hs.c cvs rdiff -u -r1.254.8.1 -r1.254.8.2 src/sys/dev/usb/ehci.c cvs rdiff -u -r1.82 -r1.82.6.1 src/sys/dev/usb/if_axe.c cvs rdiff -u -r1.17 -r1.17.10.1 src/sys/dev/usb/motg.c cvs rdiff -u -r1.273 -r1.273.6.1 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.118 -r1.118.8.1 src/sys/dev/usb/ucom.c cvs rdiff -u -r1.275.2.1 -r1.275.2.2 src/sys/dev/usb/uhci.c cvs rdiff -u -r1.136 -r1.136.2.1 src/sys/dev/usb/uhub.c cvs rdiff -u -r1.158 -r1.158.4.1 src/sys/dev/usb/umass.c cvs rdiff -u -r1.99 -r1.99.10.1 src/sys/dev/usb/umass_quirks.c cvs rdiff -u -r1.54 -r1.54.8.1 src/sys/dev/usb/umass_scsipi.c cvs rdiff -u -r1.165.6.1 -r1.165.6.2 src/sys/dev/usb/usb.c cvs rdiff -u -r1.69 -r1.69.2.1 src/sys/dev/usb/usb_mem.c cvs rdiff -u -r1.220 -r1.220.2.1 src/sys/dev/usb/usb_subr.c cvs rdiff -u -r1.173 -r1.173.2.1 src/sys/dev/usb/usbdi.c cvs rdiff -u -r1.66 -r1.66.2.1 src/sys/dev/usb/usbdi_util.c cvs rdiff -u -r1.2 -r1.2.14.1 src/sys/dev/usb/usbroothub.c cvs rdiff -u -r1.72.2.1 -r1.72.2.2 src/sys/dev/usb/xhci.c cvs rdiff -u -r1.33 -r1.33.10.1 \ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c cvs rdiff -u -r1.14 -r1.14.8.1 src/sys/kern/kern_history.c cvs rdiff -u -r1.73 -r1.73.10.1 src/sys/kern/kern_xxx.c cvs rdiff -u -r1.273 -r1.273.2.1 src/sys/kern/vfs_bio.c cvs rdiff -u -r1.68.6.2 -r1.68.6.3 src/sys/miscfs/genfs/genfs_io.c cvs rdiff -u -r1.18.8.1 -r1.18.8.2 src/sys/sys/kernhist.h cvs rdiff -u -r1.62 -r1.62.8.1 src/sys/ufs/ffs/ffs_balloc.c cvs rdiff -u -r1.359.4.1 -r1.359.4.2 src/sys/ufs/lfs/lfs_vfsops.c cvs rdiff -u -r1.19.2.1 -r1.19.2.2 src/sys/ufs/lfs/ulfs_inode.c cvs rdiff -u -r1.48.4.1 -r1.48.4.2 src/sys/ufs/lfs/ulfs_vnops.c cvs rdiff -u -r1.101 -r1.101.2.1 src/sys/ufs/ufs/ufs_inode.c cvs rdiff -u -r1.237 -r1.237.4.1 src/sys/ufs/ufs/ufs_vnops.c cvs rdiff -u -r1.107 -r1.107.32.1 src/sys/uvm/uvm_amap.c cvs rdiff -u -r1.63 -r1.63.22.1 src/sys/uvm/uvm_anon.c cvs rdiff -u -r1.125 -r1.125.2.1 src/sys/uvm/uvm_aobj.c cvs rdiff -u -r1.90 -r1.90.2.1 src/sys/uvm/uvm_bio.c cvs rdiff -u -r1.65 -r1.65.8.1 src/sys/uvm/uvm_device.c cvs rdiff -u -r1.199.6.1 -r1.199.6.2 src/sys/uvm/uvm_fault.c cvs rdiff -u -r1.143 -r1.143.2.1 src/sys/uvm/uvm_km.c cvs rdiff -u -r1.84 -r1.84.6.1 src/sys/uvm/uvm_loan.c cvs rdiff -u -r1.351.2.1 -r1.351.2.2 src/sys/uvm/uvm_map.c cvs rdiff -u -r1.193 -r1.193.2.1 src/sys/uvm/uvm_page.c cvs rdiff -u -r1.110 -r1.110.22.1 src/sys/uvm/uvm_pager.c cvs rdiff -u -r1.108 -r1.108.22.1 src/sys/uvm/uvm_pdaemon.c cvs rdiff -u -r1.174 -r1.174.10.1 src/sys/uvm/uvm_swap.c cvs rdiff -u -r1.102 -r1.102.10.1 src/sys/uvm/uvm_vnode.c cvs rdiff -u -r1.34 -r1.34.2.1 src/sys/uvm/pmap/pmap.c cvs rdiff -u -r1.21 -r1.21.2.1 src/sys/uvm/pmap/pmap_tlb.c cvs rdiff -u -r1.216.6.1 -r1.216.6.2 src/usr.bin/vmstat/vmstat.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.