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

Wu, Hao A hao.a.wu at intel.com
Thu May 4 02:19:43 UTC 2023


For the series:
Reviewed-by: Hao A Wu <hao.a.wu at intel.com>

Will wait a couple of days before merging to see if comments from other reviewers.

Best Regards,
Hao Wu

> -----Original Message-----
> From: devel at edk2.groups.io <devel at edk2.groups.io> On Behalf Of Oliver
> Smith-Denny
> Sent: Friday, April 28, 2023 1:36 AM
> To: devel at edk2.groups.io
> Cc: Wu, Hao A <hao.a.wu at intel.com>; Ni, Ray <ray.ni at intel.com>; Wang, Jian
> J <jian.j.wang at intel.com>; Gao, Liming <gaoliming at byosoft.com.cn>; Michael
> Kubacki <mikuback at linux.microsoft.com>; Sean Brogan
> <sean.brogan at microsoft.com>
> Subject: [edk2-devel][PATCH v2 0/2] Add Volatile Keyword to NvmExpress
> Passthru CQs
> 
> 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(-)
> 
> --
> 2.40.0
> 
> 
> 
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
> View/Reply Online (#103725): https://edk2.groups.io/g/devel/message/103725
> Mute This Topic: https://groups.io/mt/98541927/1768737
> Group Owner: devel+owner at edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub [hao.a.wu at intel.com]
> -=-=-=-=-=-=
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#103933): https://edk2.groups.io/g/devel/message/103933
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