You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Feature] Add an extensible NVMe namespace information API #34
PR #33 adds namespace-capacity querying for LMCache initialization. A follow-up API should expose the distinct NVMe namespace size, capacity, utilization, and LBA size while preserving room for future ABI-compatible extension.
The caller sets struct_size to sizeof(uGDSNamespaceInfo_t).
The library must not write beyond the caller-provided struct_size.
New fields may only consume reserved space or be appended to the structure.
Existing field offsets, types, and semantics must not change.
An older caller used with a newer library must not receive an out-of-bounds write.
A newer caller used with an older library should zero-initialize the structure so unsupported fields remain zero.
Semantics
size_bytes is NSZE × lba_size and represents the legal byte-address range.
capacity_bytes is NCAP × lba_size and represents the maximum allocatable namespace capacity.
utilization_bytes is NUSE × lba_size.
NSZE, NCAP, and LBA size may use the Identify Namespace data cached during handle registration.
NUSE is dynamic. uGDSGetNamespaceInfo() should issue a fresh Identify Namespace command and serialize access to the shared Admin Queue instead of returning the registration-time snapshot.
Testing
Verify NSZE, NCAP, NUSE, and LBA-to-byte conversion with deterministic unit tests.
Cover zero values and multiplication overflow.
Cover callers using smaller and larger struct_size values.
Add a concurrent namespace-query/handle-deregister test.
Include a synthetic thin-provisioning case where NSZE > NCAP.
Activity