<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in Makefile.propeller</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>d63b8524 - kbuild: Fix Propeller build option</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/Makefile.propeller#d63b8524</link>
        <description>kbuild: Fix Propeller build optionThe &apos;-fbasic-block-sections=labels&apos; option has been deprecated in tipof tree clang (20.0.0) [1]. While the option still works, a warning isemitted:  clang: warning: argument &apos;-fbasic-block-sections=labels&apos; is deprecated, use &apos;-fbasic-block-address-map&apos; instead [-Wdeprecated]Add a version check to set the proper option.Link: https://github.com/llvm/llvm-project/pull/110039 [1]Signed-off-by: Rong Xu &lt;xur@google.com&gt;Reported-by: Nathan Chancellor &lt;nathan@kernel.org&gt;Suggested-by: Nathan Chancellor &lt;nathan@kernel.org&gt;Reviewed-by: Nathan Chancellor &lt;nathan@kernel.org&gt;Tested-by: Nathan Chancellor &lt;nathan@kernel.org&gt;Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/Makefile.propeller</description>
        <pubDate>Fri, 08 Nov 2024 21:49:53 +0000</pubDate>
        <dc:creator>Rong Xu &lt;xur@google.com&gt;</dc:creator>
    </item>
<item>
        <title>d5dc9583 - kbuild: Add Propeller configuration for kernel build</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/Makefile.propeller#d5dc9583</link>
        <description>kbuild: Add Propeller configuration for kernel buildAdd the build support for using Clang&apos;s Propeller optimizer. LikeAutoFDO, Propeller uses hardware sampling to gather informationabout the frequency of execution of different code paths within abinary. This information is then used to guide the compiler&apos;soptimization decisions, resulting in a more efficient binary.The support requires a Clang compiler LLVM 19 or later, and thecreate_llvm_prof tool(https://github.com/google/autofdo/releases/tag/v0.30.1). Thiscommit is limited to x86 platforms that support PMU featureslike LBR on Intel machines and AMD Zen3 BRS.Here is an example workflow for building an AutoFDO+Propelleroptimized kernel:1) Build the kernel on the host machine, with AutoFDO and Propeller   build config      CONFIG_AUTOFDO_CLANG=y      CONFIG_PROPELLER_CLANG=y   then      $ make LLVM=1 CLANG_AUTOFDO_PROFILE=&lt;autofdo_profile&gt;&#8220;&lt;autofdo_profile&gt;&#8221; is the profile collected when doing a non-PropellerAutoFDO build. This step builds a kernel that has the same optimizationlevel as AutoFDO, plus a metadata section that records basic blockinformation. This kernel image runs as fast as an AutoFDO optimizedkernel.2) Install the kernel on test/production machines.3) Run the load tests. The &apos;-c&apos; option in perf specifies the sample   event period. We suggest using a suitable prime number,   like 500009, for this purpose.   For Intel platforms:      $ perf record -e BR_INST_RETIRED.NEAR_TAKEN:k -a -N -b -c &lt;count&gt; \        -o &lt;perf_file&gt; -- &lt;loadtest&gt;   For AMD platforms:      The supported system are: Zen3 with BRS, or Zen4 with amd_lbr_v2      # To see if Zen3 support LBR:      $ cat proc/cpuinfo | grep &quot; brs&quot;      # To see if Zen4 support LBR:      $ cat proc/cpuinfo | grep amd_lbr_v2      # If the result is yes, then collect the profile using:      $ perf record --pfm-events RETIRED_TAKEN_BRANCH_INSTRUCTIONS:k -a \        -N -b -c &lt;count&gt; -o &lt;perf_file&gt; -- &lt;loadtest&gt;4) (Optional) Download the raw perf file to the host machine.5) Generate Propeller profile:   $ create_llvm_prof --binary=&lt;vmlinux&gt; --profile=&lt;perf_file&gt; \     --format=propeller --propeller_output_module_name \     --out=&lt;propeller_profile_prefix&gt;_cc_profile.txt \     --propeller_symorder=&lt;propeller_profile_prefix&gt;_ld_profile.txt   &#8220;create_llvm_prof&#8221; is the profile conversion tool, and a prebuilt   binary for linux can be found on   https://github.com/google/autofdo/releases/tag/v0.30.1 (can also build   from source).   &quot;&lt;propeller_profile_prefix&gt;&quot; can be something like   &quot;/home/user/dir/any_string&quot;.   This command generates a pair of Propeller profiles:   &quot;&lt;propeller_profile_prefix&gt;_cc_profile.txt&quot; and   &quot;&lt;propeller_profile_prefix&gt;_ld_profile.txt&quot;.6) Rebuild the kernel using the AutoFDO and Propeller profile files.      CONFIG_AUTOFDO_CLANG=y      CONFIG_PROPELLER_CLANG=y   and      $ make LLVM=1 CLANG_AUTOFDO_PROFILE=&lt;autofdo_profile&gt; \        CLANG_PROPELLER_PROFILE_PREFIX=&lt;propeller_profile_prefix&gt;Co-developed-by: Han Shen &lt;shenhan@google.com&gt;Signed-off-by: Han Shen &lt;shenhan@google.com&gt;Signed-off-by: Rong Xu &lt;xur@google.com&gt;Suggested-by: Sriraman Tallam &lt;tmsriram@google.com&gt;Suggested-by: Krzysztof Pszeniczny &lt;kpszeniczny@google.com&gt;Suggested-by: Nick Desaulniers &lt;ndesaulniers@google.com&gt;Suggested-by: Stephane Eranian &lt;eranian@google.com&gt;Tested-by: Yonghong Song &lt;yonghong.song@linux.dev&gt;Tested-by: Nathan Chancellor &lt;nathan@kernel.org&gt;Reviewed-by: Kees Cook &lt;kees@kernel.org&gt;Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;

            List of files:
            /linux-6.15/scripts/Makefile.propeller</description>
        <pubDate>Sat, 02 Nov 2024 17:51:14 +0000</pubDate>
        <dc:creator>Rong Xu &lt;xur@google.com&gt;</dc:creator>
    </item>
</channel>
</rss>
