Memory Usage
- Changed
struct work
name
to 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
) andwork
size 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,
BottomUp
updates, and to generally have better design
Miscellaneous
CMake
minimum version is now 3.5.0- Updated GitHub Actions Older CMake build
- Now using
_at
functions to reduce cost of path name resolution struct input
now has dynamically allocated values - callinput_fini
to clean updescend
- If
struct dirent
d_type
isDT_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
VmHWM
from/proc/self/status
at the end - Updated version string to print consistently across C and Python
- Split
BottomUp
code into multiple functions in case non-BottomUp
functions 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-tool
to compile with latest code
GitHub Actions
- Removed macOS 12 and remnants of 13
- Added macOS 15
- Python 2 build now runs on CentOS 8