kwk wrote:

I want to add something as a side note because it is PGO related. Last year 
I've experiment with a PGO enabled LLVM toolchain on Fedora ([1], [2]).

## Summary of my experiment
For training data I've used a set of packages that we build on Fedora and I've 
smuggled in my PGO toolchain. The RPM packaging was also tweaked to pick up the 
profile data and create a sub packaging automatically just like we do for debug 
information. This part was rather tricky and RPM related but it worked and we 
ended up having a profiledata-sub-package for any given project in Fedora that 
uses LLVM.

Like I've said I've only used it for a handful of project as demonstration.

## Encountered problem
But back to the point I wanted to make: **disk space for profile data** can 
quickly increase. I've [compiled 
chromium](https://kwk.github.io/pgo-experiment/#find_and_merge_profiles) in my 
tests and our builders exploded because of diskspace just for profile data:

```
LLVM Profile Error: Failed to write file "/builddir/build/BUILD/raw-pgo-profdata
//chromium.llvm.1970228969820616430_0.24617.profraw": No space left on device
```

## Question

Is it possible to have CMake collect and merge the profile data in the 
background? I've used tools like 
[`inotifywait`](https://src.fedoraproject.org/fork/kkleine/rpms/llvm/blob/pgo/f/pgo-background-merge.sh#_128)
 in my PoC to look for `close_write` events to any file under a build directory 
that matches `.*\.profraw$`. When an entry was found, I've stored it into a 
file to be consumed and all profiles in it merged, once there are 10 files. 
This continuous merge helped me reduce the size of total profile data from 
~1,4GB (unmerged) to 1,6MB (merged). This was for the `retsnoop` project. 
Chromium simply took to long to build for my experiment.

I understand this is a special use case but one should not underestimate the 
size of profile data, that's all I'm saying.

[1]: https://kwk.github.io/pgo-experiment/
[2]: 
https://developers.redhat.com/articles/2023/11/07/how-i-experimented-pgo-enabled-llvm-fedora

https://github.com/llvm/llvm-project/pull/77347
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to