haproxy public development tree
Go to file
Willy Tarreau c5052bad8a MINOR: sched: add TASK_F_WANTS_TIME to make the scheduler update the call date
Currently tasks being profiled have th_ctx->sched_call_date set to the
current nanosecond in monotonic time. But there's no other way to have
this, despite the scheduler being capable of it. Let's just declare a
new task flag, TASK_F_WANTS_TIME, that makes the scheduler take the time
just before calling the handler. This way, a task that needs nanosecond
resolution on the call date will be able to be called with an up-to-date
date without having to abuse now_mono_time() if not needed. In addition,
if CLOCK_MONOTONIC is not supported (now_mono_time() always returns 0),
the date is set to the most recently known now_ns, which is guaranteed
to be atomic and is only updated once per poll loop.

This date can be more conveniently retrieved using task_mono_time().

This can be useful, e.g. for pacing. The code was slightly adjusted so
as to merge the common parts between the profiling case and this one.
2024-11-19 20:13:41 +01:00
.github
addons
admin
dev DEV: phash: Update 414 and 431 status codes to phash 2024-11-19 15:29:40 +01:00
doc DOC: sched: document the missing TASK_F_UEVT* flags 2024-11-19 20:13:41 +01:00
examples
include MINOR: sched: add TASK_F_WANTS_TIME to make the scheduler update the call date 2024-11-19 20:13:41 +01:00
reg-tests REGTESTS: use -dW by default on every reg-tests 2024-11-19 16:53:10 +01:00
scripts REGTESTS: use -dW by default on every reg-tests 2024-11-19 16:53:10 +01:00
src MINOR: sched: add TASK_F_WANTS_TIME to make the scheduler update the call date 2024-11-19 20:13:41 +01:00
tests
.cirrus.yml
.gitattributes
.gitignore
.mailmap
.travis.yml
BRANCHES
BSDmakefile
CHANGELOG [RELEASE] Released version 3.1-dev13 2024-11-15 18:42:29 +01:00
CONTRIBUTING
INSTALL
LICENSE
MAINTAINERS
Makefile MINOR: quic: define quic_pacing module 2024-11-19 16:16:48 +01:00
README.md
SUBVERS
VERDATE [RELEASE] Released version 3.1-dev13 2024-11-15 18:42:29 +01:00
VERSION [RELEASE] Released version 3.1-dev13 2024-11-15 18:42:29 +01:00

HAProxy

alpine/musl AWS-LC openssl no-deprecated Illumos NetBSD FreeBSD VTest

HAProxy logo

HAProxy is a free, very fast and reliable reverse-proxy offering high availability, load balancing, and proxying for TCP and HTTP-based applications.

Installation

The INSTALL file describes how to build HAProxy. A list of packages is also available on the wiki.

Getting help

The discourse and the mailing-list are available for questions or configuration assistance. You can also use the slack or IRC channel. Please don't use the issue tracker for these.

The issue tracker is only for bug reports or feature requests.

Documentation

The HAProxy documentation has been split into a number of different files for ease of use. It is available in text format as well as HTML. The wiki is also meant to replace the old architecture guide.

Please refer to the following files depending on what you're looking for:

  • INSTALL for instructions on how to build and install HAProxy
  • BRANCHES to understand the project's life cycle and what version to use
  • LICENSE for the project's license
  • CONTRIBUTING for the process to follow to submit contributions

The more detailed documentation is located into the doc/ directory:

License

HAProxy is licensed under GPL 2 or any later version, the headers under LGPL 2.1. See the LICENSE file for a more detailed explanation.