David Goldblatt
70692cfb13
hpdata: Add state changing helpers.
...
We're about to allow hugepage subextent purging; get as much of our metadata
handling ready as possible.
2021-02-04 20:58:31 -08:00
David Goldblatt
2ae966222f
hpdata: track per-page dirty state.
2021-02-04 20:58:31 -08:00
David Goldblatt
ff4086aa6b
hpdata: count active pages instead of free ones.
...
This will be more consistent with later naming choices.
2021-02-04 20:58:31 -08:00
David Goldblatt
3624dd42ff
hpdata: Add a comment for hpdata_consistent.
2021-02-04 20:58:31 -08:00
David Goldblatt
a559caf74a
hpdata: Strengthen assertions.
...
Now that we have flat bitmap bit counting functions, we can easily assert that
nfree is always correct. While we're tightening up this code, enforce
consistency on API boundaries as well.
2020-12-07 06:21:08 -08:00
David Goldblatt
d9f7e6c668
hpdata: Add a test.
...
We're about to make the functionality here more complicated; testing hpdata
directly (rather than relying on user's tests) will make debugging easier.
2020-12-07 06:21:08 -08:00
David Goldblatt
0971e1e4e3
hpdata: Use addr/size instead of begin/npages.
...
This is easier for the users of the hpdata.
2020-12-07 06:21:08 -08:00
David Goldblatt
5228d869ee
psset: Use fit/insert/remove as basis functions.
...
All other functionality can be implemented in terms of these; doing so (while
retaining the same API) will be convenient for subsequent refactors.
2020-12-07 06:21:08 -08:00
David Goldblatt
089f8fa442
Move hpdata bitmap logic out of the psset.
2020-12-07 06:21:08 -08:00
David Goldblatt
ca30b5db2b
Introduce hpdata_t.
...
Using an edata_t both for hugepages and the allocations within those hugepages
was convenient at first, but has outlived its usefulness. Representing
hugepages explicitly, with their own data structure, will make future
development easier.
2020-12-07 06:21:08 -08:00