refactor: admissions control flags

master
Sean McBride 2 years ago
parent edf98efa51
commit 876634b87b

@ -78,7 +78,7 @@ BINARY_NAME=sledgert
# This flag dumps totals of incoming requests and outgoing responses, broken out by status code # This flag dumps totals of incoming requests and outgoing responses, broken out by status code
# family, such as 2XX, 4XX, 5XX. It is useful to debug clients hanging waiting for a response. # family, such as 2XX, 4XX, 5XX. It is useful to debug clients hanging waiting for a response.
# To log, run `call http_total_log()` while in GDB # To log, run `call http_total_log()` while in GDB
CFLAGS += -DHTTP_TOTAL_COUNTERS # CFLAGS += -DHTTP_TOTAL_COUNTERS
# This flag tracks the total number of sandboxes in the various states # This flag tracks the total number of sandboxes in the various states
# It is useful to debug if sandboxes are "getting caught" in a particular state # It is useful to debug if sandboxes are "getting caught" in a particular state

@ -3,10 +3,11 @@
#include <stdbool.h> #include <stdbool.h>
#include <stdint.h> #include <stdint.h>
#ifdef ADMISSIONS_CONTROL
#define ADMISSIONS_CONTROL_GRANULARITY 1000000 #define ADMISSIONS_CONTROL_GRANULARITY 1000000
extern _Atomic uint64_t admissions_control_admitted; extern _Atomic uint64_t admissions_control_admitted;
extern uint64_t admissions_control_capacity; extern uint64_t admissions_control_capacity;
#endif
void admissions_control_initialize(void); void admissions_control_initialize(void);
void admissions_control_add(uint64_t admissions_estimate); void admissions_control_add(uint64_t admissions_estimate);

@ -18,10 +18,12 @@
* These estimates are incremented on request acceptance and decremented on request completion (either * These estimates are incremented on request acceptance and decremented on request completion (either
* success or failure) * success or failure)
*/ */
#ifdef ADMISSIONS_CONTROL
_Atomic uint64_t admissions_control_admitted; _Atomic uint64_t admissions_control_admitted;
uint64_t admissions_control_capacity; uint64_t admissions_control_capacity;
const double admissions_control_overhead = 0.2;
const double admissions_control_overhead = 0.2; #endif
void void
admissions_control_initialize() admissions_control_initialize()
@ -93,10 +95,12 @@ admissions_control_calculate_estimate_us(uint32_t estimated_execution_us, uint32
void void
admissions_control_log_decision(uint64_t admissions_estimate, bool admitted) admissions_control_log_decision(uint64_t admissions_estimate, bool admitted)
{ {
#ifdef ADMISSIONS_CONTROL
#ifdef LOG_ADMISSIONS_CONTROL #ifdef LOG_ADMISSIONS_CONTROL
debuglog("Admitted: %lu, Capacity: %lu, Estimate: %lu, Admitted? %s\n", admissions_control_admitted, debuglog("Admitted: %lu, Capacity: %lu, Estimate: %lu, Admitted? %s\n", admissions_control_admitted,
admissions_control_capacity, admissions_estimate, admitted ? "yes" : "no"); admissions_control_capacity, admissions_estimate, admitted ? "yes" : "no");
#endif /* LOG_ADMISSIONS_CONTROL */ #endif /* LOG_ADMISSIONS_CONTROL */
#endif /* ADMISSIONS_CONTROL */
} }
uint64_t uint64_t

Loading…
Cancel
Save