SlideShare a Scribd company logo
1 of 17
Download to read offline
How toHow to maintainmaintain your kernelyour kernel
patchespatches out of the mainlineout of the mainline
tree?tree?
● v3.12.16
● v3.12.17
● v3.12.18
Basic structure of the Linux stable repoBasic structure of the Linux stable repo
tags
● v3.12.16
● v3.12.17
● v3.12.18
BranchingBranching
● master
● 3.12.17
● 3.12.18
tags branches
● v3.12.16
● v3.12.17
● v3.12.18
BranchingBranching
normal patching approachnormal patching approach
● master
● 3.12.17
● 3.12.18
● oom-lockup-fix
● ptty-exploit-fix
● cpuinfo-v2
tags branches
My Approach in 11 easy stepsMy Approach in 11 easy steps
● v3.12.16
● v3.12.17
● v3.12.18
Introduce a BASE branchIntroduce a BASE branch
● master
● 3.12.17
● 3.12.18
● oom-lockup-fix
● ptty-exploit-fix
● cpuinfo-v2
● 3.12.18-base
tags branches
Step 1Step 1
● v3.12.16
● v3.12.17
● v3.12.18
● master
● 3.12.17
● 3.12.18
● oom-lockup-fix
● ptty-exploit-fix
● cpuinfo-v2
● 3.12.18-base
Move all your branches to the BASE branchMove all your branches to the BASE branch
tags branches
Step 2Step 2
● v3.12.16
● v3.12.17
● v3.12.18
● master
● 3.12.17
● 3.12.18
● oom-lockup-fix
● ptty-exploit-fix
● cpuinfo-v2
● 3.12.18-base
● 3.12.18-cloud0
Create a MERGE / VERSION branchCreate a MERGE / VERSION branch
tags branches
Step 3Step 3
● v3.12.16
● v3.12.17
● v3.12.18
● master
● 3.12.17
● 3.12.18
● oom-lockup-fix
● ptty-exploit-fix
● cpuinfo-v2
● 3.12.18-base
● 3.12.18-cloud0
● prep-cpuinfo-v2
● prep-ptty-exploit-fix
● prep-oom-lockup-fix
Prepare your branches to be mergedPrepare your branches to be merged
tags branches
Step 4Step 4
● v3.12.16
● v3.12.17
● v3.12.18
● master
● 3.12.17
● 3.12.18
● oom-lockup-fix
● ptty-exploit-fix
● cpuinfo-v2
● 3.12.18-base
● 3.12.18-cloud0
● prep-cpuinfo-v2
● prep-ptty-exploit-fix
● prep-oom-lockup-fix
Merge all your branches into the merge/version branchMerge all your branches into the merge/version branch
tags branches
Step 5Step 5
● v3.12.16
● v3.12.17
● v3.12.18
● master
● 3.12.17
● 3.12.18
● oom-lockup-fix
● ptty-exploit-fix
● cpuinfo-v2
● 3.12.18-base
● 3.12.18-cloud0
Remove the prep-* branchesRemove the prep-* branches
tags branches
Step 6Step 6
● v3.12.16
● v3.12.17
● v3.12.18
● master
● 3.12.17
● 3.12.18
● oom-lockup-fix
● ptty-exploit-fix
● cpuinfo-v2
● 3.12.18-base
● 3.12.18-cloud0
● 3.12.19● v3.12.19
A new version tag is introducedA new version tag is introduced
tags branches
Step 7Step 7
● v3.12.16
● v3.12.17
● v3.12.18
● master
● 3.12.17
● 3.12.18
● oom-lockup-fix
● ptty-exploit-fix
● cpuinfo-v2
● 3.12.18-base
● 3.12.18-cloud0
● 3.12.19● v3.12.19
Create a new BASE branchCreate a new BASE branch
● 3.12.19-base
tags branches
Step 8Step 8
● v3.12.16
● v3.12.17
● v3.12.18
● master
● 3.12.17
● 3.12.18
● oom-lockup-fix
● ptty-exploit-fix
● cpuinfo-v2
● 3.12.18-base
● 3.12.18-cloud0
● 3.12.19● v3.12.19
Rebase all branches onto the new BASE branchRebase all branches onto the new BASE branch
● 3.12.19-base
tags branches
Step 9Step 9
● v3.12.16
● v3.12.17
● v3.12.18
● master
● 3.12.17
● 3.12.18
● oom-lockup-fix
● ptty-exploit-fix
● cpuinfo-v2
● 3.12.18-base
● 3.12.18-cloud0
● 3.12.19● v3.12.19
Create a new MERGE / VERSION branchCreate a new MERGE / VERSION branch
● 3.12.19-base
● 3.12.19-cloud0
tags branches
Step 10Step 10
● v3.12.16
● v3.12.17
● v3.12.18
● master
● 3.12.17
● 3.12.18
● oom-lockup-fix
● ptty-exploit-fix
● cpuinfo-v2
● 3.12.18-base
● 3.12.18-cloud0
● 3.12.19● v3.12.19
Create a new MERGE / VERSION branchCreate a new MERGE / VERSION branch
● 3.12.19-base
● 3.12.19-cloud0
tags branches
Step 11Step 11
GOTO Step 4GOTO Step 4
● prep-cpuinfo-v2
● prep-ptty-exploit-fix
● prep-oom-lockup-fix
Thank you...Thank you...
Marian HackMan MarinovMarian HackMan Marinov
mm@1h.commm@1h.com

