Date: Thu, 07 Mar 2024 15:59:57 +0000 From: bugzilla-noreply@freebsd.org To: fs@FreeBSD.org Subject: [Bug 275594] High CPU usage by arc_prune; analysis and fix Message-ID: <bug-275594-3630-Bkv3YvwgVG@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-275594-3630@https.bugs.freebsd.org/bugzilla/> References: <bug-275594-3630@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D275594 --- Comment #79 from Seigo Tanimura <seigo.tanimura@gmail.com> --- (In reply to mike from comment #76) Until my fix gets merged to the official source, you can keep the fix as a = git branch in your local repository and build the kernel out of it. The example steps to keeping the fix along with the official source: - Local fix branch releng/14.0-topic-openzfs-arc_prune-regulation-fix-local - Official FreeBSD branch releng/14.0 - Remote name of my fix repository a130ft A) Clone the git repository and create the fix branch. Take these steps to set up the git repository. Perform them only once. 1. Clone the FreeBSD source repository. The following steps clone the FreeBSD source repository into ~/freebsd-zfs-fix-localtracking.freebsd-src. gitrepo@silver:~ % mkdir ~/freebsd-zfs-fix-localtracking gitrepo@silver:~ % pushd ~/freebsd-zfs-fix-localtracking ~/freebsd-zfs-fix-localtracking ~ gitrepo@silver:~/freebsd-zfs-fix-localtracking % git clone https://github.com/freebsd/freebsd-src.git Cloning into 'freebsd-src'... (snip) Updating files: 100% (99431/99431), done. gitrepo@silver:~/freebsd-zfs-fix-localtracking % cd freebsd-src gitrepo@silver:~/freebsd-zfs-fix-localtracking/freebsd-src %=20 2. Add the remote repository of my fix and create the local fix branch. The following steps add my fix repository as a remote repository and make t= he local fix branch. Also, the local branch tracking the official FreeBSD bra= nch is created to make the tracking easy. gitrepo@silver:~/freebsd-zfs-fix-localtracking/freebsd-src % git remote add a130ft https://github.com/altimeter-130ft/freebsd-freebsd-src.git gitrepo@silver:~/freebsd-zfs-fix-localtracking/freebsd-src % git fetch a130= ft (snip) >From https://github.com/altimeter-130ft/freebsd-freebsd-src (snip) * [new branch]=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 releng/14.0-topic-openzfs-arc_prune-regulation-fix = -> a130ft/releng/14.0-topic-openzfs-arc_prune-regulation-fix (snip) gitrepo@silver:~/freebsd-zfs-fix-localtracking/freebsd-src % git branch releng/14.0 origin/releng/14.0 branch 'releng/14.0' set up to track 'origin/releng/14.0'. gitrepo@silver:~/freebsd-zfs-fix-localtracking/freebsd-src % git branch releng/14.0-topic-openzfs-arc_prune-regulation-fix-local a130ft/releng/14.0-topic-openzfs-arc_prune-regulation-fix branch 'releng/14.0-topic-openzfs-arc_prune-regulation-fix-local' set up to track 'a130ft/releng/14.0-topic-openzfs-arc_prune-regulation-fix'. gitrepo@silver:~/freebsd-zfs-fix-localtracking/freebsd-src %=20 B) Maintain the fix branch. Perform these steps to update your local fix branch to the official FreeBSD branch after pulling it from the upstream. 3. Rebase the fix branch onto the official FreeBSD branch you want to track. gitrepo@silver:~/freebsd-zfs-fix-localtracking/freebsd-src % git pull releng/14.0 (snip) gitrepo@silver:~/freebsd-zfs-fix-localtracking/freebsd-src % git switch releng/14.0-topic-openzfs-arc_prune-regulation-fix-local Updating files: 100% (13175/13175), done. Switched to branch 'releng/14.0-topic-openzfs-arc_prune-regulation-fix-loca= l' Your branch is up to date with 'a130ft/releng/14.0-topic-openzfs-arc_prune-regulation-fix'. gitrepo@silver:~/freebsd-zfs-fix-localtracking/freebsd-src % git log (Count and check the fix commits.) gitrepo@silver:~/freebsd-zfs-fix-localtracking/freebsd-src % git rebase -i --onto releng/14.0 releng/14.0-topic-openzfs-arc_prune-regulation-fix-local= ~3 releng/14.0-topic-openzfs-arc_prune-regulation-fix-local (Check the rebased commits.) (Resolve the conflicts as required.) gitrepo@silver:~/freebsd-zfs-fix-localtracking/freebsd-src % --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-275594-3630-Bkv3YvwgVG>