Page MenuHomeFreeBSD

uma: Check the full bucket cache before short-circuiting.
ClosedPublic

Authored by markj on Aug 6 2020, 7:01 PM.
Tags
None
Referenced Files
F168164986: D25980.id75518.diff
Wed, Aug 26, 4:29 PM
F168133963: D25980.id75518.diff
Wed, Aug 26, 1:04 PM
Unknown Object (File)
Tue, Aug 25, 12:04 PM
Unknown Object (File)
Tue, Aug 25, 9:40 AM
Unknown Object (File)
Mon, Aug 24, 7:23 AM
Unknown Object (File)
Sun, Aug 23, 9:38 PM
Unknown Object (File)
Sun, Aug 23, 9:28 AM
Unknown Object (File)
Wed, Aug 19, 6:27 AM
Subscribers

Details

Summary

The global bucketdisable flag indicates that we are in a low-memory
situation and should avoid allocating buckets. However, in the
allocation path we were checking it before the full bucket cache. Defer
the check so that we have a shot at allocating from the cache.

This came up because allocations from buf_trie_zone must always succeed.
In one scenario, all of the preallocated trie nodes were in the bucket
list, and a new slab allocation could not succeed due to a memory
shortage. The short-circuiting caused an allocation failure which
triggered a panic.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable