{"id":25699508,"url":"https://github.com/xz-dev/kernel-autofdo-container","last_synced_at":"2026-02-16T16:35:34.582Z","repository":{"id":275921924,"uuid":"924658541","full_name":"xz-dev/kernel-autofdo-container","owner":"xz-dev","description":"Create config file for autofdo by (phoronix)test-suite in container","archived":false,"fork":false,"pushed_at":"2025-02-20T16:41:26.000Z","size":20,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T11:22:24.426Z","etag":null,"topics":["autofdo","linux-kernel","performance"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xz-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-30T12:20:19.000Z","updated_at":"2025-02-20T16:41:29.000Z","dependencies_parsed_at":"2025-02-05T10:23:29.708Z","dependency_job_id":"608d712d-fdfd-4d4e-84c0-b9331818a5a9","html_url":"https://github.com/xz-dev/kernel-autofdo-container","commit_stats":null,"previous_names":["xz-dev/autofdo","xz-dev/kernel-autofdo-container"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xz-dev%2Fkernel-autofdo-container","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xz-dev%2Fkernel-autofdo-container/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xz-dev%2Fkernel-autofdo-container/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xz-dev%2Fkernel-autofdo-container/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xz-dev","download_url":"https://codeload.github.com/xz-dev/kernel-autofdo-container/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251345019,"owners_count":21574636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autofdo","linux-kernel","performance"],"created_at":"2025-02-25T03:15:33.399Z","updated_at":"2026-02-16T16:35:29.557Z","avatar_url":"https://github.com/xz-dev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kernel Profile Optimization Tool\n\nA containerized tool for automatically generating AutoFDO and Propeller optimization profiles for Linux kernels. Utilizes Phoronix test suites and `perf` to collect performance data for kernel tuning.\n\n## Features\n\n- Auto-generate AutoFDO optimization profiles\n- Auto-generate Propeller optimization profiles\n- Containerized execution ensures environment consistency\n- Persistent output storage\n- MIT Licensed\n\n## Prerequisites\n\n- Podman\n- Linux kernel debug symbols (vmlinux)\n- Recommended 16GB+ RAM\n\n## Workload\n\nBase on phoronix-test-suite (Maybe you have better idea, please tell we)\n\nCPU suite:\n- pts/rodinia\n- pts/namd\n- pts/stockfish\n- pts/x264\n- pts/x265\n- pts/kvazaar\n- pts/compress-7zip\n- pts/blender\n- pts/asmfish\n- pts/build-linux-kernel\n- pts/build-gcc\n- pts/radiance\n- pts/openssl\n- pts/ctx-clock\n- pts/sysbench\n- pts/povray\n\n## Quick Start\n\n### Build Container Image\n```bash\npodman build -t autofdo .\n```\n\n### Generate AutoFDO Profile\n```bash\npodman run --rm \\\n  -v $PWD/output:/output \\\n  -v /usr/lib/modules/$(uname -r)/build/vmlinux:/vmlinux \\\n  -it --privileged \\\n  autofdo /vmlinux amd autofdo\n```\n\n### Generate Propeller Profile\n```bash\npodman run --rm \\\n  -v $PWD/output:/output \\\n  -v /usr/lib/modules/$(uname -r)/build/vmlinux:/vmlinux \\\n  -it --privileged \\\n  autofdo /vmlinux amd propeller\n```\n\n## Quick Steps\n\n1. Build an init kernel\n2. Reboot to the kernel\n3. Generate AutoFDO Profile\n4. Build an kernel with AutoFDO Profile\n5. Reboot to the new kernel\n6. Generate Propeller Profile\n7. Build an kernel with AutoFDO Profile and Propeller Profile\n8. Reboot and enjoy!\n\n## Performance Results\n\nBelow are the performance comparison results before and after applying the kernel optimization profiles:\n1. No kernel optimization profiles: https://openbenchmarking.org/result/2502094-NE-CPU25415319\n2. AutoFDO and Propeller: https://openbenchmarking.org/result/2502105-NE-CPU23727229\n\n## Output Files\n\nProfiles will be saved to `./output` directory:\n- AutoFDO: `kernel.afdo`\n- Propeller: `propeller/propeller_cc_profile.txt`, `propeller/propeller_ld_profile.txt`\n\n## Parameters\n\n| Parameter         | Description                                      |\n|-------------------|--------------------------------------------------|\n| `/vmlinux`        | Mount path for kernel debug symbols             |\n| `amd`             | Target architecture (supports amd/intel) |\n| `autofdo/propeller` | Optimization type selector                      |\n\n## Notes\n\n1. `--privileged` flag required for performance profiling\n2. Ensure mounted vmlinux matches current kernel version\n3. High CPU/memory load expected - recommend dedicated hardware\n4. Output directory requires write permissions\n\n## Contribution\n\nWe welcome community improvements! Please:\n- Open issues to discuss test suite enhancements\n- Submit PRs for better benchmark coverage validation\n- Suggest additional profiling optimizations\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxz-dev%2Fkernel-autofdo-container","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxz-dev%2Fkernel-autofdo-container","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxz-dev%2Fkernel-autofdo-container/lists"}