Searched hist:c4fd5af3 (Results 1 – 1 of 1) sorted by relevance
/dragonfly/sys/vfs/hammer2/ |
H A D | hammer2_freemap.c | diff 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.
|