Widen uk_pgoff, the slab header offset field.

16 bits is only wide enough for kegs with an item size of up to 64KB.
At that size or larger, slab headers are typically offpage because the
item size is a multiple of the page size, but there is no requirement
that this be the case.

We can widen the field without affecting the layout of struct uma_keg
since the removal of uk_slabsize in r315077 left an adjacent hole.

PR:		218911
MFC after:	2 weeks
This commit is contained in:
Mark Johnston 2017-09-13 21:54:37 +00:00
parent e82e50e681
commit 2d54d4bb9f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=323564

View File

@ -210,7 +210,7 @@ struct uma_keg {
vm_offset_t uk_kva; /* Zone base KVA */
uma_zone_t uk_slabzone; /* Slab zone backing us, if OFFPAGE */
uint16_t uk_pgoff; /* Offset to uma_slab struct */
uint32_t uk_pgoff; /* Offset to uma_slab struct */
uint16_t uk_ppera; /* pages per allocation from backend */
uint16_t uk_ipers; /* Items per slab */
uint32_t uk_flags; /* Internal flags */