Skip site navigation (1)Skip section navigation (2)
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>