hw/cxl: fix DC extent capacity tracking
Per cxl r3.2 Section 9.13.3.3, extent capacity tracking should include extents in different states including added, pending, etc. Before the change, for the in-device extent number tracking purpose, we only have "total_extent_count" defined, which only tracks the number of extents accepted. However, we need to track number of extents in other states also, for now it is extents pending-to-add. To fix that, we introduce a new counter for dynamic capacity "nr_extents_accepted" which explicitly tracks number of the extents accepted by the hosts, and fix "total_extent_count" to include both accepted and pending extents counting. Signed-off-by: Fan Ni <fan.ni@samsung.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Message-Id: <20250714174509.1984430-2-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
98f030e7c9
commit
fe63feb7e8
3 changed files with 21 additions and 9 deletions
|
|
@ -618,6 +618,7 @@ struct CXLType3Dev {
|
|||
CXLDCExtentList extents;
|
||||
CXLDCExtentGroupList extents_pending;
|
||||
uint32_t total_extent_count;
|
||||
uint32_t nr_extents_accepted;
|
||||
uint32_t ext_list_gen_seq;
|
||||
|
||||
uint8_t num_regions; /* 0-8 regions */
|
||||
|
|
@ -696,7 +697,7 @@ CXLDCExtentGroup *cxl_insert_extent_to_extent_group(CXLDCExtentGroup *group,
|
|||
uint16_t shared_seq);
|
||||
void cxl_extent_group_list_insert_tail(CXLDCExtentGroupList *list,
|
||||
CXLDCExtentGroup *group);
|
||||
void cxl_extent_group_list_delete_front(CXLDCExtentGroupList *list);
|
||||
uint32_t cxl_extent_group_list_delete_front(CXLDCExtentGroupList *list);
|
||||
void ct3_set_region_block_backed(CXLType3Dev *ct3d, uint64_t dpa,
|
||||
uint64_t len);
|
||||
void ct3_clear_region_block_backed(CXLType3Dev *ct3d, uint64_t dpa,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue