# LOG_LEVEL is a parameter used to set the minimal log level. The order of log level
# is critical > error > warning > info > debug. Logging messages which are less than
# this parameter will not output.
# The log locates at /var/log/skylark.log. We backup the log for every 7 days, and max
# backup count is 4 (when about to exceed, delete oldest log), which means the log will
# be kept for max 28 days. The backup log locates at /var/log/skylark.log.%Y-%m-%d
#
## Type:            enum
## Default:         info
## Range:           critical|error|warning|info|debug
#
LOG_LEVEL=info

# POWER_QOS_MANAGEMENT is a parameter used to switch the ability to manage power QoS.
# Currently only support intel x86 platform. The power QoS Management can be optional
# if the CPU usage of VMs is well constrained.
#
## Type:            bool
## Default:         false
## Range:           false/true
#
POWER_QOS_MANAGEMENT=false

# TDP_THRESHOLD is a parameter used to control the highest power which VMs consume.
# When the power of CPU package exceeds (tdp * TDP_THRESHOLD), Skylark will begin to
# do power QoS management.
#
## Type:            float
## Default:         0.98
## Range:           0.8-1
#
TDP_THRESHOLD=0.98

# FREQ_THRESHOLD is a parameter used to control the lowest freq when the power exceed tdp
# threshold (see above).
# 1) When the frequency of a specific CPU is less than (max_freq * FREQ_THRESHOLD), Skylark
# will begin to limit CPU bandwidth of some low priority VMs that run on that CPU.
# 2) When no such CPU found, Skylark will also limit CPU bandwidth of some low priority VMs
# according to their CPU bandwidth consumption.
#
## Type:            float
## Default:         0.98
## Range:           0.9-1
#
FREQ_THRESHOLD=0.98

# QUOTA_THRESHOLD is a parameter used to control the cpu bandwidth ratio of low
# priority VMs when the cpu usage of low priority VMs is too high.
#
## Type:            float
## Default:         0.9
## Range:           0.8-1
#
QUOTA_THRESHOLD=0.9

# ABNORMAL_THRESHOLD is a parameter used to control the maximum number of cycles of
# low priority VMs limited cpu bandwidth. Every time a domain gets limited, its
# remaining cycles are refreshed to be ABNORMAL_THRESHOLD, otherwise it's remaining
# cycles decrease by 1. When the domain's remaining cycles become 0, it's CPU bandwidth
# is recovered to initial setting.
#
## Type:            int
## Default:         3
## Range:           1-5
#
ABNORMAL_THRESHOLD=3

# NET_QOS_MANAGEMENT is a parameter used to switch the ability to manage net QoS
#
## Type:           bool
## Default:        false
## Range:          false/true
#
NET_QOS_MANAGEMENT=false

# NET_QOS_BANDWIDTH_(LOW|HIGH) are parameters used to set network bandwidth range
# of low priority VMs. When the actual network bandwidth of high priority VMs is
# above $NET_QOS_WATER_LINE, the net bandwidth of low priority VMs is limited to
# $NET_QOS_BANDWIDTH_LOW, otherwise is limited to $NET_QOS_BANDWIDTH_HIGH.
# Suggestion: set these parameters according to high-priority application's
# sensibility to network bandwidth. The more sensitive, the less value should be.
# 1) Supported unit: kb/mb/gb/KB/MB/GB. The actual effective bandwidth depends on
#    max bandwidth of NICs.
# 2) $NET_QOS_BANDWIDTH_LOW <= $NET_QOS_BANDWIDTH_HIGH
#
## Type:           string
## Default:        20MB 1GB
## Range:          see 1) and 2) above
NET_QOS_BANDWIDTH_LOW=20MB
NET_QOS_BANDWIDTH_HIGH=1GB

# NET_QOS_WATER_LINE is a parameter used to set network bandwidth water line of high
# priority VMs. For more information, see description of NET_QOS_BANDWIDTH_(LOW|HIGH).
# Suggestion: set the waterline according to high-priority application's sensibility
# to network bandwidth. In general, it shouldn't be very high. The more sensitive, the
# less value should be.
# 1) Supported unit: kb/mb/gb/KB/MB/GB.
#
## Type:           string
## Default:        20MB
## Range:          see 1) above
NET_QOS_WATER_LINE=20MB

# MIN_LLC_WAYS_LOW_VMS is a parameter used to control the minimum LLC ways accessible
# to low priority vms.
#
## Type:           int
## Default:        2
## Range:          1-3
#
MIN_LLC_WAYS_LOW_VMS=2

# MIN_MBW_LOW_VMS is a parameter used to control the minimum percentage of memory
# bandwidth that can be used by low priority vms.
#
## Type:           float
## Default:        0.1
## Range:          0.1-0.2
#
MIN_MBW_LOW_VMS=0.1
