haproxy/include/proto
Willy Tarreau 0d6c75d749 OPTIM: freq-ctr: don't take the date lock for most updates
It's amazing that the value was still incremented under the date lock,
let's first use an atomic increment for the counter and move it out of
the date lock to reduce contention. These are just counters, we don't
need to take locks if we're not rotating, atomic ops are enough. This
patch does this, and leaves the lock for when the period is over. It's
important to note that some values might be added just before or just
after a rotation but this is not a problem since we don't care if a
value is counted in the previous or next period when it's exactly on
the edge. Great care was taken to ensure that the current counter is
always atomically updated.

Other minor cleanups were performed, such as avoiding to reload the
value from memory after a CAS, or using &~1 instead of two shifts to
remove the lowest bit.
2019-05-25 20:31:53 +02:00
..
acl.h
action.h MINOR: action: new '(http-request|tcp-request content) do-resolve' action 2019-04-23 11:41:52 +02:00
activity.h MINOR: time: move the cpu, mono, and idle time to thread_info 2019-05-20 21:14:14 +02:00
applet.h MINOR: applet: measure and report an appctx's call rate in "show sess" 2019-04-24 16:04:23 +02:00
arg.h
auth.h
backend.h BUG/MAJOR: lb/threads: fix insufficient locking on round-robin LB 2019-04-16 11:21:14 +02:00
channel.h BUG/MEDIUM: channels: Don't forget to reset output in channel_erase(). 2019-05-02 10:40:59 +02:00
checks.h
cli.h MINOR: cli: export cli_parse_default() definition in cli.h 2019-04-01 14:45:37 +02:00
compression.h
connection.h MINOR: connection: report the mux names in "haproxy -vv" 2019-05-22 11:50:48 +02:00
dns.h MINOR: action: new '(http-request|tcp-request content) do-resolve' action 2019-04-23 11:41:52 +02:00
fd.h MINOR: fd: Add a counter of used fds. 2019-04-18 19:19:59 +02:00
filters.h MINOR: filters: Export the name of known filters 2018-12-11 17:09:31 +01:00
flt_http_comp.h MINOR: compression: Rename the function check_legacy_http_comp_flt() 2018-12-11 17:09:31 +01:00
freq_ctr.h OPTIM: freq-ctr: don't take the date lock for most updates 2019-05-25 20:31:53 +02:00
frontend.h
hdr_idx.h
hlua_fcn.h
hlua.h
http_fetch.h BUG/MINOR: http_fetch/htx: Allow permissive sample prefetch for the HTX 2019-04-17 15:12:27 +02:00
http_htx.h CLEANUP: h1: remove some occurrences of unneeded h1.h inclusions 2018-12-11 17:15:13 +01:00
http_rules.h
lb_chash.h MINOR: lb: allow redispatch when using consistent hash 2019-01-02 20:22:17 +01:00
lb_fas.h
lb_fwlc.h
lb_fwrr.h
lb_map.h
listener.h MINOR: listener: introduce listener_backlog() to report the backlog value 2019-02-28 17:05:29 +01:00
log.h MINOR: log: Enable the log sampling and load-balancing feature. 2019-04-30 09:25:09 +02:00
map.h
mux_pt.h
mworker.h BUG/MINOR: mworker: Fix memory leak of mworker_proc members 2019-05-22 11:29:18 +02:00
obj_type.h CLEANUP: objtype: make obj_type() and obj_type_name() take consts 2019-05-22 11:50:48 +02:00
pattern.h
payload.h
peers.h BUG/MEDIUM: peers: Missing peer initializations. 2019-02-12 19:49:22 +01:00
pipe.h
port_range.h BUG/MEDIUM: port_range: Make the ring buffer lock-free. 2019-04-30 15:10:17 +02:00
proto_http.h MINOR: http: update the macro IS_HTX_STRM() to check the stream flag SF_HTX 2019-04-12 22:06:53 +02:00
proto_sockpair.h
proto_tcp.h MEDIUM: proto: Change the prototype of the connect() method. 2019-05-06 22:12:57 +02:00
proto_udp.h
protocol_buffers.h BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
protocol.h CLEANUP: Fix a typo in the protocol header file 2018-12-02 18:42:49 +01:00
proxy.h MEDIUM: streams: Add the ability to retry a request on L7 failure. 2019-05-04 10:19:56 +02:00
queue.h
raw_sock.h
sample.h
server.h MEDIUM: connections: Add a way to control the number of idling connections. 2019-04-18 19:52:03 +02:00
session.h BUG/MEDIUM: connections: Make sure we remove CO_FL_SESS_IDLE on disown. 2019-05-02 12:08:39 +02:00
shctx.h BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
signal.h
spoe.h BUG/MEDIUM: spoe: Be sure the sample is found before setting its context 2019-05-07 22:16:41 +02:00
ssl_sock.h CLEANUP: ssl: make inclusion of openssl headers safe 2019-05-10 09:58:43 +02:00
stats.h MINOR: stats: Move stuff about the stats status codes in stats files 2019-03-15 14:34:59 +01:00
stick_table.h MINOR: stick-table: Add prefixes to stick-table names. 2019-05-07 06:54:07 +02:00
stream_interface.h MEDIUM: tcp: add the "tfo" option to support TCP fastopen on the server 2019-05-06 22:29:39 +02:00
stream.h MINOR: stream: introduce a stream_dump() function and use it in stream_dump_and_crash() 2019-05-22 11:50:48 +02:00
task.h MINOR: task: always reset curr_task when freeing a task or tasklet 2019-05-17 17:16:20 +02:00
tcp_rules.h
template.h
vars.h