More Related Content

Similar to Maintaining Linux kernel patches away from upstream

Similar to Maintaining Linux kernel patches away from upstream (20)

git-flow R3Labs
git-flow R3Labsgit-flow R3Labs
git-flow R3Labs
 
Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!
 
Migrate your EOL MySQL servers to HA Complaint GR Cluster / InnoDB Cluster Wi...
Migrate your EOL MySQL servers to HA Complaint GR Cluster / InnoDB Cluster Wi...Migrate your EOL MySQL servers to HA Complaint GR Cluster / InnoDB Cluster Wi...
Migrate your EOL MySQL servers to HA Complaint GR Cluster / InnoDB Cluster Wi...
 
Git and git workflow best practice
Git and git workflow best practiceGit and git workflow best practice
Git and git workflow best practice
 
2019 January - The Month in PHP
2019 January - The Month in PHP2019 January - The Month in PHP
2019 January - The Month in PHP
 
LAS16-101: Efficient kernel backporting
LAS16-101: Efficient kernel backportingLAS16-101: Efficient kernel backporting
LAS16-101: Efficient kernel backporting
 
JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개
 
Nginx维护手册
Nginx维护手册Nginx维护手册
Nginx维护手册
 
Upgrade to MySQL 5.6 without downtime
Upgrade to MySQL 5.6 without downtimeUpgrade to MySQL 5.6 without downtime
Upgrade to MySQL 5.6 without downtime
 
x86_64 Hardware Deep dive
x86_64 Hardware Deep divex86_64 Hardware Deep dive
x86_64 Hardware Deep dive
 
Trunk based development for Beginners
Trunk based development for BeginnersTrunk based development for Beginners
Trunk based development for Beginners
 
Nagios Conference 2011 - Mike Weber - Training: Reducing Nagios Server Load ...
Nagios Conference 2011 - Mike Weber - Training:  Reducing Nagios Server Load ...Nagios Conference 2011 - Mike Weber - Training:  Reducing Nagios Server Load ...
Nagios Conference 2011 - Mike Weber - Training: Reducing Nagios Server Load ...
 
MySQL/MariaDB Parallel Replication: inventory, use-case and limitations
MySQL/MariaDB Parallel Replication: inventory, use-case and limitationsMySQL/MariaDB Parallel Replication: inventory, use-case and limitations
MySQL/MariaDB Parallel Replication: inventory, use-case and limitations
 
How to Really Get Git
How to Really Get GitHow to Really Get Git
How to Really Get Git
 
Git Introduction with illustrations
Git Introduction with illustrationsGit Introduction with illustrations
Git Introduction with illustrations
 
NIH package manager for pkgsrc
NIH package manager for pkgsrcNIH package manager for pkgsrc
NIH package manager for pkgsrc
 
PL22 - Backup and Restore Performance.pptx
PL22 - Backup and Restore Performance.pptxPL22 - Backup and Restore Performance.pptx
PL22 - Backup and Restore Performance.pptx
 
Gdb basics for my sql db as (openfest 2017) final
Gdb basics for my sql db as (openfest 2017) finalGdb basics for my sql db as (openfest 2017) final
Gdb basics for my sql db as (openfest 2017) final
 
Gdb basics for my sql db as (percona live europe 2019)
Gdb basics for my sql db as (percona live europe 2019)Gdb basics for my sql db as (percona live europe 2019)
Gdb basics for my sql db as (percona live europe 2019)
 
Ceph Day Melbourne - Troubleshooting Ceph
Ceph Day Melbourne - Troubleshooting Ceph Ceph Day Melbourne - Troubleshooting Ceph
Ceph Day Melbourne - Troubleshooting Ceph
 

More from Marian Marinov

More from Marian Marinov (20)

How to implement PassKeys in your application
How to implement PassKeys in your applicationHow to implement PassKeys in your application
How to implement PassKeys in your application
 
Dev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & LoggingDev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & Logging
 
Basic presentation of cryptography mechanisms
Basic presentation of cryptography mechanismsBasic presentation of cryptography mechanisms
Basic presentation of cryptography mechanisms
 
Microservices: Benefits, drawbacks and are they for me?
Microservices: Benefits, drawbacks and are they for me?Microservices: Benefits, drawbacks and are they for me?
Microservices: Benefits, drawbacks and are they for me?
 
Introduction and replication to DragonflyDB
Introduction and replication to DragonflyDBIntroduction and replication to DragonflyDB
Introduction and replication to DragonflyDB
 
Message Queuing - Gearman, Mosquitto, Kafka and RabbitMQ
Message Queuing - Gearman, Mosquitto, Kafka and RabbitMQMessage Queuing - Gearman, Mosquitto, Kafka and RabbitMQ
Message Queuing - Gearman, Mosquitto, Kafka and RabbitMQ
 
How to successfully migrate to DevOps .pdf
How to successfully migrate to DevOps .pdfHow to successfully migrate to DevOps .pdf
How to successfully migrate to DevOps .pdf
 
How to survive in the work from home era
How to survive in the work from home eraHow to survive in the work from home era
How to survive in the work from home era
 
Managing sysadmins
Managing sysadminsManaging sysadmins
Managing sysadmins
 
Improve your storage with bcachefs
Improve your storage with bcachefsImprove your storage with bcachefs
Improve your storage with bcachefs
 
Control your service resources with systemd
 Control your service resources with systemd  Control your service resources with systemd
Control your service resources with systemd
 
Comparison of-foss-distributed-storage
Comparison of-foss-distributed-storageComparison of-foss-distributed-storage
Comparison of-foss-distributed-storage
 
Защо и как да обогатяваме знанията си?
Защо и как да обогатяваме знанията си?Защо и как да обогатяваме знанията си?
Защо и как да обогатяваме знанията си?
 
Securing your MySQL server
Securing your MySQL serverSecuring your MySQL server
Securing your MySQL server
 
Sysadmin vs. dev ops
Sysadmin vs. dev opsSysadmin vs. dev ops
Sysadmin vs. dev ops
 
DoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKDoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDK
 
Challenges with high density networks
Challenges with high density networksChallenges with high density networks
Challenges with high density networks
 
SiteGround building automation
SiteGround building automationSiteGround building automation
SiteGround building automation
 
Preventing cpu side channel attacks with kernel tracking
Preventing cpu side channel attacks with kernel trackingPreventing cpu side channel attacks with kernel tracking
Preventing cpu side channel attacks with kernel tracking
 
Managing a lot of servers
Managing a lot of serversManaging a lot of servers
Managing a lot of servers
 

Recently uploaded

Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 

Recently uploaded (20)

How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 

