Announcement

Collapse
No announcement yet.

Meta Continues Working On BOLT'ing The Linux Kernel For Greater Performance

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Meta Continues Working On BOLT'ing The Linux Kernel For Greater Performance

    Phoronix: Meta Continues Working On BOLT'ing The Linux Kernel For Greater Performance

    Merged to the LLVM compiler stack two years ago was the BOLT tool for optimizing the layout of generated binaries for offering even greater performance than the likes of Profile Guided Optimizations (PGO) alone. BOLT had been in development for years by Facebook/Meta engineers and has continued to be improved upon for enhancing the code layout of binaries to yield enhanced performance. Recently there's been renewed work on using BOLT to optimize Linux kernel images...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Researchers: Kernel LTO\PGO\WTF speedup
    Users: waiting for x86-64-v3 OOB support in distros

    Comment


    • #3
      On CachyOS we already tried with a custom branch of llvm from maksfb to bolt the kernel.
      Sadly it failed, at the profile conversion, but we are in contact with the developers and hopefully they will implement soon that it will work.
      Im really looking forward to it to have a alternative optimization for the kernel.

      Mitigations seem to currently maybe problematic:
      Code:
      perf2bolt -p perf.data -o perf.fdate /usr/lib/modules/6.6.7-1-bolt/build/vmlinux
      PERF2BOLT: Starting data aggregation job for perf.data
      PERF2BOLT: spawning perf job to read branch events
      PERF2BOLT: spawning perf job to read mem events
      PERF2BOLT: spawning perf job to read process events
      PERF2BOLT: spawning perf job to read task events
      BOLT-INFO: Target architecture: x86_64
      BOLT-INFO: BOLT version: 2a9654db14584dae6b6a5ccc6c47ac18ce89174c
      BOLT-INFO: first alloc address is 0x0
      BOLT-INFO: creating new program header table at address 0xffffffff84400000, offset 0xffffffff84400000
      BOLT-INFO: static input executable detected
      BOLT-INFO: disabling -align-macro-fusion in non-relocation mode
      BOLT-INFO: enabling lite mode
      BOLT-ERROR: symbol seen in the middle of the function retbleed_untrain_ret. Skipping.
      BOLT-ERROR: symbol seen in the middle of the function srso_untrain_ret. Skipping.
      BOLT-INFO: pre-processing profile using perf data aggregator
      BOLT-WARNING: build-id will not be checked because we could not read one from input binary
      PERF2BOLT: waiting for perf task events collection to finish...
      PERF2BOLT: parsing perf-script task events output
      PERF2BOLT: input binary is associated with 0 PID(s)
      PERF2BOLT: waiting for perf events collection to finish...
      PERF2BOLT: parse branch events...
      PERF2BOLT: read 11895504 samples and 190265770 LBR entries
      PERF2BOLT: 0 samples (0.0%) were ignored
      PERF2BOLT: traces mismatching disassembled function contents: 0 (0.0%)
      PERF2BOLT: out of range traces involving unknown regions: 178370422 (100.0%)
      PERF2BOLT: waiting for perf mem events collection to finish...
      BOLT-ERROR: while running linux-kernel-rewriter in pre-CFG state: out of bounds while reading .altinstructions​

      Comment


      • #4
        I hope that PGO will also be a re-newed focus for the Kernel, especially since PGO would further the benefits of LTO and BOLT.

        Comment

        Working...
        X