Re: git: 82ab4adec955 - main - pf: leave the epoch to purge unlinked rules

From: Gleb Smirnoff <glebius_at_freebsd.org>
Date: Fri, 02 Oct 2026 18:39:57 UTC
On Wed, Sep 30, 2026 at 11:31:23PM +0000, R. Christian McDonald wrote:
R> The branch main has been updated by rcm:
R> 
R> URL: https://cgit.FreeBSD.org/src/commit/?id=82ab4adec95578b196eaf431d6ca87dd209aca6b
R> 
R> commit 82ab4adec95578b196eaf431d6ca87dd209aca6b
R> Author:     R. Christian McDonald <rcm@FreeBSD.org>
R> AuthorDate: 2026-09-30 23:30:54 +0000
R> Commit:     R. Christian McDonald <rcm@FreeBSD.org>
R> CommitDate: 2026-09-30 23:30:54 +0000
R> 
R>     pf: leave the epoch to purge unlinked rules
R>     
R>     pf_purge_thread() calls pf_purge_unlinked_rules() in the network
R>     epoch, where sleeping is not allowed, and it takes pf_config_lock, an
R>     sx lock. If a rule is being added at the time, the purge thread
R>     can sleep on the lock, which panics with INVARIANTS.

I wonder what actually requires the pf_purge_thread() to be in the epoch?

-- 
Gleb Smirnoff