Chen,

Volatile is to tell compiler this variable maybe changed by other threads.  
Compiler must access the value from memory instead of the old value in its 
registers.   This is different with spinlock that is to protect shared memory 
between multiple threads.

For this case, CpuState may be updated by BSP/AP. I prefer to keep volatile 
type. Do you meet any issue if keepping this type?

Besides it, I also suggest to add volatile for the following variable.
CpuData->Parameter
CpuData->Procedure

Thanks!
Jeff

-----Original Message-----
From: Chen Fan [mailto:chen.fan.f...@cn.fujitsu.com] 
Sent: Tuesday, March 03, 2015 1:06 PM
To: edk2-devel@lists.sourceforge.net
Cc: Fan, Jeff; Justen, Jordan L
Subject: [v2 4/4] UefiCpuPkg/MpSerivce: remove volatile qualifier

because manipulating CpuState always with lock protection. so volatile 
qualifier is redundant.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.f...@cn.fujitsu.com>
---
 UefiCpuPkg/CpuDxe/CpuMp.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/UefiCpuPkg/CpuDxe/CpuMp.h b/UefiCpuPkg/CpuDxe/CpuMp.h index 
cb3460f..e54b571 100644
--- a/UefiCpuPkg/CpuDxe/CpuMp.h
+++ b/UefiCpuPkg/CpuDxe/CpuMp.h
@@ -92,7 +92,7 @@ typedef struct {
   EFI_PROCESSOR_INFORMATION      Info;
   SPIN_LOCK                      CpuDataLock;
   INTN                           LockSelf;
-  volatile CPU_STATE             State;
+  CPU_STATE                      State;
 
   EFI_AP_PROCEDURE               Procedure;
   VOID                           *Parameter;
--
1.9.3


------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to