Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Aug 2018 17:16:38 +0000 (UTC)
From:      =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= <des@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r337980 - head/share/man/man9
Message-ID:  <201808171716.w7HHGcr0045847@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: des
Date: Fri Aug 17 17:16:38 2018
New Revision: 337980
URL: https://svnweb.freebsd.org/changeset/base/337980

Log:
  Add a man page for ratecheck(9) and ppsratecheck(9).

Added:
  head/share/man/man9/ratecheck.9   (contents, props changed)
Modified:
  head/share/man/man9/Makefile
  head/share/man/man9/counter.9

Modified: head/share/man/man9/Makefile
==============================================================================
--- head/share/man/man9/Makefile	Fri Aug 17 16:25:59 2018	(r337979)
+++ head/share/man/man9/Makefile	Fri Aug 17 17:16:38 2018	(r337980)
@@ -270,6 +270,7 @@ MAN=	accept_filter.9 \
 	psignal.9 \
 	random.9 \
 	random_harvest.9 \
+	ratecheck.9 \
 	redzone.9 \
 	refcount.9 \
 	resettodr.9 \
@@ -1674,6 +1675,7 @@ MLINKS+=random.9 arc4rand.9 \
 MLINKS+=random_harvest.9 random_harvest_direct.9 \
 	random_harvest.9 random_harvest_fast.9 \
 	random_harvest.9 random_harvest_queue.9
+MLINKS+=ratecheck.9 ppsratecheck.9
 MLINKS+=refcount.9 refcount_acquire.9 \
 	refcount.9 refcount_init.9 \
 	refcount.9 refcount_release.9

Modified: head/share/man/man9/counter.9
==============================================================================
--- head/share/man/man9/counter.9	Fri Aug 17 16:25:59 2018	(r337979)
+++ head/share/man/man9/counter.9	Fri Aug 17 17:16:38 2018	(r337980)
@@ -132,7 +132,7 @@ Clear the counter
 and set it to zero.
 .It Fn counter_ratecheck cr limit
 The function is a multiprocessor-friendly version of
-.Fn ppsratecheck ,
+.Fn ppsratecheck
 which uses
 .Nm
 internally.
@@ -243,6 +243,7 @@ SYSCTL_COUNTER_U64_ARRAY(_debug, OID_AUTO, counter_arr
 .Xr critical 9 ,
 .Xr locking 9 ,
 .Xr malloc 9 ,
+.Xr ratecheck 9 ,
 .Xr sysctl 9 ,
 .Xr uma 9
 .Sh HISTORY

Added: head/share/man/man9/ratecheck.9
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/share/man/man9/ratecheck.9	Fri Aug 17 17:16:38 2018	(r337980)
@@ -0,0 +1,93 @@
+.\"-
+.\" Copyright (c) 2017 Dag-Erling Smørgrav
+.\" 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd September 25, 2017
+.Dt RATECHECK 9
+.Os
+.Sh NAME
+.Nm ratecheck ,
+.Nm ppsratecheck
+.Nd "event rate limiting"
+.Sh SYNOPSIS
+.In sys/time.h
+.Ft int
+.Fn ratecheck "struct timeval *lasttime" "struct timeval *mininterval"
+.Ft int
+.Fn ppsratecheck "struct timeval *lasttime" "int *curpps" "int maxpps"
+.Sh DESCRIPTION
+The
+.Nm ratecheck
+and
+.Nm ppsratecheck
+functions facilitate rate-limiting of arbitrary events.
+The former enforces a minimum interval between events while the latter
+enforces a maximum number of events per second.
+.Pp
+The
+.Nm ratecheck
+function compares the current time to the value pointed to by
+.Fa lasttime .
+If the difference is equal to or greater than
+.Fa mininterval ,
+it returns a non-zero value and updates
+.Fa lasttime
+to the current time.
+Otherwise, it returns zero.
+.Pp
+The
+.Nm ppsratecheck
+function first compares the current time
+to
+.Fa lasttime .
+If at least a full second has passed, the value pointed to by the
+.Fa curpps
+argument is reset to 1 and
+.Fa lasttime
+is updated to the current time.
+Otherwise,
+.Fa curpps
+is incremented and
+.Fa lasttime
+is left untouched.
+In either case,
+.Nm ppsratecheck
+returns a non-zero value if and only if the updated
+.Fa curpps
+is less than or equal to
+.Fa maxpps
+or
+.Fa maxpps
+is negative.
+.Sh SEE ALSO
+.Xr counter 9
+.Sh HISTORY
+The
+.Nm ratecheck
+and
+.Nm ppsratecheck
+functions first appeared in
+.Fx 5.1 .



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201808171716.w7HHGcr0045847>