haproxy/src
Willy Tarreau fc6323ad82 MEDIUM: freq_ctr: replace the per-second counters with the generic ones
It remains cumbersome to preserve two versions of the freq counters and
two different internal clocks just for this. In addition, the savings
from using two different mechanisms are not that important as the only
saving is a divide that is replaced by a multiply, but now thanks to
the freq_ctr_total() unificaiton the code could also be simplified to
optimize it in case of constants.

This patch turns all non-period freq_ctr functions to static inlines
which call the period-based ones with a period of 1 second. A direct
benefit is that a single internal clock is now needed for any counter
and that they now all rely on ticks.

These 1-second counters are essentially used to report request rates
and to enforce a connection rate limitation in listeners. It was
verified that these continue to work like before.
2021-04-11 11:12:55 +02:00
..
acl.c MINOR: acl: Add HTTP_2.0 predefined macro 2021-04-06 07:31:51 +02:00
action.c MINOR: payload/config: Warn if a L6 sample fetch is used from an HTTP proxy 2021-04-01 15:34:22 +02:00
activity.c CLEANUP: config: make the cfg_keyword parsers take a const for the defproxy 2021-03-09 10:09:43 +01:00
applet.c MEDIUM: dynbuf: remove last usages of b_alloc_margin() 2021-03-22 16:27:59 +01:00
arg.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
auth.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
backend.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
base64.c REORG: include: move base64.h, errors.h and hash.h from common to to haproxy/ 2020-06-11 10:18:56 +02:00
cache.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
calltrace.c BUILD: trace: include tools.h 2020-09-25 17:54:48 +02:00
cfgdiag.c MINOR: diag: diag if servers use the same cookie value 2021-04-01 18:03:37 +02:00
cfgparse-global.c MINOR: log: register config file and line number on log servers. 2021-04-07 09:18:34 +02:00
cfgparse-listen.c MINOR: log: register config file and line number on log servers. 2021-04-07 09:18:34 +02:00
cfgparse-ssl.c BUILD: ssl: guard ecdh functions with SSL_CTX_set_tmp_ecdh macro 2021-03-24 09:52:37 +01:00
cfgparse-tcp.c MINOR: server: prepare parsing for dynamic servers 2021-03-18 15:51:12 +01:00
cfgparse-unix.c MINOR: listener: create a new struct "settings" in bind_conf 2020-09-16 20:13:13 +02:00
cfgparse.c MINOR: log: register config file and line number on log servers. 2021-04-07 09:18:34 +02:00
channel.c CLEANUP: channel: fix comment in ci_putblk. 2021-02-13 09:43:17 +01:00
check.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
chunk.c MINOR: pool: move pool declarations to read_mostly 2021-04-10 19:27:41 +02:00
cli.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
compression.c MINOR: pool: move pool declarations to read_mostly 2021-04-10 19:27:41 +02:00
connection.c CLEANUP: config: make the cfg_keyword parsers take a const for the defproxy 2021-03-09 10:09:43 +01:00
debug.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
dgram.c REORG: dgram: rename proto_udp to dgram 2020-06-11 10:18:59 +02:00
dict.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
dns.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
dynbuf.c MINOR: pool: move pool declarations to read_mostly 2021-04-10 19:27:41 +02:00
eb32sctree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
eb32tree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
eb64tree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebimtree.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
ebistree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebmbtree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebpttree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebsttree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebtree.c BUG/MEDIUM: ebtree: use a byte-per-byte memcmp() to compare memory blocks 2020-06-16 11:30:33 +02:00
ev_epoll.c MINOR: epoll: move epoll_fd to read_mostly 2021-04-10 19:27:41 +02:00
ev_evports.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
ev_kqueue.c MINOR: kqueue: move kqueue_fd to read_mostly 2021-04-10 19:27:41 +02:00
ev_poll.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
ev_select.c CLEANUP: Remove useless malloc() casts 2021-04-08 20:11:58 +02:00
extcheck.c MINOR: pool: move pool declarations to read_mostly 2021-04-10 19:27:41 +02:00
fcgi-app.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
fcgi.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
fd.c MINOR: fd: move a few read-mostly variables to their own section 2021-04-10 19:27:41 +02:00
filters.c CLEANUP: filters: use pool_zalloc() in flt_stream_add_filter() 2021-03-22 23:17:56 +01:00
fix.c CLEANUP: assorted typo fixes in the code and comments 2020-12-21 11:24:48 +01:00
flt_http_comp.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
flt_spoe.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
flt_trace.c CLEANUP: Use istadv(const struct ist, const size_t) whenever possible 2021-03-03 05:07:10 +01:00
freq_ctr.c MEDIUM: freq_ctr: replace the per-second counters with the generic ones 2021-04-11 11:12:55 +02:00
frontend.c MINOR: http-ana: Simplify creation/destruction of HTTP transactions 2021-04-01 11:06:48 +02:00
h1.c MEDIUM: h1: add a WebSocket key on handshake if needed 2021-01-28 16:37:14 +01:00
h1_htx.c MINOR: h1: Raise the chunk size limit up to (2^52 - 1) 2021-01-28 16:37:14 +01:00
h2.c CLEANUP: Replace for loop with only a condition by while 2021-03-05 08:28:53 +01:00
haproxy.c MINOR: global: declare a read_mostly section 2021-04-10 19:27:41 +02:00
hash.c REORG: include: move base64.h, errors.h and hash.h from common to to haproxy/ 2020-06-11 10:18:56 +02:00
hlua.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
hlua_fcn.c BUG/MINOR: hlua: Don't strip last non-LWS char in hlua_pushstrippedstring() 2021-03-03 19:48:12 +01:00
hpack-dec.c CLEANUP: Use isttest(const struct ist) whenever possible 2021-03-03 05:07:10 +01:00
hpack-enc.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
hpack-huff.c CONTRIB: move some dev-specific tools to dev/ 2021-04-02 17:48:42 +02:00
hpack-tbl.c MINOR: pool: move pool declarations to read_mostly 2021-04-10 19:27:41 +02:00
http.c MINOR: http: Add HTTP 501-not-implemented error message 2021-01-21 15:21:12 +01:00
http_acl.c CLEANUP: acl: don't reference the generic pattern deletion function anymore 2020-11-05 19:27:09 +01:00
http_act.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
http_ana.c MINOR: pool: move pool declarations to read_mostly 2021-04-10 19:27:41 +02:00
http_conv.c MINOR: http-conv: Don't check if argument list is set in sample converters 2021-01-29 13:26:02 +01:00
http_fetch.c BUG/MINOR: http-fetch: Fix test on message state to capture the version 2021-04-01 16:45:40 +02:00
http_htx.c CLEANUP: Remove useless malloc() casts 2021-04-08 20:11:58 +02:00
http_rules.c MINOR: http-rules: suggest approaching action names on mismatch 2021-03-12 14:13:21 +01:00
htx.c CLEANUP: Use istadv(const struct ist, const size_t) whenever possible 2021-03-03 05:07:10 +01:00
init.c REORG: global: move initcall register code in a dedicated file 2021-03-26 15:28:33 +01:00
lb_chash.c MINOR: lb/chash: use a read lock in chash_get_server_hash() 2020-10-17 20:15:49 +02:00
lb_fas.c OPTIM: lb-first: do not take the server lock on take_conn/drop_conn 2021-02-18 10:06:45 +01:00
lb_fwlc.c OPTIM: lb-leastconn: do not unlink the server if it did not change 2021-02-18 10:06:45 +01:00
lb_fwrr.c MINOR: backend: replace the lbprm lock with an rwlock 2020-10-17 18:51:41 +02:00
lb_map.c MINOR: lb/map: use seek lock and read locks where appropriate 2020-10-17 19:04:27 +02:00
listener.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
log.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
lru.c MINOR: lru: new function to delete <nb> least recently used keys 2016-01-11 07:31:35 +01:00
mailers.c CLEANUP: mailers: use pool_zalloc() in enqueue_one_email_alert() 2021-03-22 23:19:13 +01:00
map.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
mqtt.c CLEANUP: assorted typo fixes in the code and comments 2020-12-21 11:24:48 +01:00
mux_fcgi.c MINOR: trace: make trace sources read_mostly 2021-04-10 19:29:26 +02:00
mux_h1.c MINOR: trace: make trace sources read_mostly 2021-04-10 19:29:26 +02:00
mux_h2.c MINOR: trace: make trace sources read_mostly 2021-04-10 19:29:26 +02:00
mux_pt.c MINOR: trace: make trace sources read_mostly 2021-04-10 19:29:26 +02:00
mworker-prog.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
mworker.c CLEANUP: config: make the cfg_keyword parsers take a const for the defproxy 2021-03-09 10:09:43 +01:00
namespace.c REORG: include: move the error reporting functions to from log.h to errors.h 2020-06-11 10:18:59 +02:00
pattern.c MINOR: pattern: make the pat_lru_seed read_mostly 2021-04-10 19:27:41 +02:00
payload.c BUG/MINOR: payload/htx: Ingore L6 sample fetches for HTX streams/checks 2021-04-01 15:31:55 +02:00
peers.c MINOR: freq_ctr: unify freq_ctr and freq_ctr_period into freq_ctr 2021-04-11 11:11:27 +02:00
pipe.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
pool.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
proto_quic.c MINOR: fd: move .linger_risk into fdtab[].state 2021-04-07 18:07:49 +02:00
proto_sockpair.c MINOR: fd: move .linger_risk into fdtab[].state 2021-04-07 18:07:49 +02:00
proto_tcp.c MINOR: fd: move .linger_risk into fdtab[].state 2021-04-07 18:07:49 +02:00
proto_udp.c MINOR: udp: export udp_suspend_receiver() and udp_resume_receiver() 2020-12-08 18:10:18 +01:00
proto_uxdg.c BUG/MINOR: protocol: add missing support of dgram unix socket. 2021-03-18 18:30:29 +01:00
proto_uxst.c MINOR: fd: move .linger_risk into fdtab[].state 2021-04-07 18:07:49 +02:00
protocol.c MINOR: protocol: move __protocol_by_family to read_mostly 2021-04-10 19:27:41 +02:00
proxy.c CLEANUP: atomic: add a fetch-and-xxx variant for common operations 2021-04-07 18:18:37 +02:00
qpack-tbl.c CLEANUP: qpack: Wrong comment about the draft for QPACK static header table. 2021-01-04 12:31:28 +01:00
queue.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
quic_cc.c MINOR: quic: Import C source code files for QUIC protocol. 2020-12-23 11:57:26 +01:00
quic_cc_newreno.c MINOR: quic: Add traces to congestion avoidance NewReno callback. 2020-12-23 11:57:26 +01:00
quic_frame.c CLEANUP: assorted typo fixes in the code and comments 2021-01-06 16:26:50 +01:00
quic_sock.c MEDIUM: fd: merge fdtab[].ev and state for FD_EV_* and FD_POLL_* into state 2021-04-07 18:04:39 +02:00
quic_tls.c MINOR: quic: Update the initial salt to that of draft-29. 2020-12-23 11:57:26 +01:00
raw_sock.c MINOR: fd: move .linger_risk into fdtab[].state 2021-04-07 18:07:49 +02:00
regex.c OPTIM: regex: PCRE2 use JIT match when JIT optimisation occured. 2020-08-14 07:53:40 +02:00
resolvers.c MEDIUM: resolvers: add support of tcp address on nameserver line. 2021-04-08 14:20:40 +02:00
ring.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
sample.c BUILD: ssl: use EVP_CIPH_GCM_MODE macro instead of HA_OPENSSL_VERSION 2021-03-26 23:16:25 +01:00
server.c MINOR: server: move idle_conn_task to read_mostly 2021-04-10 19:27:41 +02:00
server_state.c BUG/MINOR: server-state: use the argument, not the global state 2021-03-12 14:13:07 +01:00
session.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
sha1.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
shctx.c REORG: include: split global.h into haproxy/global{,-t}.h 2020-06-11 10:18:58 +02:00
signal.c REORG: include: move the error reporting functions to from log.h to errors.h 2020-06-11 10:18:59 +02:00
sink.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
sock.c MINOR: fd: move .linger_risk into fdtab[].state 2021-04-07 18:07:49 +02:00
sock_inet.c MINOR: fd: move .exported into fdtab[].state 2021-04-07 18:10:36 +02:00
sock_unix.c MINOR: fd: move .exported into fdtab[].state 2021-04-07 18:10:36 +02:00
ssl_ckch.c CLEANUP: tree-wide: replace free(x);x=NULL with ha_free(&x) 2021-02-26 21:21:09 +01:00
ssl_crtlist.c BUG/MINOR: ssl: Prevent removal of crt-list line if the instance is a default one 2021-03-26 13:06:39 +01:00
ssl_sample.c BUILD: ssl: introduce fine guard for ssl random extraction functions 2021-03-26 15:19:07 +01:00
ssl_sock.c MINOR: pool: move pool declarations to read_mostly 2021-04-10 19:27:41 +02:00
ssl_utils.c CLEANUP: ssl: ssl_sock_crt2der semicolon and spaces 2020-08-07 15:38:40 +02:00
stats.c BUG/MINOR: stats: Apply proper styles in HTML status page. 2021-03-30 16:57:22 +02:00
stick_table.c MINOR: freq_ctr: unify freq_ctr and freq_ctr_period into freq_ctr 2021-04-11 11:11:27 +02:00
stream.c MINOR: freq_ctr: unify freq_ctr and freq_ctr_period into freq_ctr 2021-04-11 11:11:27 +02:00
stream_interface.c CLEANUP: task: make sure tasklet handlers always indicate their statuses 2021-03-13 11:30:19 +01:00
task.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
tcp_act.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
tcp_rules.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
tcp_sample.c CLEANUP: socket: replace SOL_IP/IPV6/TCP with IPPROTO_IP/IPV6/TCP 2021-03-31 08:59:34 +02:00
tcpcheck.c MINOR: fd: move .linger_risk into fdtab[].state 2021-04-07 18:07:49 +02:00
thread.c MINOR: threads: mark all_threads_mask as read_mostly 2021-04-10 19:27:41 +02:00
time.c BUG/MEDIUM: time: make sure to always initialize the global tick 2021-03-30 18:28:25 +02:00
tools.c BUG/MEDIUM: log: fix config parse error logging on stdout/stderr or any raw fd 2021-04-07 15:01:00 +02:00
trace.c CLEANUP: Use isttest(const struct ist) whenever possible 2021-03-03 05:07:10 +01:00
uri_auth.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
vars.c CLEANUP: vars: always pre-initialize smp in vars_parse_cli_get_var() 2021-04-01 17:04:17 +02:00
version.c BUILD: Fix build by including haproxy/global.h 2020-06-16 23:36:04 +02:00
wdt.c CLEANUP: config: Return ERR_NONE from config callbacks instead of 0 2020-11-13 16:26:10 +01:00
xprt_handshake.c MEDIUM: connections: Implement a start() method for xprt_handshake. 2021-03-19 15:33:04 +01:00
xprt_quic.c MINOR: fd: move .linger_risk into fdtab[].state 2021-04-07 18:07:49 +02:00