Merged in measureClassificationOverhead (pull request #12)
MeasureClassificationOverhead Approved-by: Akash Kothawale <akothaw1@binghamton.edu>
This commit is contained in:
parent
ae81125110
commit
f1c6adb05b
9 changed files with 127 additions and 81 deletions
11
logging/def/clsfnTaskDistOverhead.go
Normal file
11
logging/def/clsfnTaskDistOverhead.go
Normal file
|
@ -0,0 +1,11 @@
|
|||
package logging
|
||||
|
||||
type ClsfnTaskDistOverheadLogger struct {
|
||||
loggerObserverImpl
|
||||
}
|
||||
|
||||
func (col ClsfnTaskDistOverheadLogger) Log(message string) {
|
||||
// Logging the overhead of classifying tasks in the scheduling window and determining the distribution
|
||||
// of light power consuming and heavy power consuming tasks.
|
||||
col.logObserverSpecifics[clsfnTaskDistOverheadLogger].logFile.Println(message)
|
||||
}
|
|
@ -7,14 +7,15 @@ var logMessageNames []string
|
|||
|
||||
// Possible log message types
|
||||
var (
|
||||
ERROR = messageNametoMessageType("ERROR")
|
||||
WARNING = messageNametoMessageType("WARNING")
|
||||
GENERAL = messageNametoMessageType("GENERAL")
|
||||
SUCCESS = messageNametoMessageType("SUCCESS")
|
||||
SCHED_TRACE = messageNametoMessageType("SCHED_TRACE")
|
||||
PCP = messageNametoMessageType("PCP")
|
||||
DEG_COL = messageNametoMessageType("DEG_COL")
|
||||
SPS = messageNametoMessageType("SPS")
|
||||
ERROR = messageNametoMessageType("ERROR")
|
||||
WARNING = messageNametoMessageType("WARNING")
|
||||
GENERAL = messageNametoMessageType("GENERAL")
|
||||
SUCCESS = messageNametoMessageType("SUCCESS")
|
||||
SCHED_TRACE = messageNametoMessageType("SCHED_TRACE")
|
||||
PCP = messageNametoMessageType("PCP")
|
||||
DEG_COL = messageNametoMessageType("DEG_COL")
|
||||
SPS = messageNametoMessageType("SPS")
|
||||
CLSFN_TASKDIST_OVERHEAD = messageNametoMessageType("CLSFN_TASKDIST_OVERHEAD")
|
||||
)
|
||||
|
||||
// Text colors for the different types of log messages.
|
||||
|
|
|
@ -20,6 +20,7 @@ func newLogger() *LoggerDriver {
|
|||
PCP: true,
|
||||
DEG_COL: true,
|
||||
SPS: true,
|
||||
CLSFN_TASKDIST_OVERHEAD: true,
|
||||
},
|
||||
}
|
||||
return logger
|
||||
|
|
|
@ -8,20 +8,22 @@ import (
|
|||
|
||||
// Names of different loggers
|
||||
const (
|
||||
conLogger = "console-logger"
|
||||
schedTraceLogger = "schedTrace-logger"
|
||||
pcpLogger = "pcp-logger"
|
||||
degColLogger = "degCol-logger"
|
||||
spsLogger = "schedPolicySwitch-logger"
|
||||
conLogger = "console-logger"
|
||||
schedTraceLogger = "schedTrace-logger"
|
||||
pcpLogger = "pcp-logger"
|
||||
degColLogger = "degCol-logger"
|
||||
spsLogger = "schedPolicySwitch-logger"
|
||||
clsfnTaskDistOverheadLogger = "classificationOverhead-logger"
|
||||
)
|
||||
|
||||
// Logger class factory
|
||||
var Loggers map[string]loggerObserver = map[string]loggerObserver{
|
||||
conLogger: nil,
|
||||
schedTraceLogger: nil,
|
||||
pcpLogger: nil,
|
||||
degColLogger: nil,
|
||||
spsLogger: nil,
|
||||
conLogger: nil,
|
||||
schedTraceLogger: nil,
|
||||
pcpLogger: nil,
|
||||
degColLogger: nil,
|
||||
spsLogger: nil,
|
||||
clsfnTaskDistOverheadLogger: nil,
|
||||
}
|
||||
|
||||
// Logger options to help initialize loggers
|
||||
|
@ -38,11 +40,12 @@ func withLogDirectory(startTime time.Time, prefix string) loggerOption {
|
|||
func withLoggerSpecifics(prefix string) loggerOption {
|
||||
return func(l loggerObserver) error {
|
||||
l.(*loggerObserverImpl).logObserverSpecifics = map[string]*specifics{
|
||||
conLogger: &specifics{},
|
||||
schedTraceLogger: &specifics{},
|
||||
pcpLogger: &specifics{},
|
||||
degColLogger: &specifics{},
|
||||
spsLogger: &specifics{},
|
||||
conLogger: &specifics{},
|
||||
schedTraceLogger: &specifics{},
|
||||
pcpLogger: &specifics{},
|
||||
degColLogger: &specifics{},
|
||||
spsLogger: &specifics{},
|
||||
clsfnTaskDistOverheadLogger: &specifics{},
|
||||
}
|
||||
l.(*loggerObserverImpl).setLogFilePrefix(prefix)
|
||||
l.(*loggerObserverImpl).setLogFile()
|
||||
|
@ -70,6 +73,9 @@ func attachAllLoggers(lg *LoggerDriver, startTime time.Time, prefix string) {
|
|||
Loggers[spsLogger] = &SchedPolicySwitchLogger{
|
||||
loggerObserverImpl: *loi,
|
||||
}
|
||||
Loggers[clsfnTaskDistOverheadLogger] = &ClsfnTaskDistOverheadLogger{
|
||||
loggerObserverImpl: *loi,
|
||||
}
|
||||
|
||||
for _, lmt := range GetLogMessageTypes() {
|
||||
switch lmt {
|
||||
|
@ -89,6 +95,8 @@ func attachAllLoggers(lg *LoggerDriver, startTime time.Time, prefix string) {
|
|||
lg.attach(DEG_COL, Loggers[degColLogger])
|
||||
case SPS.String():
|
||||
lg.attach(SPS, Loggers[spsLogger])
|
||||
case CLSFN_TASKDIST_OVERHEAD.String():
|
||||
lg.attach(CLSFN_TASKDIST_OVERHEAD, Loggers[clsfnTaskDistOverheadLogger])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -84,6 +84,15 @@ func (loi *loggerObserverImpl) setLogFilePrefix(prefix string) {
|
|||
schedPolicySwitchLogFilePrefix = loi.logDirectory + "/" + schedPolicySwitchLogFilePrefix
|
||||
}
|
||||
loi.logObserverSpecifics[spsLogger].logFilePrefix = schedPolicySwitchLogFilePrefix
|
||||
|
||||
// Setting logFilePrefix for clsfnTaskDist logger.
|
||||
// Execution time of every call to def.GetTaskDistribution(...) would be recorded and logged in this file.
|
||||
// The overhead would be logged in microseconds.
|
||||
clsfnTaskDistOverheadLogFilePrefix := prefix + "_classificationOverhead.log"
|
||||
if loi.logDirectory != "" {
|
||||
clsfnTaskDistOverheadLogFilePrefix = loi.logDirectory + "/" + clsfnTaskDistOverheadLogFilePrefix
|
||||
}
|
||||
loi.logObserverSpecifics[clsfnTaskDistOverheadLogger].logFilePrefix = clsfnTaskDistOverheadLogFilePrefix
|
||||
}
|
||||
|
||||
func (loi *loggerObserverImpl) setLogDirectory(dirName string) {
|
||||
|
|
Reference in a new issue