Maintaining Linux kernel patches away from upstream

  • 1. How toHow to maintainmaintain your kernelyour kernel patchespatches out of the mainlineout of the mainline tree?tree?
  • 2. ● v3.12.16 ● v3.12.17 ● v3.12.18 Basic structure of the Linux stable repoBasic structure of the Linux stable repo tags
  • 3. ● v3.12.16 ● v3.12.17 ● v3.12.18 BranchingBranching ● master ● 3.12.17 ● 3.12.18 tags branches
  • 4. ● v3.12.16 ● v3.12.17 ● v3.12.18 BranchingBranching normal patching approachnormal patching approach ● master ● 3.12.17 ● 3.12.18 ● oom-lockup-fix ● ptty-exploit-fix ● cpuinfo-v2 tags branches
  • 5. My Approach in 11 easy stepsMy Approach in 11 easy steps
  • 6. ● v3.12.16 ● v3.12.17 ● v3.12.18 Introduce a BASE branchIntroduce a BASE branch ● master ● 3.12.17 ● 3.12.18 ● oom-lockup-fix ● ptty-exploit-fix ● cpuinfo-v2 ● 3.12.18-base tags branches Step 1Step 1
  • 7. ● v3.12.16 ● v3.12.17 ● v3.12.18 ● master ● 3.12.17 ● 3.12.18 ● oom-lockup-fix ● ptty-exploit-fix ● cpuinfo-v2 ● 3.12.18-base Move all your branches to the BASE branchMove all your branches to the BASE branch tags branches Step 2Step 2
  • 8. ● v3.12.16 ● v3.12.17 ● v3.12.18 ● master ● 3.12.17 ● 3.12.18 ● oom-lockup-fix ● ptty-exploit-fix ● cpuinfo-v2 ● 3.12.18-base ● 3.12.18-cloud0 Create a MERGE / VERSION branchCreate a MERGE / VERSION branch tags branches Step 3Step 3
  • 9. ● v3.12.16 ● v3.12.17 ● v3.12.18 ● master ● 3.12.17 ● 3.12.18 ● oom-lockup-fix ● ptty-exploit-fix ● cpuinfo-v2 ● 3.12.18-base ● 3.12.18-cloud0 ● prep-cpuinfo-v2 ● prep-ptty-exploit-fix ● prep-oom-lockup-fix Prepare your branches to be mergedPrepare your branches to be merged tags branches Step 4Step 4
  • 10. ● v3.12.16 ● v3.12.17 ● v3.12.18 ● master ● 3.12.17 ● 3.12.18 ● oom-lockup-fix ● ptty-exploit-fix ● cpuinfo-v2 ● 3.12.18-base ● 3.12.18-cloud0 ● prep-cpuinfo-v2 ● prep-ptty-exploit-fix ● prep-oom-lockup-fix Merge all your branches into the merge/version branchMerge all your branches into the merge/version branch tags branches Step 5Step 5
  • 11. ● v3.12.16 ● v3.12.17 ● v3.12.18 ● master ● 3.12.17 ● 3.12.18 ● oom-lockup-fix ● ptty-exploit-fix ● cpuinfo-v2 ● 3.12.18-base ● 3.12.18-cloud0 Remove the prep-* branchesRemove the prep-* branches tags branches Step 6Step 6
  • 12. ● v3.12.16 ● v3.12.17 ● v3.12.18 ● master ● 3.12.17 ● 3.12.18 ● oom-lockup-fix ● ptty-exploit-fix ● cpuinfo-v2 ● 3.12.18-base ● 3.12.18-cloud0 ● 3.12.19● v3.12.19 A new version tag is introducedA new version tag is introduced tags branches Step 7Step 7
  • 13. ● v3.12.16 ● v3.12.17 ● v3.12.18 ● master ● 3.12.17 ● 3.12.18 ● oom-lockup-fix ● ptty-exploit-fix ● cpuinfo-v2 ● 3.12.18-base ● 3.12.18-cloud0 ● 3.12.19● v3.12.19 Create a new BASE branchCreate a new BASE branch ● 3.12.19-base tags branches Step 8Step 8
  • 14. ● v3.12.16 ● v3.12.17 ● v3.12.18 ● master ● 3.12.17 ● 3.12.18 ● oom-lockup-fix ● ptty-exploit-fix ● cpuinfo-v2 ● 3.12.18-base ● 3.12.18-cloud0 ● 3.12.19● v3.12.19 Rebase all branches onto the new BASE branchRebase all branches onto the new BASE branch ● 3.12.19-base tags branches Step 9Step 9
  • 15. ● v3.12.16 ● v3.12.17 ● v3.12.18 ● master ● 3.12.17 ● 3.12.18 ● oom-lockup-fix ● ptty-exploit-fix ● cpuinfo-v2 ● 3.12.18-base ● 3.12.18-cloud0 ● 3.12.19● v3.12.19 Create a new MERGE / VERSION branchCreate a new MERGE / VERSION branch ● 3.12.19-base ● 3.12.19-cloud0 tags branches Step 10Step 10
  • 16. ● v3.12.16 ● v3.12.17 ● v3.12.18 ● master ● 3.12.17 ● 3.12.18 ● oom-lockup-fix ● ptty-exploit-fix ● cpuinfo-v2 ● 3.12.18-base ● 3.12.18-cloud0 ● 3.12.19● v3.12.19 Create a new MERGE / VERSION branchCreate a new MERGE / VERSION branch ● 3.12.19-base ● 3.12.19-cloud0 tags branches Step 11Step 11 GOTO Step 4GOTO Step 4 ● prep-cpuinfo-v2 ● prep-ptty-exploit-fix ● prep-oom-lockup-fix
  • 17. Thank you...Thank you... Marian HackMan MarinovMarian HackMan Marinov mm@1h.commm@1h.com