in libkineto/src/Config.cpp [331:391]
void Config::validate(
const time_point<system_clock>& fallbackProfileStartTime) {
if (samplePeriod_.count() == 0) {
LOG(WARNING) << "Sample period must be greater than 0, setting to 1ms";
samplePeriod_ = milliseconds(1);
}
if (multiplexPeriod_ < samplePeriod_) {
LOG(WARNING) << "Multiplex period can not be smaller "
<< "than sample period";
LOG(WARNING) << "Setting multiplex period to " << samplePeriod_.count()
<< "ms";
multiplexPeriod_ = samplePeriod_;
}
if ((multiplexPeriod_ % samplePeriod_).count() != 0) {
LOG(WARNING) << "Multiplex period must be a "
<< "multiple of sample period";
multiplexPeriod_ = alignUp(multiplexPeriod_, samplePeriod_);
LOG(WARNING) << "Setting multiplex period to " << multiplexPeriod_.count()
<< "ms";
}
if ((reportPeriod_ % multiplexPeriod_).count() != 0 ||
reportPeriod_.count() == 0) {
LOG(WARNING) << "Report period must be a "
<< "multiple of multiplex period";
reportPeriod_ = alignUp(reportPeriod_, multiplexPeriod_);
LOG(WARNING) << "Setting report period to " << reportPeriod_.count()
<< "ms";
}
if (samplesPerReport_ < 1) {
LOG(WARNING) << "Samples per report must be in the range "
<< "[1, report period / sample period]";
LOG(WARNING) << "Setting samples per report to 1";
samplesPerReport_ = 1;
}
int max_samples_per_report = reportPeriod_ / samplePeriod_;
if (samplesPerReport_ > max_samples_per_report) {
LOG(WARNING) << "Samples per report must be in the range "
<< "[1, report period / sample period] ([1, "
<< reportPeriod_.count() << "ms / " << samplePeriod_.count()
<< "ms = " << max_samples_per_report << "])";
LOG(WARNING) << "Setting samples per report to " << max_samples_per_report;
samplesPerReport_ = max_samples_per_report;
}
if (!hasProfileStartTime()) {
VLOG(0)
<< "No explicit timestamp has been set. "
<< "Defaulting it to now + activitiesWarmupDuration with buffer.";
profileStartTime_ = fallbackProfileStartTime +
activitiesWarmupDuration() + kDefaultBufferUntilWarmup;
}
if (selectedActivityTypes_.size() == 0) {
selectDefaultActivityTypes();
}
}