nvme-volatile-write-cache · shipping · also NVMe VWC, Volatile Write Cache feature

NVMe volatile write cache

The NVMe Volatile Write Cache feature controls whether a reported volatile write cache is enabled.

Related Observatory article: NVMe volatile write cache on hesela.com

Presence and enable state answer different questions. Base 2.3 reports controller cache presence through Identify Controller VWCP; Get Features 06h with selection 0, 1 or 2 returns the selected WCE value. Get Features selection 0 requests the current value, while 1 and 2 request default and saved values. Selection 3 instead returns supported capabilities: bit 0 means Saveable, not Write Cache Enable. A saved-value request falls back to the default when the feature is not saveable or no saved value exists; a successful read does not prove a saved setting exists. An unsuccessful query is not a disabled-cache reading. [1] [3]

Check the namespace too. Base 2.3 defines VWCNP: when set, no volatile write cache is present for that namespace and the host should disregard controller-level VWCP for that namespace. Section 7.2 explicitly covers this distinction with Flexible Data Placement enabled. [1]

A cache whose contents are guaranteed to reach nonvolatile storage on power loss is classified as nonvolatile for this feature. Consequently, absent VWC does not establish that a device is DRAM-less. These fields describe a protocol contract, not a physical power-cut test. [1] [2]

With a present cache disabled, Base 2.3 requires user data written to a namespace to be persistent. That is not filesystem transaction atomicity. With caching enabled, Flush covers commands completed before its submission for the specified namespaces, not merely earlier submissions. Individual writes may already be persistent. [1]

Relations

related
NVMe, Storage cache flush, Force Unit Access, Power loss protection, Write-back cache, NVMe FDP

Limitations

  • Controller cache presence alone does not describe every namespace or establish end-to-end application durability. [1]

Citations

  1. NVM Express Base 2.3, Figures 196, 199, 328, 335, 408; sections 4.4, 5.2.11.1, 5.2.26.1.4 and 7.2. Copyright 2025 NVM Express, Inc., all rights reserved. (accessed 2026-11-11)
  2. Microsoft: NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE, enable state and protected-cache scope. (accessed 2026-11-11)
  3. nvme-cli v2.11: nvme-get-feature, current/default/saved selection. (accessed 2026-11-11)

Further reading

  1. Hesela: NVM Express, commands, completion and persistence. (accessed 2026-11-11)

JSON: /data/terms/nvme-volatile-write-cache.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. NVMe volatile write cache. Hesela. 2026-11-11. https://hesela.dev/terms/nvme-volatile-write-cache/