diff options
author | Dan Williams <dan.j.williams@intel.com> | 2016-09-30 17:28:58 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2016-10-07 09:20:53 -0700 |
commit | a1f3e4d6a0c322eb3e7fdfcc9facdcdf19130434 (patch) | |
tree | c737905cc17b5dd0f5b6015f1e0a0fcee0301a73 /drivers/nvdimm/nd-core.h | |
parent | 6ff3e912d32ece4e9cf8708da796e9e2e7979ffe (diff) | |
download | op-kernel-dev-a1f3e4d6a0c322eb3e7fdfcc9facdcdf19130434.zip op-kernel-dev-a1f3e4d6a0c322eb3e7fdfcc9facdcdf19130434.tar.gz |
libnvdimm, region: update nd_region_available_dpa() for multi-pmem support
The free dpa (dimm-physical-address) space calculation reports how much
free space is available with consideration for aliased BLK + PMEM
regions. Recall that BLK capacity is allocated from high addresses and
PMEM is allocated from low addresses in their respective regions.
nd_region_available_dpa() accounts for the fact that the largest
encroachment (lowest starting address) into PMEM capacity by a BLK
allocation limits the available capacity to that point, regardless if
there is BLK allocation hole at a higher address. Similarly, for the
multi-pmem case we need to track the largest encroachment (highest
ending address) of a PMEM allocation in BLK capacity regardless of
whether there is an allocation hole that a BLK allocation could fill at
a lower address.
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/nvdimm/nd-core.h')
-rw-r--r-- | drivers/nvdimm/nd-core.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/nvdimm/nd-core.h b/drivers/nvdimm/nd-core.h index fb3ade0..7c2196a1 100644 --- a/drivers/nvdimm/nd-core.h +++ b/drivers/nvdimm/nd-core.h @@ -76,7 +76,7 @@ struct nd_mapping; void nd_mapping_free_labels(struct nd_mapping *nd_mapping); resource_size_t nd_pmem_available_dpa(struct nd_region *nd_region, struct nd_mapping *nd_mapping, resource_size_t *overlap); -resource_size_t nd_blk_available_dpa(struct nd_mapping *nd_mapping); +resource_size_t nd_blk_available_dpa(struct nd_region *nd_region); resource_size_t nd_region_available_dpa(struct nd_region *nd_region); resource_size_t nvdimm_allocated_dpa(struct nvdimm_drvdata *ndd, struct nd_label_id *label_id); |