Home
last modified time | relevance | path

Searched hist:c4fd5af3 (Results 1 – 1 of 1) sorted by relevance

/dragonfly/sys/vfs/hammer2/
H A Dhammer2_freemap.cdiff c4fd5af3 Thu Aug 12 22:52:25 GMT 2021 Matthew Dillon <dillon@apollo.backplane.com> hammer2 - Only clear the bigmask hint in relaxed mode freemap scans

* When allocating blocks, the bigmask hint allows the allocator to
skip sub-trees that are known to be fully allocated. The bit for
the appropriate radix (block size being allocated) is cleared when
a full scan reveals no available blocks in the sub-tree.

* When the filesystem starts to fill up, there might not be any blocks
in class-assigned sub-trees, but there could be blocks in the sub-trees
for other classes. Normally the allocator first tries to find a block
in a matching class, and if that fails it tries to find a block in an
unrelated class using a 'relaxed' freemap search.

The bug is that the bigmask hint was being cleared for non-relaxed
searches that failed, causing the later relaxed search to also fail
even though blocks might be allocatable.

* Fixed by only clearing the bit when a full relaxed scan determines
that no blocks are available.