Future PGO features may create other files in /sys/kernel/debug/pgo. So
rename the kernel's raw profile data file to "vmlinux.profraw" to make
which part of the kernel the file is for more explicit.
Note that future files in /sys/kernel/debug/pgo should follow a similar
naming convention.
Signed-off-by: Bill Wendling <morbo@google.com>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20210531202044.426578-1-morbo@google.com
``/sys/kernel/debug/pgo/reset``
Global reset file: resets all coverage data to zero when written to.
-``/sys/kernel/debug/profraw``
+``/sys/kernel/debug/pgo/vmlinux.profraw``
The raw PGO data that must be processed with ``llvm_profdata``.
.. code-block:: sh
- $ cp -a /sys/kernel/debug/pgo/profraw /tmp/vmlinux.profraw
+ $ cp -a /sys/kernel/debug/pgo/vmlinux.profraw /tmp/vmlinux.profraw
5) (Optional) Download the raw profile data to the HOST machine.
Note that multiple raw profile data files can be merged during this step.
-7) Rebuild the kernel using the profile data (PGO disabled)
+7) Rebuild the kernel using the processed profile data (PGO disabled)
.. code-block:: sh
Run a representative workload for your application on a kernel
compiled with this option and download the raw profile file from
- /sys/kernel/debug/pgo/profraw. This file needs to be processed with
- llvm-profdata. It may be merged with other collected raw profiles.
+ /sys/kernel/debug/pgo/vmlinux.profraw. This file needs to be
+ processed with llvm-profdata. It may be merged with other collected
+ raw profiles.
- Copy the resulting profile file into vmlinux.profdata, and enable
+ Copy the processed profile file into vmlinux.profdata, and enable
KCFLAGS=-fprofile-use=vmlinux.profdata to produce an optimized
kernel.
if (!directory)
goto err_remove;
- if (!debugfs_create_file("profraw", 0600, directory, NULL,
+ if (!debugfs_create_file("vmlinux.profraw", 0600, directory, NULL,
&prf_fops))
goto err_remove;