44 lines
1.4 KiB
Bash
44 lines
1.4 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Box: PGO Profile Configuration
|
||
|
|
# Purpose: Define representative workloads for Tiny Front
|
||
|
|
# Contract: Provides workload definitions for PGO profile collection
|
||
|
|
|
||
|
|
# Binaries to profile
|
||
|
|
PGO_BINARIES=(
|
||
|
|
"./bench_random_mixed_hakmem"
|
||
|
|
"./bench_tiny_hot_hakmem"
|
||
|
|
)
|
||
|
|
|
||
|
|
# Representative workloads (deterministic seeds for reproducibility)
|
||
|
|
# Design: Cover diverse allocation patterns for optimal PGO data
|
||
|
|
PGO_WORKLOADS=(
|
||
|
|
# Random mixed: Common case (medium working set)
|
||
|
|
# - Most representative of general allocation patterns
|
||
|
|
# - 256 slots = moderate cache pressure
|
||
|
|
"./bench_random_mixed_hakmem 5000000 256 42"
|
||
|
|
|
||
|
|
# Random mixed: Smaller working set (higher cache hit)
|
||
|
|
# - Exercises hot TLS SLL path heavily
|
||
|
|
# - 128 slots = higher hit rate
|
||
|
|
"./bench_random_mixed_hakmem 5000000 128 42"
|
||
|
|
|
||
|
|
# Random mixed: Larger working set (more diverse)
|
||
|
|
# - Exercises refill and cold paths more
|
||
|
|
# - 512 slots = more SuperSlab allocations
|
||
|
|
"./bench_random_mixed_hakmem 5000000 512 42"
|
||
|
|
|
||
|
|
# Tiny hot path: 16B allocations
|
||
|
|
# - Class 0 (smallest) intensive
|
||
|
|
# - High allocation frequency
|
||
|
|
"./bench_tiny_hot_hakmem 16 100 60000"
|
||
|
|
|
||
|
|
# Tiny hot path: 64B allocations
|
||
|
|
# - Class 3 (common size) intensive
|
||
|
|
# - Typical small object pattern
|
||
|
|
"./bench_tiny_hot_hakmem 64 100 60000"
|
||
|
|
)
|
||
|
|
|
||
|
|
# Configuration summary
|
||
|
|
PGO_WORKLOAD_COUNT=${#PGO_WORKLOADS[@]}
|
||
|
|
PGO_BINARY_COUNT=${#PGO_BINARIES[@]}
|