Table of Contents
Fetching ...

PortGPT: Towards Automated Backporting Using Large Language Models

Zhaoyang Li, Zheng Yu, Jingyi Song, Meng Xu, Yuxuan Luo, Dongliang Mu

TL;DR

PortGPT introduces an end-to-end LLM-based backporting framework that shadows human expert workflows by equipping an LLM-agent with tools for on-demand code access, Git history analysis, and patch revision via feedback. The two-stage design—Per-Hunk Adaptation and Final Patch Combination—enables precise localization and robust transformation across versions, with a validation chain to verify compilation and security effectiveness. Empirical results show PortGPT achieving 89.15% overall success on large, multi-project datasets and 62.33% on more complex, language-diverse patches, outperforming Fixmorph and TSBPORT. Real-world applicability is demonstrated by patches accepted into the Linux kernel and Ubuntu, highlighting practical impact, generalizability across C/C++/Go, and the value of agentic LLMs in software maintenance tasks.

Abstract

Patch backporting, the process of migrating mainline security patches to older branches, is an essential task in maintaining popular open-source projects (e.g., Linux kernel). However, manual backporting can be labor-intensive, while existing automated methods, which heavily rely on predefined syntax or semantic rules, often lack agility for complex patches. In this paper, we introduce PORTGPT, an LLM-agent for end-to-end automation of patch backporting in real-world scenarios. PORTGPT enhances an LLM with tools to access code on-demand, summarize Git history, and revise patches autonomously based on feedback (e.g., from compilers), hence, simulating human-like reasoning and verification. PORTGPT achieved an 89.15% success rate on existing datasets (1815 cases), and 62.33% on our own dataset of 146 complex cases, both outperforms state-of-the-art of backporting tools. We contributed 9 backported patches from PORTGPT to the Linux kernel community and all patches are now merged.

PortGPT: Towards Automated Backporting Using Large Language Models

TL;DR

PortGPT introduces an end-to-end LLM-based backporting framework that shadows human expert workflows by equipping an LLM-agent with tools for on-demand code access, Git history analysis, and patch revision via feedback. The two-stage design—Per-Hunk Adaptation and Final Patch Combination—enables precise localization and robust transformation across versions, with a validation chain to verify compilation and security effectiveness. Empirical results show PortGPT achieving 89.15% overall success on large, multi-project datasets and 62.33% on more complex, language-diverse patches, outperforming Fixmorph and TSBPORT. Real-world applicability is demonstrated by patches accepted into the Linux kernel and Ubuntu, highlighting practical impact, generalizability across C/C++/Go, and the value of agentic LLMs in software maintenance tasks.

Abstract

Patch backporting, the process of migrating mainline security patches to older branches, is an essential task in maintaining popular open-source projects (e.g., Linux kernel). However, manual backporting can be labor-intensive, while existing automated methods, which heavily rely on predefined syntax or semantic rules, often lack agility for complex patches. In this paper, we introduce PORTGPT, an LLM-agent for end-to-end automation of patch backporting in real-world scenarios. PORTGPT enhances an LLM with tools to access code on-demand, summarize Git history, and revise patches autonomously based on feedback (e.g., from compilers), hence, simulating human-like reasoning and verification. PORTGPT achieved an 89.15% success rate on existing datasets (1815 cases), and 62.33% on our own dataset of 146 complex cases, both outperforms state-of-the-art of backporting tools. We contributed 9 backported patches from PORTGPT to the Linux kernel community and all patches are now merged.
Paper Structure (68 sections, 1 equation, 15 figures, 7 tables, 1 algorithm)

This paper contains 68 sections, 1 equation, 15 figures, 7 tables, 1 algorithm.

Figures (15)

  • Figure 1: Code snippet in $P_n$ with a buffer-overflow
  • Figure 1: Workflow of PortGPT
  • Figure 2: Patch $\Delta P$ to fix the bug in $P_n$ (see \ref{['lst:bg-bug-pn']})
  • Figure 2: Example of Per-Hunk Adaptation. The red arrows represent LLM agent inputs, while the blue represent LLM agent outputs. The green box represents the invocations of LLM, while the blue box represents the outputs of tools.
  • Figure 3: $P_o$ with the same bug shown in \ref{['lst:bg-bug-pn']}.
  • ...and 10 more figures