My Project
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros
Classes | Macros | Functions | Variables
scheduling_decision.c File Reference
#include "controller_dfg.h"
#include "stats.h"
#include "controller_stats.h"
#include "msu_ids.h"
#include "logging.h"
#include "haproxy.h"
#include "scheduling.h"
#include <stdbool.h>

Go to the source code of this file.

Classes

struct  cloning_info
 
struct  clone_decision
 

Macros

#define MAX_CLONE_CONDITIONS   2
 
#define CLONING_SAMPLES   10
 
#define UNCLONING_SAMPLES   50
 
#define CLONING_DECISION_LEN   sizeof(CLONING_DECISIONS) / sizeof(*CLONING_DECISIONS)
 
#define UNCLONING_DECISION_LEN   sizeof(UNCLONING_DECISIONS) / sizeof(*UNCLONING_DECISIONS)
 
#define MIN_CLONE_DURATION_MS   750
 
#define MIN_UNCLONE_DURATION_MS   750
 

Functions

static int gather_cloning_info (struct cloning_info *info)
 
static int gather_cloning_decision (struct clone_decision *decision)
 
static bool should_clone (struct clone_decision *decision)
 
static bool should_unclone (struct clone_decision *decision)
 
int try_to_clone ()
 
int try_to_unclone ()
 
int perform_cloning ()
 

Variables

static struct clone_decision CLONING_DECISIONS []
 
static struct clone_decision UNCLONING_DECISIONS []
 
static bool min_instances_recorded = false
 

Macro Definition Documentation

#define CLONING_DECISION_LEN   sizeof(CLONING_DECISIONS) / sizeof(*CLONING_DECISIONS)

Definition at line 70 of file scheduling_decision.c.

#define CLONING_SAMPLES   10

Definition at line 50 of file scheduling_decision.c.

#define MAX_CLONE_CONDITIONS   2

Definition at line 30 of file scheduling_decision.c.

#define MIN_CLONE_DURATION_MS   750

Definition at line 153 of file scheduling_decision.c.

#define MIN_UNCLONE_DURATION_MS   750

Definition at line 154 of file scheduling_decision.c.

#define UNCLONING_DECISION_LEN   sizeof(UNCLONING_DECISIONS) / sizeof(*UNCLONING_DECISIONS)

Definition at line 71 of file scheduling_decision.c.

#define UNCLONING_SAMPLES   50

Definition at line 60 of file scheduling_decision.c.

Function Documentation

static int gather_cloning_decision ( struct clone_decision decision)
static

Definition at line 99 of file scheduling_decision.c.

static int gather_cloning_info ( struct cloning_info info)
static

Definition at line 73 of file scheduling_decision.c.

int perform_cloning ( )

Definition at line 215 of file scheduling_decision.c.

static bool should_clone ( struct clone_decision decision)
static

Definition at line 106 of file scheduling_decision.c.

static bool should_unclone ( struct clone_decision decision)
static

Definition at line 125 of file scheduling_decision.c.

int try_to_clone ( )

Definition at line 156 of file scheduling_decision.c.

int try_to_unclone ( )

Definition at line 185 of file scheduling_decision.c.

Variable Documentation

struct clone_decision CLONING_DECISIONS[]
static
Initial value:
= {
{ 500 , {
{ 500 , MSU_QUEUE_LEN, 2, 10 }}, 1},
{ 553 , {
{ 553 , MSU_QUEUE_LEN, 1, 10 }}, 1},
{ 500 , {
{ 552 , MSU_NUM_STATES, 820, 10 }}, 1}
}

Definition at line 51 of file scheduling_decision.c.

bool min_instances_recorded = false
static

Definition at line 213 of file scheduling_decision.c.

struct clone_decision UNCLONING_DECISIONS[]
static
Initial value:
= {
{ 500 , {
{ 500 , MSU_QUEUE_LEN, .01, 50 },
{ 552 , MSU_NUM_STATES, 410, 50 }}, 2},
{ 553 , {
{ 553 , MSU_QUEUE_LEN, .01, 50 }}, 1}
}

Definition at line 61 of file scheduling_decision.c.