Following vm_lowmem event handler for dirhash

Nick Barkas snb at
Sat Jun 20 16:13:31 UTC 2009

On Fri, Jun 19, 2009 at 09:46:40AM +0200, Kamigishi Rei wrote:
> Hello, hope you're having a nice day,
> Following 
>  > It adds a vm_lowmem event handler to the dirhash code in UFS2
>  > so that dirhashes will be deleted when the system is low on memory.
>  From what I gather, this patch is in -CURRENT now; I've updated to 
> -CURRENT 3 days ago (after using a snapshot from May) and my previously 
> stable system threw a kernel panic yesterday. Panic happened during a 
> benchmark on my ZFS pool (bonnie++ -s 32768) supposedly because of that 
> exact patch (because ZFS is known to eat a lot of kmem and vm_lowmem was 
> probably triggered). Alas, I don't have a dump available (because my 
> system boots from a geom mirror and the swap space is there as well), so 
> I only have the panic message: "dirhash: NULL hash on list".

You probably don't have the latest changes made to dirhash, which I
committed in r194387 on the 17th of June. That fixed some problems
introduced in my first commit with the vm_lowmem handler for dirhash a
couple of weeks ago. Until this latest commit, it is possible that
ufsdirhash_destroy(), which is where your "dirhash: NULL hash on list"
message comes from, might be trying to destroy an already deleted
dirhash. Please try updating your sources and build a new kernel to see
if this problem comes up again. 


> My system is a Core2 Duo on a Q35 motherboard, using 2GB RAM and 4x 
> 500GB drives, of which 2 are in a GEOM_MIRROR and the other 2 are in a 
> zpool.
> fujibayashi at ameagari ~ % uname -a
> FreeBSD 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Tue 
> Jun 16 21:50:53 JST 2009     
> root at  amd64
> (Last line in /usr/src/UPDATING states "20090613".)
> --
> Kamigishi Rei
> Systems Administrator
> _______________________________________________
> freebsd-current at mailing list
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at"

More information about the freebsd-current mailing list