Skip to content

Commit

Permalink
Revert designated initializer list usages so we are C++17 compliant.
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 724356302
  • Loading branch information
Markus Kusano authored and copybara-github committed Feb 7, 2025
1 parent c013c00 commit 7a55888
Show file tree
Hide file tree
Showing 6 changed files with 209 additions and 238 deletions.
50 changes: 26 additions & 24 deletions centipede/runner.cc
Original file line number Diff line number Diff line change
Expand Up @@ -222,27 +222,27 @@ static void CheckWatchdogLimits() {
const uint64_t batch_start_time = state.batch_start_time;
if (input_start_time == 0 || batch_start_time == 0) return;
const Resource resources[] = {
{
.what = "Per-input timeout",
.units = "sec",
.value = curr_time - input_start_time,
.limit = state.run_time_flags.timeout_per_input,
.failure = kExecutionFailurePerInputTimeout.data(),
},
{
.what = "Per-batch timeout",
.units = "sec",
.value = curr_time - batch_start_time,
.limit = state.run_time_flags.timeout_per_batch,
.failure = kExecutionFailurePerBatchTimeout.data(),
},
{
.what = "RSS limit",
.units = "MB",
.value = GetPeakRSSMb(),
.limit = state.run_time_flags.rss_limit_mb,
.failure = kExecutionFailureRssLimitExceeded.data(),
},
{Resource{
/*what =*/"Per-input timeout",
/*units =*/"sec",
/*value =*/curr_time - input_start_time,
/*limit =*/state.run_time_flags.timeout_per_input,
/*failure =*/kExecutionFailurePerInputTimeout.data(),
}},
{Resource{
/*what =*/"Per-batch timeout",
/*units =*/"sec",
/*value =*/curr_time - batch_start_time,
/*limit =*/state.run_time_flags.timeout_per_batch,
/*failure =*/kExecutionFailurePerBatchTimeout.data(),
}},
{Resource{
/*what =*/"RSS limit",
/*units =*/"MB",
/*value =*/GetPeakRSSMb(),
/*limit =*/state.run_time_flags.rss_limit_mb,
/*failure =*/kExecutionFailureRssLimitExceeded.data(),
}},
};
for (const auto &resource : resources) {
if (resource.limit != 0 && resource.value > resource.limit) {
Expand Down Expand Up @@ -911,10 +911,12 @@ static int MutateInputsFromShmem(BlobSequence &inputs_blobseq,
}
auto blob = inputs_blobseq.Read();
if (!runner_request::IsDataInput(blob)) break;
inputs.push_back({.data = {blob.data, blob.data + blob.size},
.metadata = std::move(metadata)});
inputs.push_back(
MutationInput{/*data=*/ByteArray{blob.data, blob.data + blob.size},
/*metadata=*/std::move(metadata)});
input_refs.push_back(
{.data = inputs.back().data, .metadata = &inputs.back().metadata});
MutationInputRef{/*data=*/inputs.back().data,
/*metadata=*/&inputs.back().metadata});
}

if (!callbacks.Mutate(input_refs, num_mutants, [&](ByteSpan mutant) {
Expand Down
28 changes: 14 additions & 14 deletions centipede/runner.h
Original file line number Diff line number Diff line change
Expand Up @@ -161,20 +161,20 @@ struct GlobalRunnerState {

// Flags.
RunTimeFlags run_time_flags = {
.path_level = std::min(ThreadLocalRunnerState::kBoundedPathLength,
HasIntFlag(":path_level=", 0)),
.use_pc_features = HasFlag(":use_pc_features:"),
.use_dataflow_features = HasFlag(":use_dataflow_features:"),
.use_cmp_features = HasFlag(":use_cmp_features:"),
.callstack_level = HasIntFlag(":callstack_level=", 0),
.use_counter_features = HasFlag(":use_counter_features:"),
.use_auto_dictionary = HasFlag(":use_auto_dictionary:"),
.timeout_per_input = HasIntFlag(":timeout_per_input=", 0),
.timeout_per_batch = HasIntFlag(":timeout_per_batch=", 0),
.stack_limit_kb = HasIntFlag(":stack_limit_kb=", 0),
.rss_limit_mb = HasIntFlag(":rss_limit_mb=", 0),
.crossover_level = HasIntFlag(":crossover_level=", 50),
.skip_seen_features = HasFlag(":skip_seen_features:")};
/*path_level=*/std::min(ThreadLocalRunnerState::kBoundedPathLength,
HasIntFlag(":path_level=", 0)),
/*use_pc_features=*/HasFlag(":use_pc_features:"),
/*use_dataflow_features=*/HasFlag(":use_dataflow_features:"),
/*use_cmp_features=*/HasFlag(":use_cmp_features:"),
/*callstack_level=*/HasIntFlag(":callstack_level=", 0),
/*use_counter_features=*/HasFlag(":use_counter_features:"),
/*use_auto_dictionary=*/HasFlag(":use_auto_dictionary:"),
/*timeout_per_input=*/HasIntFlag(":timeout_per_input=", 0),
/*timeout_per_batch=*/HasIntFlag(":timeout_per_batch=", 0),
/*stack_limit_kb=*/HasIntFlag(":stack_limit_kb=", 0),
/*rss_limit_mb=*/HasIntFlag(":rss_limit_mb=", 0),
/*crossover_level=*/HasIntFlag(":crossover_level=", 50),
/*skip_seen_features=*/HasFlag(":skip_seen_features:")};

// Returns true iff `flag` is present.
// Typical usage: pass ":some_flag:", i.e. the flag name surrounded with ':'.
Expand Down
12 changes: 8 additions & 4 deletions centipede/runner_result_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,10 @@ TEST(ExecutionResult, WriteThenRead) {
FeatureVec v2{5, 6, 7, 8};
ExecutionMetadata metadata;
metadata.AppendCmpEntry({1, 2, 3}, {4, 5, 6});
ExecutionResult::Stats stats1{.peak_rss_mb = 10};
ExecutionResult::Stats stats2{.peak_rss_mb = 20};
ExecutionResult::Stats stats1;
stats1.peak_rss_mb = 10;
ExecutionResult::Stats stats2;
stats2.peak_rss_mb = 20;
// First input.
EXPECT_TRUE(BatchResult::WriteInputBegin(blobseq));
EXPECT_TRUE(BatchResult::WriteOneFeatureVec(v1.data(), v1.size(), blobseq));
Expand Down Expand Up @@ -103,8 +105,10 @@ TEST(ExecutionResult, WriteIntoFileThenRead) {
// Imitate execution of two inputs.
FeatureVec v1{1, 2, 3};
FeatureVec v2{5, 6, 7, 8};
ExecutionResult::Stats stats1{.peak_rss_mb = 10};
ExecutionResult::Stats stats2{.peak_rss_mb = 20};
ExecutionResult::Stats stats1;
stats1.peak_rss_mb = 10;
ExecutionResult::Stats stats2;
stats2.peak_rss_mb = 20;
ExecutionMetadata metadata;
metadata.AppendCmpEntry({1, 2, 3}, {4, 5, 6});

Expand Down
22 changes: 10 additions & 12 deletions centipede/rusage_profiler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -402,18 +402,16 @@ const RUsageProfiler::Snapshot& RUsageProfiler::TakeSnapshot( //
}
}

Snapshot snapshot{
.id = static_cast<int64_t>(snapshots_.size()),
.title = std::move(title),
.location = loc,
.time = absl::Now(),
.profiler_id = id_,
.profiler_desc = description_,
.timing = snap_timing,
.delta_timing = delta_timing,
.memory = snap_memory,
.delta_memory = delta_memory,
};
Snapshot snapshot{/*id=*/static_cast<int64_t>(snapshots_.size()),
/*title=*/std::move(title),
/*location=*/loc,
/*time=*/absl::Now(),
/*profiler_id=*/id_,
/*profiler_desc=*/description_,
/*timing=*/snap_timing,
/*delta_timing=*/delta_timing,
/*memory=*/snap_memory,
/*delta_memory=*/delta_memory};

return snapshots_.emplace_back(std::move(snapshot));
}
Expand Down
128 changes: 63 additions & 65 deletions centipede/rusage_stats.cc
Original file line number Diff line number Diff line change
Expand Up @@ -197,13 +197,13 @@ RUsageTiming RUsageTimingOp( //
const Op<double> cpu_op;
// clang-format off
return RUsageTiming{
.wall_time = time_op(t1.wall_time, t2.wall_time),
.user_time = time_op(t1.user_time, t2.user_time),
.sys_time = time_op(t1.sys_time, t2.sys_time),
.cpu_utilization = cpu_op(t1.cpu_utilization, t2.cpu_utilization),
.cpu_hyper_cores = cpu_op(t1.cpu_hyper_cores, t2.cpu_hyper_cores),
.is_delta = is_delta,
};
/*wall_time=*/ time_op(t1.wall_time, t2.wall_time),
/*user_time=*/ time_op(t1.user_time, t2.user_time),
/*sys_time=*/ time_op(t1.sys_time, t2.sys_time),
/*cpu_utilization=*/ cpu_op(t1.cpu_utilization, t2.cpu_utilization),
/*cpu_hyper_cores=*/ cpu_op(t1.cpu_hyper_cores, t2.cpu_hyper_cores),
/*is_delta=*/ is_delta
};
// clang-format on
}

Expand All @@ -227,13 +227,13 @@ RUsageMemory RUsageMemoryOp( //
const Op<MemSize> mem_op;
// clang-format off
return RUsageMemory{
.mem_vsize = mem_op(t1.mem_vsize, t2.mem_vsize),
.mem_vpeak = mem_op(t1.mem_vpeak, t2.mem_vpeak),
.mem_rss = mem_op(t1.mem_rss, t2.mem_rss),
.mem_data = mem_op(t1.mem_data, t2.mem_data),
.mem_shared = mem_op(t1.mem_shared, t2.mem_shared),
.is_delta = is_delta,
};
/*mem_vsize=*/ mem_op(t1.mem_vsize, t2.mem_vsize),
/*mem_vpeak=*/ mem_op(t1.mem_vpeak, t2.mem_vpeak),
/*mem_rss=*/ mem_op(t1.mem_rss, t2.mem_rss),
/*mem_data=*/ mem_op(t1.mem_data, t2.mem_data),
/*mem_shared=*/ mem_op(t1.mem_shared, t2.mem_shared),
/*is_delta=*/ is_delta
};
// clang-format on
}

Expand Down Expand Up @@ -325,29 +325,29 @@ RUsageTiming RUsageTiming::Zero() { return {}; }
RUsageTiming RUsageTiming::Min() {
// clang-format off
return RUsageTiming{
.wall_time = -absl::InfiniteDuration(),
.user_time = -absl::InfiniteDuration(),
.sys_time = -absl::InfiniteDuration(),
.cpu_utilization = 0.0,
.cpu_hyper_cores = 0.0,
.is_delta = false,
/*wall_time=*/ -absl::InfiniteDuration(),
/*user_time=*/ -absl::InfiniteDuration(),
/*sys_time=*/ -absl::InfiniteDuration(),
/*cpu_utilization=*/ 0.0,
/*cpu_hyper_cores=*/ 0.0,
/*is_delta=*/ false,
};
// clang-format on
}

RUsageTiming RUsageTiming::Max() {
// clang-format off
return RUsageTiming{
.wall_time = absl::InfiniteDuration(),
.user_time = absl::InfiniteDuration(),
.sys_time = absl::InfiniteDuration(),
/*wall_time=*/ absl::InfiniteDuration(),
/*user_time=*/ absl::InfiniteDuration(),
/*sys_time=*/ absl::InfiniteDuration(),
// Theoretical max CPU utilization is 100%, but real-life numbers can go
// just a little higher (the OS scheduler's rounding errors?).
.cpu_utilization = 1.0,
/*cpu_utilization=*/ 1.0,
// hardware_concurrency() returns the number of hyperthreaded contexts.
.cpu_hyper_cores =
/*cpu_hyper_cores=*/
static_cast<double>(std::thread::hardware_concurrency()),
.is_delta = false,
/*is_delta=*/ false,
};
// clang-format on
}
Expand Down Expand Up @@ -382,14 +382,12 @@ RUsageTiming RUsageTiming::Snapshot( //
constexpr double kLinuxSchedCapacityScale = 1024;
cpu_utilization /= kLinuxSchedCapacityScale;
#endif // __APPLE__
return RUsageTiming{
.wall_time = absl::Seconds(wall_time),
.user_time = absl::Seconds(user_time),
.sys_time = absl::Seconds(sys_time),
.cpu_utilization = cpu_utilization,
.cpu_hyper_cores = (user_time + sys_time) / wall_time,
.is_delta = false,
};
return RUsageTiming{/*wall_time=*/absl::Seconds(wall_time),
/*user_time=*/absl::Seconds(user_time),
/*sys_time=*/absl::Seconds(sys_time),
/*cpu_utilization=*/cpu_utilization,
/*cpu_hyper_cores=*/(user_time + sys_time) / wall_time,
/*is_delta=*/false};
}

std::string RUsageTiming::ShortStr() const {
Expand Down Expand Up @@ -435,12 +433,12 @@ RUsageTiming operator/(const RUsageTiming& t, int64_t div) {
// NOTE: Can't use RUsageTimingOp() as this operation is asymmetrical.
// clang-format off
return RUsageTiming{
.wall_time = t.wall_time / div,
.user_time = t.user_time / div,
.sys_time = t.sys_time / div,
.cpu_utilization = t.cpu_utilization / div,
.cpu_hyper_cores = t.cpu_hyper_cores / div,
.is_delta = t.is_delta,
/*wall_time=*/ t.wall_time / div,
/*user_time=*/ t.user_time / div,
/*sys_time=*/ t.sys_time / div,
/*cpu_utilization=*/ t.cpu_utilization / div,
/*cpu_hyper_cores=*/ t.cpu_hyper_cores / div,
/*is_delta=*/ t.is_delta,
};
// clang-format on
}
Expand Down Expand Up @@ -492,26 +490,26 @@ RUsageMemory RUsageMemory::Zero() { return {}; }
RUsageMemory RUsageMemory::Min() {
// clang-format off
return RUsageMemory{
.mem_vsize = std::numeric_limits<int64_t>::min(),
.mem_vpeak = std::numeric_limits<int64_t>::min(),
.mem_rss = std::numeric_limits<int64_t>::min(),
.mem_data = std::numeric_limits<int64_t>::min(),
.mem_shared = std::numeric_limits<int64_t>::min(),
.is_delta = false,
/*mem_vsize=*/ std::numeric_limits<int64_t>::min(),
/*mem_vpeak=*/ std::numeric_limits<int64_t>::min(),
/*mem_rss=*/ std::numeric_limits<int64_t>::min(),
/*mem_data=*/ std::numeric_limits<int64_t>::min(),
/*mem_shared=*/ std::numeric_limits<int64_t>::min(),
/*is_delta=*/ false
};
// clang-format on
}

RUsageMemory RUsageMemory::Max() {
// clang-format off
return RUsageMemory{
.mem_vsize = std::numeric_limits<int64_t>::max(),
.mem_vpeak = std::numeric_limits<int64_t>::max(),
.mem_rss = std::numeric_limits<int64_t>::max(),
.mem_data = std::numeric_limits<int64_t>::max(),
.mem_shared = std::numeric_limits<int64_t>::max(),
.is_delta = false,
};
/*mem_vsize=*/ std::numeric_limits<int64_t>::max(),
/*mem_vpeak=*/ std::numeric_limits<int64_t>::max(),
/*mem_rss=*/ std::numeric_limits<int64_t>::max(),
/*mem_data=*/ std::numeric_limits<int64_t>::max(),
/*mem_shared=*/ std::numeric_limits<int64_t>::max(),
/*is_delta=*/ false
};
// clang-format on
}

Expand Down Expand Up @@ -561,12 +559,12 @@ RUsageMemory RUsageMemory::Snapshot(const RUsageScope& scope) {
#endif // __APPLE__
// clang-format off
return RUsageMemory{
.mem_vsize = vsize,
.mem_vpeak = vpeak,
.mem_rss = rss,
.mem_data = data,
.mem_shared = shared,
.is_delta = false,
/*mem_vsize=*/ vsize,
/*mem_vpeak=*/ vpeak,
/*mem_rss=*/ rss,
/*mem_data=*/ data,
/*mem_shared=*/ shared,
/*is_delta=*/ false
};
// clang-format on
}
Expand Down Expand Up @@ -614,12 +612,12 @@ RUsageMemory operator/(const RUsageMemory& m, int64_t div) {
// NOTE: Can't use RUsageMemoryOp() as this operation is asymmetrical.
// clang-format off
return RUsageMemory{
.mem_vsize = m.mem_vsize / div,
.mem_vpeak = m.mem_vpeak / div,
.mem_rss = m.mem_rss / div,
.mem_data = m.mem_data / div,
.mem_shared = m.mem_shared / div,
.is_delta = m.is_delta,
/*mem_vsize=*/ m.mem_vsize / div,
/*mem_vpeak=*/ m.mem_vpeak / div,
/*mem_rss=*/ m.mem_rss / div,
/*mem_data=*/ m.mem_data / div,
/*mem_shared=*/ m.mem_shared / div,
/*is_delta=*/ m.is_delta
};
// clang-format on
}
Expand Down
Loading

0 comments on commit 7a55888

Please sign in to comment.