[edk2-devel][PATCH v2 0/2] Add Volatile Keyword to NvmExpress Passthru CQs

Michael Kubacki mikuback at linux.microsoft.com
Fri May 5 01:51:43 UTC 2023


For the series:

Acked-by: Michael Kubacki <michael.kubacki at microsoft.com>

On 4/27/2023 1:36 PM, Oliver Smith-Denny wrote:
> NVMe CQs are hardware queues mapped to EFI memory.
> In the NVMExpress Passthru implementations in PEI and DXE,
> it has been observed that NVMe CQs are not marked
> volatile, meaning the compiler has significant leeway
> to optimize accesses to these structures.
> 
> This led to an issue where the passthru driver waited
> for a timeout period for an NVMe CQ to mark that it was
> finished with a transaction, but the compiler had
> optimized away the read to the actual HW mapped memory,
> so the transaction had completed but the timeout continued.
> 
> Marking the CQs as volatile fixes this issue as the reads
> happen to the actual HW.
> 
> Personal GitHub PR: https://github.com/tianocore/edk2/pull/4320
> Github branch: https://github.com/os-d/edk2/tree/osde/volatile_cq_v2
> 
> Changes v1 => v2:
> =================
> - Remove volatile keyword from SQ
> 
> Cc: Hao A Wu <hao.a.wu at intel.com>
> Cc: Ray Ni <ray.ni at intel.com>
> Cc: Jian J Wang <jian.j.wang at intel.com>
> Cc: Liming Gao <gaoliming at byosoft.com.cn>
> Cc: Michael Kubacki <mikuback at linux.microsoft.com>
> Cc: Sean Brogan <sean.brogan at microsoft.com>
> 
> 
> Oliver Smith-Denny (2):
>    Add the volatile keyword to NvmExpressDxe's Passthru CQ
>    Add volatile keyword to NvmExpressPei's Passthru CQ
> 
>   MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressPassthru.c    | 6 +++---
>   MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPeiPassThru.c | 6 +++---
>   2 files changed, 6 insertions(+), 6 deletions(-)
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#104068): https://edk2.groups.io/g/devel/message/104068
Mute This Topic: https://groups.io/mt/98541927/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list