0.6.6
Memory Usage
- Changed
struct worknameto be dynamically allocated, but still contiguous within the struct- Address now points to space after
struct work- This is similar to, but not the same as, a flexible array member to avoid needing to compile with C++ extensions enabled
- Address now points to space after
- Swap work items to storage if queue limit is hit
gufi_dir2index,gufi_dir2trace,gufi_trace2index, andgufi_query- use
-M <bytes>to setqueue_limit<bytes>is divided across the number of threads (-n) andworksize to producequeue_limit
- use
-s <prefix>to write swap files to a location that is not pwd
QueuePerThreadPool
- Large amounts of code reorganization and separating out code into functions
- API updates to support swapping,
BottomUpupdates, and to generally have better design
Miscellaneous
CMakeminimum version is now 3.5.0- Updated GitHub Actions Older CMake build
- Now using
_atfunctions to reduce cost of path name resolution struct inputnow has dynamically allocated values - callinput_finito clean updescend- If
struct direntd_typeisDT_UNKNOWN, calllstat(2) - Removed unnecessary arguments
- If
- Individual trace files are now scouted in parallel to reduce likelihood of work generation being a bottleneck
- Now some executables dump
VmHWMfrom/proc/self/statusat the end - Updated version string to print consistently across C and Python
- Split
BottomUpcode into multiple functions in case non-BottomUpfunctions need to be run withBottomUp - Removed
PRINT_CUMULATIVE_TIMES,PRINT_PER_THREAD_STATS, andPRINT_QPTPOOL_QUEUE_SIZE- Performance History Framework
- gnuplot scripts
- GitHub Actions debug builds
- Updated
gpfs-scan-toolto compile with latest code
GitHub Actions
- Removed macOS 12 and remnants of 13
- Added macOS 15
- Python 2 build now runs on CentOS 8