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>