diff options
Diffstat (limited to 'share/man')
| -rw-r--r-- | share/man/man4/Makefile | 9 | ||||
| -rw-r--r-- | share/man/man4/ddb.4 | 12 | ||||
| -rw-r--r-- | share/man/man4/dtrace_io.4 | 4 | ||||
| -rw-r--r-- | share/man/man4/dtrace_vfs.4 | 97 | ||||
| -rw-r--r-- | share/man/man4/hifn.4 | 132 | ||||
| -rw-r--r-- | share/man/man4/rndtest.4 | 1 | ||||
| -rw-r--r-- | share/man/man4/u3g.4 | 4 | ||||
| -rw-r--r-- | share/man/man5/pf.conf.5 | 8 | ||||
| -rw-r--r-- | share/man/man5/style.Makefile.5 | 24 | ||||
| -rw-r--r-- | share/man/man7/d.7 | 128 | ||||
| -rw-r--r-- | share/man/man7/simd.7 | 35 | ||||
| -rw-r--r-- | share/man/man7/stats.7 | 3 | ||||
| -rw-r--r-- | share/man/man7/tuning.7 | 3 | ||||
| -rw-r--r-- | share/man/man9/VFS.9 | 3 | ||||
| -rw-r--r-- | share/man/man9/atomic.9 | 54 | ||||
| -rw-r--r-- | share/man/man9/bus_alloc_resource.9 | 24 | ||||
| -rw-r--r-- | share/man/man9/bus_attach_children.9 | 2 | 
17 files changed, 345 insertions, 198 deletions
diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index e94e832a3f94..95618227a010 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -204,7 +204,6 @@ MAN=	aac.4 \  	hidbus.4 \  	hidquirk.4 \  	hidraw.4 \ -	hifn.4 \  	hkbd.4 \  	hms.4 \  	hmt.4 \ @@ -893,7 +892,6 @@ _ntb_hw_intel.4=	ntb_hw_intel.4  _ntb_hw_plx.4=	ntb_hw_plx.4  _ntb_transport.4=ntb_transport.4  _nvram.4=	nvram.4 -_padlock.4=	padlock.4  _pchtherm.4=	pchtherm.4  _qat.4=		qat.4  _qat_c2xxx.4=	qat_c2xxx.4 @@ -940,6 +938,10 @@ _vmm.4=		vmm.4  .endif  .endif +.if ${MACHINE_CPUARCH} == "i386" +_padlock.4=	padlock.4 +.endif +  .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "aarch64"  _hwt.4=		hwt.4  .if ${MACHINE_CPUARCH} == "amd64" @@ -1015,7 +1017,8 @@ _dtrace_provs=	dtrace_audit.4 \  		dtrace_sctp.4 \  		dtrace_tcp.4 \  		dtrace_udp.4 \ -		dtrace_udplite.4 +		dtrace_udplite.4 \ +		dtrace_vfs.4  MLINKS+=	dtrace_audit.4 dtaudit.4  .endif diff --git a/share/man/man4/ddb.4 b/share/man/man4/ddb.4 index 3c4894c03d62..a882a5204fb2 100644 --- a/share/man/man4/ddb.4 +++ b/share/man/man4/ddb.4 @@ -24,7 +24,7 @@  .\" any improvements or extensions that they make and grant Carnegie Mellon  .\" the rights to redistribute these changes.  .\" -.Dd June 10, 2025 +.Dd October 31, 2025  .Dt DDB 4  .Os  .Sh NAME @@ -604,12 +604,15 @@ The  modifier will print command line arguments for each process.  .\"  .Pp -.It Ic show Cm all tcpcbs Ns Op Li / Ns Cm b Ns Cm l +.It Ic show Cm all tcpcbs Ns Op Li / Ns Cm b Ns Cm i Ns Cm l  Show the same output as "show tcpcb" does, but for all  TCP control blocks within the system.  The  .Cm b  modifier will request BBLog entries to be printed. +If the +.Cm i +modifier is provided, the corresponding IP control block is also shown.  Using the  .Cm l  modifier will limit the output to TCP control blocks, which are locked. @@ -1106,7 +1109,7 @@ on i386.)  Not present on some platforms.  .\"  .Pp -.It Ic show Cm tcpcb Ns Oo Li / Ns Cm b Oc Ar addr +.It Ic show Cm tcpcb Ns Oo Li / Ns Cm b Ns Cm i Oc Ar addr  Print TCP control block  .Vt struct tcpcb  lying at address @@ -1117,6 +1120,9 @@ header file.  The  .Cm b  modifier will request BBLog entries to be printed. +If the +.Cm i +modifier is provided, the corresponding IP control block is also shown.  .\"  .Pp  .It Ic show Cm thread Op Ar addr | tid diff --git a/share/man/man4/dtrace_io.4 b/share/man/man4/dtrace_io.4 index 30ec44768fbf..1699cebab8e9 100644 --- a/share/man/man4/dtrace_io.4 +++ b/share/man/man4/dtrace_io.4 @@ -22,7 +22,7 @@  .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF  .\" SUCH DAMAGE.  .\" -.Dd April 18, 2015 +.Dd October 26, 2025  .Dt DTRACE_IO 4  .Os  .Sh NAME @@ -84,7 +84,7 @@ The following script shows a per-process breakdown of total I/O by disk device:  io:::start  { -        @[args[1]->device_name, execname, pid] = sum(args[0]->bio_bcount); +        @[args[1]->device_name, execname, pid] = sum(args[0]->bio_length);  }  END diff --git a/share/man/man4/dtrace_vfs.4 b/share/man/man4/dtrace_vfs.4 new file mode 100644 index 000000000000..528d5da42f3d --- /dev/null +++ b/share/man/man4/dtrace_vfs.4 @@ -0,0 +1,97 @@ +.\" +.\" Copyright (c) 2025 Mateusz Piotrowski <0mp@FreeBSD.org> +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd November 3, 2025 +.Dt DTRACE_VFS 4 +.Os +.Sh NAME +.Nm dtrace_vfs +.Nd a DTrace provider for Virtual File System +.Sh SYNOPSIS +.Sm off +.Nm vfs Cm : fplookup : Ar function Cm : Ar name +.Nm vfs Cm : namecache : Ar function Cm : Ar name +.Nm vfs Cm : namei : Ar function Cm : Ar name +.Nm vfs Cm : vop : Ar function Cm : Ar name +.Sm on +.Sh DESCRIPTION +The DTrace +.Nm vfs +provider allows users to trace events in the +.Xr VFS 9 +layer, the kernel interface for file systems on +.Fx . +.Pp +Run +.Ql dtrace -l -P vfs +to list all +.Nm vfs +probes. +Add +.Fl v +to generate program stability reports, +which contain information about the number of probe arguments and their types. +.Pp +The +.Cm fplookup +module defines a single probe, +.Fn vfs:fplookup:lookup:done "struct nameidata *ndp" "int line" "bool status_code" , +that instruments the fast path lookup code in +.Xr VFS 9 . +.Pp +The +.Cm namecache +module provides probes related to the +.Xr VFS 9 +cache. +Consult the source code in +.Pa src/sys/kern/vfs_cache.c +for more details. +.Pp +The +.Cm namei +module manages probes related to pathname translation and lookup operations. +Refer to +.Xr namei 9 +to learn more. +.Pp +The +.Cm vop +module contains probes related to the functions responsible for +.Xr vnode 9 +operations. +.Sh COMPATIBILITY +This provider is specific to +.Fx . +.Sh EXAMPLES +Check what lookups failed to be handled in a lockless manner: +.Bd -literal -offset 2n +# dtrace -n 'vfs:fplookup:lookup:done { @[arg1, arg2] = count(); }' +.Ed +.Sh SEE ALSO +.Xr dtrace 1 , +.Xr d 7 , +.Xr SDT 9 , +.Xr namei 9 , +.Xr VFS 9 +.Rs +.%A Brendan Gregg +.%A Jim Mauro +.%B DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD +.%I Prentice Hall +.%P pp. 335\(en351 +.%D 2011 +.%U https://www.brendangregg.com/dtracebook/ +.Re +.Sh AUTHORS +.An -nosplit +The +.Fx +.Nm vfs +provider was written by +.An Robert Watson Aq Mt rwatson@FreeBSD.org . +.Pp +This manual page was written by +.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org . diff --git a/share/man/man4/hifn.4 b/share/man/man4/hifn.4 deleted file mode 100644 index 22494fcb6c6d..000000000000 --- a/share/man/man4/hifn.4 +++ /dev/null @@ -1,132 +0,0 @@ -.\"	$OpenBSD: hifn.4,v 1.32 2002/09/26 07:55:40 miod Exp $ -.\" -.\" Copyright (c) 2000 Theo de Raadt -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\"    notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\"    notice, this list of conditions and the following disclaimer in the -.\"    documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -.\" DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -.\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -.\" POSSIBILITY OF SUCH DAMAGE. -.\" -.Dd July 29, 2020 -.Dt HIFN 4 -.Os -.Sh NAME -.Nm hifn -.Nd Hifn 7751/7951/7811/7955/7956 crypto accelerator -.Sh SYNOPSIS -To compile this driver into the kernel, -place the following lines in your -kernel configuration file: -.Bd -ragged -offset indent -.Cd "device crypto" -.Cd "device cryptodev" -.Cd "device hifn" -.Ed -.Pp -Alternatively, to load the driver as a -module at boot time, place the following line in -.Xr loader.conf 5 : -.Bd -literal -offset indent -hifn_load="YES" -.Ed -.Sh DESCRIPTION -The -.Nm -driver supports various cards containing the Hifn 7751, 7951, -7811, 7955, and 7956 chipsets. -.Pp -The -.Nm -driver registers itself to accelerate -AES (7955 and 7956 only), -SHA1, and SHA1-HMAC operations for -.Xr ipsec 4 -and -.Xr crypto 4 . -.Pp -The Hifn -.Tn 7951 , -.Tn 7811 , -.Tn 7955 , -and -.Tn 7956 -will also supply data to the kernel -.Xr random 4 -subsystem. -.Sh HARDWARE -The -.Nm -driver supports various cards containing the Hifn 7751, 7951, -7811, 7955, and 7956 -chipsets, such as: -.Bl -tag -width namenamenamena -offset indent -.It Invertex AEON -No longer being made. -Came as 128KB SRAM model, or 2MB DRAM model. -.It Hifn 7751 -Reference board with 512KB SRAM. -.It PowerCrypt -Comes with 512KB SRAM. -.It XL-Crypt -Only board based on 7811 (which is faster than 7751 and has -a random number generator). -.It NetSec 7751 -Supports the most IPsec sessions, with 1MB SRAM. -.It Soekris Engineering vpn1201 and vpn1211 -See -.Pa http://www.soekris.com/ . -Contains a 7951 and supports symmetric and random number operations. -.It Soekris Engineering vpn1401 and vpn1411 -See -.Pa http://www.soekris.com/ . -Contains a 7955 and supports symmetric and random number operations. -.El -.Sh SEE ALSO -.Xr crypto 4 , -.Xr intro 4 , -.Xr ipsec 4 , -.Xr random 4 , -.Xr crypto 7 , -.Xr crypto 9 -.Sh HISTORY -The -.Nm -device driver appeared in -.Ox 2.7 . -The -.Nm -device driver was imported to -.Fx 5.0 . -.Sh CAVEATS -The Hifn 9751 shares the same PCI ID. -This chip is basically a 7751, but with the cryptographic functions missing. -Instead, the 9751 is only capable of doing compression. -Since we do not currently attempt to use any of these chips to do -compression, the 9751-based cards are not useful. -.Pp -Support for the 7955 and 7956 is incomplete; the asymmetric crypto -facilities are to be added and the performance is suboptimal. -.Sh BUGS -The 7751 chip starts out at initialization by only supporting compression. -A proprietary algorithm, which has been reverse engineered, is required to -unlock the cryptographic functionality of the chip. -It is possible for vendors to make boards which have a lock ID not known -to the driver, but all vendors currently just use the obvious ID which is -13 bytes of 0. diff --git a/share/man/man4/rndtest.4 b/share/man/man4/rndtest.4 index 9ed16caf3b87..c73302063cd3 100644 --- a/share/man/man4/rndtest.4 +++ b/share/man/man4/rndtest.4 @@ -49,7 +49,6 @@ is received from the device.  Failures are optionally reported on the console.  .Sh SEE ALSO  .Xr crypto 4 , -.Xr hifn 4 ,  .Xr random 4 ,  .Xr safe 4 ,  .Xr crypto 9 diff --git a/share/man/man4/u3g.4 b/share/man/man4/u3g.4 index 51c883b8378e..c7bf1f98880a 100644 --- a/share/man/man4/u3g.4 +++ b/share/man/man4/u3g.4 @@ -94,14 +94,14 @@ Qualcomm Inc. GOBI 1000, 2000 and 3000 devices with MDM1000 or MDM2000 chipsets  .It  QUECTEL BGX, ECX, EGX, EMX, EPX, RGX series  .It -Quectel EM160R +Quectel EM160R, EM060K  .Pq see Sx CAVEATS  .It  Huawei B190, E180v, E220, E3372, E3372v153, E5573Cs322, ('<Huawei Mobile>')  .It  Novatel U740, MC950D, X950D, etc.  .It -Sierra MC875U, MC8775U, etc. +Sierra MC875U, MC8775U, EM7590, etc.  .It  Panasonic CF-F9 GOBI  .El diff --git a/share/man/man5/pf.conf.5 b/share/man/man5/pf.conf.5 index be46b1a47291..c22d983d33e8 100644 --- a/share/man/man5/pf.conf.5 +++ b/share/man/man5/pf.conf.5 @@ -27,7 +27,7 @@  .\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  .\" POSSIBILITY OF SUCH DAMAGE.  .\" -.Dd October 7, 2025 +.Dd November 3, 2025  .Dt PF.CONF 5  .Os  .Sh NAME @@ -3460,6 +3460,12 @@ filteropt      = user | group | flags | icmp-type | icmp6-type | "tos" tos |                   "dnpipe" ( number | "(" number "," number ")" ) |                   "dnqueue" ( number | "(" number "," number ")" ) |                   "ridentifier" number | +                 "binat-to" ( redirhost | "{" redirhost-list "}" ) +                 [ portspec ] [ pooltype ] | +                 "rdr-to" ( redirhost | "{" redirhost-list "}" ) +                 [ portspec ] [ pooltype ] | +                 "nat-to" ( redirhost | "{" redirhost-list "}" ) +                 [ portspec ] [ pooltype ] [ "static-port" ] |                   [ ! ] "received-on" ( interface-name | interface-group )  nat-rule       = [ "no" ] "nat" [ "pass" [ "log" [ "(" logopts ")" ] ] ] diff --git a/share/man/man5/style.Makefile.5 b/share/man/man5/style.Makefile.5 index fe8754924575..9a2f1b069d99 100644 --- a/share/man/man5/style.Makefile.5 +++ b/share/man/man5/style.Makefile.5 @@ -1,7 +1,7 @@  .\"  .\" SPDX-License-Identifier: BSD-3-Clause  .\" -.\" Copyright (c) 2002-2003, 2023 David O'Brien <obrien@FreeBSD.org> +.\" Copyright (c) 2002-2003, 2023, 2025 David O'Brien <deo@NUXI.org>  .\" All rights reserved.  .\"  .\" Redistribution and use in source and binary forms, with or without @@ -28,7 +28,7 @@  .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF  .\" SUCH DAMAGE.  .\" -.Dd July 17, 2023 +.Dd October 29, 2025  .Dt STYLE.MAKEFILE 5  .Os  .Sh NAME @@ -179,6 +179,21 @@ settings between the  and  .Fl I Ns 's.  .It +Lists that span more than one line should be formatted as follows: +.Bd -literal -offset indent +SRCS+=<SP>\\ +<TAB>main.c<SP>\\ +<TAB>trace.c<SP>\\ +<TAB>zoo.c \\ +\& +.Ed +Specifically, the last item in the list should have a trailing '\\'. +This is to avoid causing a "false diff" or "false blame" when +a new item is appended at the end. +In general the list should be English language alphabetized. +A list of libraries or header inclusion paths are notable exceptions +if needed for proper building. +.It  Do not use GCCisms (such as  .Fl g  and @@ -233,9 +248,6 @@ For variables that are only checked with  .Fn defined ,  do not provide any fake value.  .El -.Pp -The desire to express a logical grouping often means not obeying some of the -above.  .Sh EXAMPLES  The simplest program  .Pa Makefile @@ -270,5 +282,7 @@ manual page and first appeared in  .An David O'Brien Aq deo@NUXI.org  .Sh BUGS  There are few hard and fast style rules here. +The desire to express a logical grouping sometimes means not obeying some of the +above.  The style of many things is too dependent on the context of the whole makefile,  or the lines surrounding it. diff --git a/share/man/man7/d.7 b/share/man/man7/d.7 index c098958ffa56..59b3389b121b 100644 --- a/share/man/man7/d.7 +++ b/share/man/man7/d.7 @@ -3,7 +3,7 @@  .\"  .\" Copyright (c) 2025 Mateusz Piotrowski <0mp@FreeBSD.org>  .\" -.Dd September 24, 2025 +.Dd October 28, 2025  .Dt D 7  .Os  .Sh NAME @@ -56,9 +56,9 @@ depends on  .Bl -column "thread-local" "Syntax"  .It Sy Type Ta Sy Syntax  .It global       Ta Va variable_name +.It aggregate    Ta Sy @ Ns Va variable_name  .It thread-local Ta Sy self-> Ns Va variable_name  .It clause-local Ta Sy this-> Ns Va variable_name -.It aggregate  Ta Sy @ Ns Va variable_name  .El  .Pp  .Em Tips : @@ -198,6 +198,130 @@ The number of nanoseconds since the Epoch  Suitable for timestamping logs.  .El  .Sh BUILT-IN FUNCTIONS +.\" Keep the indentation wide enough for the reader to be able to skim through +.\" function names quickly. +.Bl -tag -width "size_t strlen" +.It Ft string Fn strchr "string s" "char c" +Return a substring of +.Fa s +starting at the first occurance of +.Fa c +in +.Fa s . +Return +.Dv NULL +if +.Fa c +does not occur in +.Fa s . +.Pp +For example, +.Bd -literal -compact -offset indent +strchr("abc", 'b'); +.Ed +returns +.Ql "bc" +and +.Bd -literal -compact -offset indent +strchr("abc", 'd'); +.Ed +returns +.Dv NULL . +.It Ft string Fn strjoin "string s1" "string s2" +Return a string resulting from concatenating +.Fa s1 +and +.Fa s2 . +.Pp +For example, +.Bd -literal -compact -offset indent +strjoin("abc", "def") +.Ed +returns +.Ql abcdef . +.It Ft string Fn strrchr "string s" "char c" +Return a substring of +.Fa s +starting at the last occurance of +.Fa c +in +.Fa s . +Similar to +.Fn strchr . +.It Ft string Fn strstr "string haystack" "string needle" +Return a substring of +.Fa haystack +starting at the first occurrence of +.Fa needle . +Return +.Dv NULL +if +.Fa needle +is not a substring of +.Fa haystack . +.Pp +For example, +.Bd -literal -compact -offset indent +strstr("abc1bc2", "bc") +.Ed +returns +.Ql bc1bc2 +and +.Bd -literal -compact -offset indent +strstr("abc", "xy") +.Ed +returns +.Dv NULL . +.It Ft string Fn strtok "string s" "string separators" +Tokenize +.Fa s +with +.Fa separators . +.Pp +For example, +.Bd -literal -compact -offset indent +strtok("abcdefg", "xyzd") +.Ed +returns +.Ql abc . +.It Ft size_t Fn strlen "string s" +Return the length of string +.Fa s . +.It Ft string Fn substr "string s" "int position" "[int length]" +Return a +substring of string +.Fa s +starting at +.Fa position . +The substring will be at most +.Fa length Ns -long . +If +.Fa length +is not specified, use the rest of the string. +If +.Fa position +is greater than +the size of +.Fa s , +return an empty string. +.Pp +For example, +.Bd -literal -compact -offset indent +substr("abcd", 2) +.Ed +returns +.Ql cd , +.Bd -literal -compact -offset indent +substr("abcd", 2, 1) +.Ed +returns +.Ql c , +and +.Bd -literal -compact -offset indent +substr("abcd", 99) +.Ed +returns an empty string. +.El  .Ss Aggregation Functions  .Bl -tag -compact -width "llquantize(value, factor, low, high, nsteps)"  .It Fn avg value diff --git a/share/man/man7/simd.7 b/share/man/man7/simd.7 index d5092348d9b3..3343508df504 100644 --- a/share/man/man7/simd.7 +++ b/share/man/man7/simd.7 @@ -24,7 +24,7 @@  .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF  .\" SUCH DAMAGE  . -.Dd November 18, 2024 +.Dd October 21, 2025  .Dt SIMD 7  .Os  .Sh NAME @@ -50,38 +50,38 @@ can be used to override this mechanism.  .Pp  Enhanced functions are present for the following architectures:  .Bl -column FUNCTION_________ aarch64_ arm_ amd64_ i386_ ppc64_ -offset indent -.It Em FUNCTION          Ta Em AARCH64 Ta Em ARM Ta Em AMD64  Ta Em I386 Ta Em PPC64 +.It Em FUNCTION          Ta Em AARCH64 Ta Em ARM Ta Em AMD64  Ta Em I386 Ta Em PPC64 Ta Em RISC-V  .It    bcmp              Ta    A       Ta        Ta    S1     Ta    S -.It    bcopy             Ta    A       Ta    S   Ta    S      Ta    S    Ta    SV -.It    bzero             Ta    A       Ta    S   Ta    S      Ta    S +.It    bcopy             Ta    A       Ta    S   Ta    S      Ta    S    Ta    SV    Ta    S +.It    bzero             Ta    A       Ta    S   Ta    S      Ta    S    Ta          Ta    S  .It    div               Ta            Ta        Ta    S      Ta    S -.It    index             Ta    A       Ta        Ta    S1 +.It    index             Ta    A       Ta        Ta    S1                Ta          Ta    S  .It    ldiv              Ta            Ta        Ta    S      Ta    S  .It    lldiv             Ta            Ta        Ta    S -.It    memchr            Ta    A       Ta        Ta    S1 +.It    memchr            Ta    A       Ta        Ta    S1     Ta         Ta          Ta    S  .It    memcmp            Ta    A       Ta    S   Ta    S1     Ta    S  .It    memccpy           Ta    A       Ta        Ta    S1 -.It    memcpy            Ta    A       Ta    S   Ta    S      Ta    S    Ta    SV +.It    memcpy            Ta    A       Ta    S   Ta    S      Ta    S    Ta    SV    Ta    S  .It    memmove           Ta    A       Ta    S   Ta    S      Ta    S    Ta    SV  .It    memrchr           Ta    A       Ta        Ta    S1 -.It    memset            Ta    A       Ta    S   Ta    S      Ta    S -.It    rindex            Ta    A       Ta        Ta    S1     Ta    S +.It    memset            Ta    A       Ta    S   Ta    S      Ta    S    Ta          Ta    S +.It    rindex            Ta    A       Ta        Ta    S1     Ta    S    Ta          Ta    S  .It    stpcpy            Ta    A       Ta        Ta    S1  .It    stpncpy           Ta            Ta        Ta    S1  .It    strcat            Ta    A       Ta        Ta    S1     Ta    S -.It    strchr            Ta    A       Ta        Ta    S1     Ta    S -.It    strchrnul         Ta    A       Ta        Ta    S1 +.It    strchr            Ta    A       Ta        Ta    S1     Ta    S    Ta          Ta    S +.It    strchrnul         Ta    A       Ta        Ta    S1     Ta         Ta          Ta    S  .It    strcmp            Ta    A       Ta    S   Ta    S1     Ta    S  .It    strcpy            Ta    A       Ta        Ta    S1     Ta    S    Ta    S2  .It    strcspn           Ta    S       Ta        Ta    S2  .It    strlcat           Ta    A       Ta        Ta    S1  .It    strlcpy           Ta    A       Ta        Ta    S1 -.It    strlen            Ta    A       Ta    S   Ta    S1 +.It    strlen            Ta    A       Ta    S   Ta    S1     Ta         Ta          Ta    S  .It    strncat           Ta    A       Ta        Ta    S1  .It    strncmp           Ta    A       Ta    S   Ta    S1     Ta    S  .It    strncpy           Ta            Ta        Ta    S1     Ta         Ta    S2 -.It    strnlen           Ta    A       Ta        Ta    S1 -.It    strrchr           Ta    A       Ta        Ta    S1     Ta    S +.It    strnlen           Ta    A       Ta        Ta    S1     Ta         Ta          Ta    S +.It    strrchr           Ta    A       Ta        Ta    S1     Ta    S    Ta          Ta    S  .It    strpbrk           Ta    S       Ta        Ta    S2  .It    strsep            Ta    S       Ta        Ta    S2  .It    strspn            Ta    S       Ta        Ta    S2 @@ -207,10 +207,13 @@ for  .Fx 11.0  for  .Cm aarch64 , -and  .Fx 12.0  for -.Cm powerpc64 . +.Cm powerpc64 , +and +.Fx 16.0 +for +.Cm riscv64 .  SIMD-enhanced functions were first added with  .Fx 13.0  for diff --git a/share/man/man7/stats.7 b/share/man/man7/stats.7 index 715db70e118b..0b57d525522c 100644 --- a/share/man/man7/stats.7 +++ b/share/man/man7/stats.7 @@ -24,7 +24,7 @@  .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF  .\" SUCH DAMAGE.  .\" -.Dd April 22, 2021 +.Dd October 28, 2025  .Dt STATS 7  .Os  .Sh NAME @@ -100,6 +100,7 @@ Report ZFS I/O statistics  .Xr stat 1 ,  .Xr systat 1 ,  .Xr intro 7 , +.Xr tuning 7 ,  .Xr ctlstat 8 ,  .Xr gstat 8 ,  .Xr ibstat 8 , diff --git a/share/man/man7/tuning.7 b/share/man/man7/tuning.7 index ebba551f65d0..44c427c4559d 100644 --- a/share/man/man7/tuning.7 +++ b/share/man/man7/tuning.7 @@ -22,7 +22,7 @@  .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF  .\" SUCH DAMAGE.  .\" -.Dd January 23, 2025 +.Dd October 28, 2025  .Dt TUNING 7  .Os  .Sh NAME @@ -678,6 +678,7 @@ over services you export from your box (web services, email).  .Xr firewall 7 ,  .Xr hier 7 ,  .Xr ports 7 , +.Xr stats 7 ,  .Xr boot 8 ,  .Xr bsdinstall 8 ,  .Xr ccdconfig 8 , diff --git a/share/man/man9/VFS.9 b/share/man/man9/VFS.9 index a1d0a19bec13..6ea6570bbf6e 100644 --- a/share/man/man9/VFS.9 +++ b/share/man/man9/VFS.9 @@ -26,7 +26,7 @@  .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF  .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  .\" -.Dd February 9, 2010 +.Dd November 3, 2025  .Dt VFS 9  .Os  .Sh NAME @@ -42,6 +42,7 @@ function from  rather than implementing empty functions or casting to  .Fa eopnotsupp .  .Sh SEE ALSO +.Xr dtrace_vfs 4 ,  .Xr VFS_CHECKEXP 9 ,  .Xr VFS_FHTOVP 9 ,  .Xr VFS_MOUNT 9 , diff --git a/share/man/man9/atomic.9 b/share/man/man9/atomic.9 index c9133c6311a5..b027a0ff0bca 100644 --- a/share/man/man9/atomic.9 +++ b/share/man/man9/atomic.9 @@ -182,35 +182,42 @@ This variant is the default.  The second variant has acquire semantics, and the third variant has release  semantics.  .Pp -When an atomic operation has acquire semantics, the operation must have +An atomic operation can only have +.Em acquire +semantics if it performs a load +from memory. +When an atomic operation has acquire semantics, a load performed as +part of the operation must have  completed before any subsequent load or store (by program order) is  performed.  Conversely, acquire semantics do not require that prior loads or stores have -completed before the atomic operation is performed. -An atomic operation can only have acquire semantics if it performs a load -from memory. +completed before a load from the atomic operation is performed.  To denote acquire semantics, the suffix  .Dq Li _acq  is inserted into the function name immediately prior to the  .Dq Li _ Ns Aq Fa type  suffix. -For example, to subtract two integers ensuring that the subtraction is +For example, to subtract two integers ensuring that the load of +the value from memory is  completed before any subsequent loads and stores are performed, use  .Fn atomic_subtract_acq_int .  .Pp +An atomic operation can only have +.Em release +semantics if it performs a store to memory.  When an atomic operation has release semantics, all prior loads or stores -(by program order) must have completed before the operation is performed. -Conversely, release semantics do not require that the atomic operation must +(by program order) must have completed before a store executed as part of +the operation that is performed. +Conversely, release semantics do not require that a store from the atomic +operation must  have completed before any subsequent load or store is performed. -An atomic operation can only have release semantics if it performs a store -to memory.  To denote release semantics, the suffix  .Dq Li _rel  is inserted into the function name immediately prior to the  .Dq Li _ Ns Aq Fa type  suffix.  For example, to add two long integers ensuring that all prior loads and -stores are completed before the addition is performed, use +stores are completed before the store of the result is performed, use  .Fn atomic_add_rel_long .  .Pp  When a release operation by one thread @@ -235,6 +242,33 @@ section.  However, they will not prevent the compiler or processor from moving loads  or stores into the critical section, which does not violate the semantics of  a mutex. +.Ss Architecture-dependent caveats for compare-and-swap +The +.Fn atomic_[f]cmpset_<type> +operations, specifically those without explicitly specified memory +ordering, are defined as relaxed. +Consequently, a thread's accesses to memory locations different from +that of the atomic operation can be reordered in relation to the +atomic operation. +.Pp +However, the implementation on the +.Sy amd64 +and +.Sy i386 +architectures provide sequentially consistent semantics. +In particular, the reordering mentioned above cannot occur. +.Pp +On the +.Sy arm64/aarch64 +architecture, the operation may include either acquire +semantics on the constituent load or release semantics +on the constituent store. +This means that accesses to other locations in program order +before the atomic, might be observed as executed after the load +that is the part of the atomic operation (but not after the store +from the operation due to release). +Similarly, accesses after the atomic might be observed as executed +before the store.  .Ss Thread Fence Operations  Alternatively, a programmer can use atomic thread fence operations to  constrain the reordering of accesses. diff --git a/share/man/man9/bus_alloc_resource.9 b/share/man/man9/bus_alloc_resource.9 index 84a4c9c530c9..5d309229a34e 100644 --- a/share/man/man9/bus_alloc_resource.9 +++ b/share/man/man9/bus_alloc_resource.9 @@ -26,7 +26,7 @@  .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF  .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  .\" -.Dd May 20, 2016 +.Dd October 30, 2025  .Dt BUS_ALLOC_RESOURCE 9  .Os  .Sh NAME @@ -43,14 +43,14 @@  .In machine/resource.h  .Ft struct resource *  .Fo bus_alloc_resource -.Fa "device_t dev" "int type" "int *rid" "rman_res_t start" "rman_res_t end" +.Fa "device_t dev" "int type" "int rid" "rman_res_t start" "rman_res_t end"  .Fa "rman_res_t count" "u_int flags"  .Fc  .Ft struct resource * -.Fn bus_alloc_resource_any "device_t dev" "int type" "int *rid" "u_int flags" +.Fn bus_alloc_resource_any "device_t dev" "int type" "int rid" "u_int flags"  .Ft struct resource *  .Fo bus_alloc_resource_anywhere -.Fa "device_t dev" "int type" "int *rid" "rman_res_t count" "u_int flags" +.Fa "device_t dev" "int type" "int rid" "rman_res_t count" "u_int flags"  .Fc  .Sh DESCRIPTION  This is an easy interface to the resource-management functions. @@ -106,15 +106,13 @@ for I/O memory  .El  .It  .Fa rid -points to a bus specific handle that identifies the resource being allocated. +is a bus specific handle that identifies the resource being allocated.  For ISA this is an index into an array of resources that have been setup  for this device by either the PnP mechanism, or via the hints mechanism.  For PCCARD, this is an index into the array of resources described by the PC Card's  CIS entry.  For PCI, the offset into PCI config space which has the BAR to use to access  the resource. -The bus methods are free to change the RIDs that they are given as a parameter. -You must not depend on the value you gave it earlier.  .It  .Fa start  and @@ -175,20 +173,12 @@ A pointer to  is returned on success, a null pointer otherwise.  .Sh EXAMPLES  This is some example code that allocates a 32 byte I/O port range and an IRQ. -The values of -.Va portid -and -.Va irqid -should be saved in the softc of the device after these calls.  .Bd -literal  	struct resource *portres, *irqres; -	int portid, irqid; -	portid = 0; -	irqid = 0; -	portres = bus_alloc_resource(dev, SYS_RES_IOPORT, &portid, +	portres = bus_alloc_resource(dev, SYS_RES_IOPORT, 0,  			0ul, ~0ul, 32, RF_ACTIVE); -	irqres = bus_alloc_resource_any(dev, SYS_RES_IRQ, &irqid, +	irqres = bus_alloc_resource_any(dev, SYS_RES_IRQ, 0,  			RF_ACTIVE | RF_SHAREABLE);  .Ed  .Sh SEE ALSO diff --git a/share/man/man9/bus_attach_children.9 b/share/man/man9/bus_attach_children.9 index 5e3ca4c5e906..81a24a428d8e 100644 --- a/share/man/man9/bus_attach_children.9 +++ b/share/man/man9/bus_attach_children.9 @@ -105,7 +105,7 @@ Detached devices are not deleted.  .Pp  .Fn bus_detach_children  is typically called at the start of a bus driver's -.Xr DEVICE_ATTACH 9 +.Xr DEVICE_DETACH 9  method to give child devices a chance to veto the detach request.  It is usually paired with a later call to  .Fn device_delete_children 9  | 
