public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH v2 1/1] MdeModulePkg/PiSmmCore: Drop deprecated image profiling commands
@ 2021-08-09  6:09 Marvin Häuser
  2021-08-10  2:45 ` [edk2-devel] " Ni, Ray
  0 siblings, 1 reply; 2+ messages in thread
From: Marvin Häuser @ 2021-08-09  6:09 UTC (permalink / raw)
  To: devel; +Cc: Jian J Wang, Hao A Wu, Eric Dong, Ray Ni, Vitaly Cheptsov

The legacy codebase allowed SMM images to be registered for profiling
from DXE. Support for this has been dropped entirely, so remove the
remaining handlers.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Vitaly Cheptsov <vit9696@protonmail.com>
Signed-off-by: Marvin Häuser <mhaeuser@posteo.de>
---
 MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c | 89 ++------------------
 MdeModulePkg/Include/Guid/MemoryProfile.h        |  6 +-
 2 files changed, 12 insertions(+), 83 deletions(-)

diff --git a/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c b/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c
index 1b302c810cc9..9d6e3bf27aca 100644
--- a/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c
+++ b/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c
@@ -2232,64 +2232,6 @@ Done:
   mSmramProfileGettingStatus = SmramProfileGettingStatus;
 }
 
-/**
-  SMRAM profile handler to register SMM image.
-
-  @param SmramProfileParameterRegisterImage The parameter of SMM profile register image.
-
-**/
-VOID
-SmramProfileHandlerRegisterImage (
-  IN SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE *SmramProfileParameterRegisterImage
-  )
-{
-  EFI_STATUS                        Status;
-  EFI_SMM_DRIVER_ENTRY              DriverEntry;
-  VOID                              *EntryPointInImage;
-
-  ZeroMem (&DriverEntry, sizeof (DriverEntry));
-  CopyMem (&DriverEntry.FileName, &SmramProfileParameterRegisterImage->FileName, sizeof(EFI_GUID));
-  DriverEntry.ImageBuffer = SmramProfileParameterRegisterImage->ImageBuffer;
-  DriverEntry.NumberOfPage = (UINTN) SmramProfileParameterRegisterImage->NumberOfPage;
-  Status = InternalPeCoffGetEntryPoint ((VOID *) (UINTN) DriverEntry.ImageBuffer, &EntryPointInImage);
-  ASSERT_EFI_ERROR (Status);
-  DriverEntry.ImageEntryPoint = (PHYSICAL_ADDRESS) (UINTN) EntryPointInImage;
-
-  Status = RegisterSmramProfileImage (&DriverEntry, FALSE);
-  if (!EFI_ERROR (Status)) {
-    SmramProfileParameterRegisterImage->Header.ReturnStatus = 0;
-  }
-}
-
-/**
-  SMRAM profile handler to unregister SMM image.
-
-  @param SmramProfileParameterUnregisterImage The parameter of SMM profile unregister image.
-
-**/
-VOID
-SmramProfileHandlerUnregisterImage (
-  IN SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE *SmramProfileParameterUnregisterImage
-  )
-{
-  EFI_STATUS                        Status;
-  EFI_SMM_DRIVER_ENTRY              DriverEntry;
-  VOID                              *EntryPointInImage;
-
-  ZeroMem (&DriverEntry, sizeof (DriverEntry));
-  CopyMem (&DriverEntry.FileName, &SmramProfileParameterUnregisterImage->FileName, sizeof (EFI_GUID));
-  DriverEntry.ImageBuffer = SmramProfileParameterUnregisterImage->ImageBuffer;
-  DriverEntry.NumberOfPage = (UINTN) SmramProfileParameterUnregisterImage->NumberOfPage;
-  Status = InternalPeCoffGetEntryPoint ((VOID *) (UINTN) DriverEntry.ImageBuffer, &EntryPointInImage);
-  ASSERT_EFI_ERROR (Status);
-  DriverEntry.ImageEntryPoint = (PHYSICAL_ADDRESS) (UINTN) EntryPointInImage;
-
-  Status = UnregisterSmramProfileImage (&DriverEntry, FALSE);
-  if (!EFI_ERROR (Status)) {
-    SmramProfileParameterUnregisterImage->Header.ReturnStatus = 0;
-  }
-}
-
 /**
   Dispatch function for a Software SMI handler.
 
@@ -2374,28 +2316,6 @@ SmramProfileHandler (
     }
     SmramProfileHandlerGetDataByOffset ((SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA_BY_OFFSET *) (UINTN) CommBuffer);
     break;
-  case SMRAM_PROFILE_COMMAND_REGISTER_IMAGE:
-    DEBUG ((EFI_D_ERROR, "SmramProfileHandlerRegisterImage\n"));
-    if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE)) {
-      DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n"));
-      return EFI_SUCCESS;
-    }
-    if (mSmramReadyToLock) {
-      return EFI_SUCCESS;
-    }
-    SmramProfileHandlerRegisterImage ((SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE *) (UINTN) CommBuffer);
-    break;
-  case SMRAM_PROFILE_COMMAND_UNREGISTER_IMAGE:
-    DEBUG ((EFI_D_ERROR, "SmramProfileHandlerUnregisterImage\n"));
-    if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE)) {
-      DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n"));
-      return EFI_SUCCESS;
-    }
-    if (mSmramReadyToLock) {
-      return EFI_SUCCESS;
-    }
-    SmramProfileHandlerUnregisterImage ((SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE *) (UINTN) CommBuffer);
-    break;
   case SMRAM_PROFILE_COMMAND_GET_RECORDING_STATE:
     DEBUG ((EFI_D_ERROR, "SmramProfileHandlerGetRecordingState\n"));
     if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_RECORDING_STATE)) {
@@ -2417,6 +2337,15 @@ SmramProfileHandler (
     ParameterRecordingState->Header.ReturnStatus = 0;
     break;
 
+  //
+  // Below 2 commands have been deprecated. They may not be (re-)used.
+  //
+  case SMRAM_PROFILE_COMMAND_DEPRECATED1:
+  case SMRAM_PROFILE_COMMAND_DEPRECATED2:
+    ASSERT (FALSE);
+    //
+    // Fall-through to the default (unrecognized command) case.
+    //
   default:
     break;
   }
diff --git a/MdeModulePkg/Include/Guid/MemoryProfile.h b/MdeModulePkg/Include/Guid/MemoryProfile.h
index eee3b9125240..7565e68b5c33 100644
--- a/MdeModulePkg/Include/Guid/MemoryProfile.h
+++ b/MdeModulePkg/Include/Guid/MemoryProfile.h
@@ -389,10 +389,10 @@ struct _EDKII_MEMORY_PROFILE_PROTOCOL {
 #define SMRAM_PROFILE_COMMAND_GET_PROFILE_INFO           0x1
 #define SMRAM_PROFILE_COMMAND_GET_PROFILE_DATA           0x2
 //
-// Below 2 commands are now used by ECP only and only valid before SmmReadyToLock
+// Below 2 commands have been deprecated. They may not be re-used.
 //
-#define SMRAM_PROFILE_COMMAND_REGISTER_IMAGE             0x3
-#define SMRAM_PROFILE_COMMAND_UNREGISTER_IMAGE           0x4
+#define SMRAM_PROFILE_COMMAND_DEPRECATED1                0x3
+#define SMRAM_PROFILE_COMMAND_DEPRECATED2                0x4
 
 #define SMRAM_PROFILE_COMMAND_GET_PROFILE_DATA_BY_OFFSET 0x5
 #define SMRAM_PROFILE_COMMAND_GET_RECORDING_STATE        0x6
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [edk2-devel] [PATCH v2 1/1] MdeModulePkg/PiSmmCore: Drop deprecated image profiling commands
  2021-08-09  6:09 [PATCH v2 1/1] MdeModulePkg/PiSmmCore: Drop deprecated image profiling commands Marvin Häuser
@ 2021-08-10  2:45 ` Ni, Ray
  0 siblings, 0 replies; 2+ messages in thread
From: Ni, Ray @ 2021-08-10  2:45 UTC (permalink / raw)
  To: devel@edk2.groups.io, mhaeuser@posteo.de
  Cc: Wang, Jian J, Wu, Hao A, Dong, Eric, Vitaly Cheptsov

Thank you very much!!

Reviewed-by: Ray Ni <ray.ni@intel.com>

I will merge your patches after stable tag release.

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Marvin Häuser
> Sent: Monday, August 9, 2021 2:09 PM
> To: devel@edk2.groups.io
> Cc: Wang, Jian J <jian.j.wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>; Dong, Eric <eric.dong@intel.com>; Ni, Ray
> <ray.ni@intel.com>; Vitaly Cheptsov <vit9696@protonmail.com>
> Subject: [edk2-devel] [PATCH v2 1/1] MdeModulePkg/PiSmmCore: Drop deprecated image profiling commands
> 
> The legacy codebase allowed SMM images to be registered for profiling
> from DXE. Support for this has been dropped entirely, so remove the
> remaining handlers.
> 
> Cc: Jian J Wang <jian.j.wang@intel.com>
> Cc: Hao A Wu <hao.a.wu@intel.com>
> Cc: Eric Dong <eric.dong@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Vitaly Cheptsov <vit9696@protonmail.com>
> Signed-off-by: Marvin Häuser <mhaeuser@posteo.de>
> ---
>  MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c | 89 ++------------------
>  MdeModulePkg/Include/Guid/MemoryProfile.h        |  6 +-
>  2 files changed, 12 insertions(+), 83 deletions(-)
> 
> diff --git a/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c
> b/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c
> index 1b302c810cc9..9d6e3bf27aca 100644
> --- a/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c
> +++ b/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c
> @@ -2232,64 +2232,6 @@ Done:
>    mSmramProfileGettingStatus = SmramProfileGettingStatus;
> 
>  }
> 
> 
> 
> -/**
> 
> -  SMRAM profile handler to register SMM image.
> 
> -
> 
> -  @param SmramProfileParameterRegisterImage The parameter of SMM profile register image.
> 
> -
> 
> -**/
> 
> -VOID
> 
> -SmramProfileHandlerRegisterImage (
> 
> -  IN SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE *SmramProfileParameterRegisterImage
> 
> -  )
> 
> -{
> 
> -  EFI_STATUS                        Status;
> 
> -  EFI_SMM_DRIVER_ENTRY              DriverEntry;
> 
> -  VOID                              *EntryPointInImage;
> 
> -
> 
> -  ZeroMem (&DriverEntry, sizeof (DriverEntry));
> 
> -  CopyMem (&DriverEntry.FileName, &SmramProfileParameterRegisterImage->FileName, sizeof(EFI_GUID));
> 
> -  DriverEntry.ImageBuffer = SmramProfileParameterRegisterImage->ImageBuffer;
> 
> -  DriverEntry.NumberOfPage = (UINTN) SmramProfileParameterRegisterImage->NumberOfPage;
> 
> -  Status = InternalPeCoffGetEntryPoint ((VOID *) (UINTN) DriverEntry.ImageBuffer, &EntryPointInImage);
> 
> -  ASSERT_EFI_ERROR (Status);
> 
> -  DriverEntry.ImageEntryPoint = (PHYSICAL_ADDRESS) (UINTN) EntryPointInImage;
> 
> -
> 
> -  Status = RegisterSmramProfileImage (&DriverEntry, FALSE);
> 
> -  if (!EFI_ERROR (Status)) {
> 
> -    SmramProfileParameterRegisterImage->Header.ReturnStatus = 0;
> 
> -  }
> 
> -}
> 
> -
> 
> -/**
> 
> -  SMRAM profile handler to unregister SMM image.
> 
> -
> 
> -  @param SmramProfileParameterUnregisterImage The parameter of SMM profile unregister image.
> 
> -
> 
> -**/
> 
> -VOID
> 
> -SmramProfileHandlerUnregisterImage (
> 
> -  IN SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE *SmramProfileParameterUnregisterImage
> 
> -  )
> 
> -{
> 
> -  EFI_STATUS                        Status;
> 
> -  EFI_SMM_DRIVER_ENTRY              DriverEntry;
> 
> -  VOID                              *EntryPointInImage;
> 
> -
> 
> -  ZeroMem (&DriverEntry, sizeof (DriverEntry));
> 
> -  CopyMem (&DriverEntry.FileName, &SmramProfileParameterUnregisterImage->FileName, sizeof (EFI_GUID));
> 
> -  DriverEntry.ImageBuffer = SmramProfileParameterUnregisterImage->ImageBuffer;
> 
> -  DriverEntry.NumberOfPage = (UINTN) SmramProfileParameterUnregisterImage->NumberOfPage;
> 
> -  Status = InternalPeCoffGetEntryPoint ((VOID *) (UINTN) DriverEntry.ImageBuffer, &EntryPointInImage);
> 
> -  ASSERT_EFI_ERROR (Status);
> 
> -  DriverEntry.ImageEntryPoint = (PHYSICAL_ADDRESS) (UINTN) EntryPointInImage;
> 
> -
> 
> -  Status = UnregisterSmramProfileImage (&DriverEntry, FALSE);
> 
> -  if (!EFI_ERROR (Status)) {
> 
> -    SmramProfileParameterUnregisterImage->Header.ReturnStatus = 0;
> 
> -  }
> 
> -}
> 
> -
> 
>  /**
> 
>    Dispatch function for a Software SMI handler.
> 
> 
> 
> @@ -2374,28 +2316,6 @@ SmramProfileHandler (
>      }
> 
>      SmramProfileHandlerGetDataByOffset ((SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA_BY_OFFSET *) (UINTN)
> CommBuffer);
> 
>      break;
> 
> -  case SMRAM_PROFILE_COMMAND_REGISTER_IMAGE:
> 
> -    DEBUG ((EFI_D_ERROR, "SmramProfileHandlerRegisterImage\n"));
> 
> -    if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE)) {
> 
> -      DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n"));
> 
> -      return EFI_SUCCESS;
> 
> -    }
> 
> -    if (mSmramReadyToLock) {
> 
> -      return EFI_SUCCESS;
> 
> -    }
> 
> -    SmramProfileHandlerRegisterImage ((SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE *) (UINTN) CommBuffer);
> 
> -    break;
> 
> -  case SMRAM_PROFILE_COMMAND_UNREGISTER_IMAGE:
> 
> -    DEBUG ((EFI_D_ERROR, "SmramProfileHandlerUnregisterImage\n"));
> 
> -    if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE)) {
> 
> -      DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n"));
> 
> -      return EFI_SUCCESS;
> 
> -    }
> 
> -    if (mSmramReadyToLock) {
> 
> -      return EFI_SUCCESS;
> 
> -    }
> 
> -    SmramProfileHandlerUnregisterImage ((SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE *) (UINTN) CommBuffer);
> 
> -    break;
> 
>    case SMRAM_PROFILE_COMMAND_GET_RECORDING_STATE:
> 
>      DEBUG ((EFI_D_ERROR, "SmramProfileHandlerGetRecordingState\n"));
> 
>      if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_RECORDING_STATE)) {
> 
> @@ -2417,6 +2337,15 @@ SmramProfileHandler (
>      ParameterRecordingState->Header.ReturnStatus = 0;
> 
>      break;
> 
> 
> 
> +  //
> 
> +  // Below 2 commands have been deprecated. They may not be (re-)used.
> 
> +  //
> 
> +  case SMRAM_PROFILE_COMMAND_DEPRECATED1:
> 
> +  case SMRAM_PROFILE_COMMAND_DEPRECATED2:
> 
> +    ASSERT (FALSE);
> 
> +    //
> 
> +    // Fall-through to the default (unrecognized command) case.
> 
> +    //
> 
>    default:
> 
>      break;
> 
>    }
> 
> diff --git a/MdeModulePkg/Include/Guid/MemoryProfile.h b/MdeModulePkg/Include/Guid/MemoryProfile.h
> index eee3b9125240..7565e68b5c33 100644
> --- a/MdeModulePkg/Include/Guid/MemoryProfile.h
> +++ b/MdeModulePkg/Include/Guid/MemoryProfile.h
> @@ -389,10 +389,10 @@ struct _EDKII_MEMORY_PROFILE_PROTOCOL {
>  #define SMRAM_PROFILE_COMMAND_GET_PROFILE_INFO           0x1
> 
>  #define SMRAM_PROFILE_COMMAND_GET_PROFILE_DATA           0x2
> 
>  //
> 
> -// Below 2 commands are now used by ECP only and only valid before SmmReadyToLock
> 
> +// Below 2 commands have been deprecated. They may not be re-used.
> 
>  //
> 
> -#define SMRAM_PROFILE_COMMAND_REGISTER_IMAGE             0x3
> 
> -#define SMRAM_PROFILE_COMMAND_UNREGISTER_IMAGE           0x4
> 
> +#define SMRAM_PROFILE_COMMAND_DEPRECATED1                0x3
> 
> +#define SMRAM_PROFILE_COMMAND_DEPRECATED2                0x4
> 
> 
> 
>  #define SMRAM_PROFILE_COMMAND_GET_PROFILE_DATA_BY_OFFSET 0x5
> 
>  #define SMRAM_PROFILE_COMMAND_GET_RECORDING_STATE        0x6
> 
> --
> 2.31.1
> 
> 
> 
> 
> 


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-08-10  2:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-08-09  6:09 [PATCH v2 1/1] MdeModulePkg/PiSmmCore: Drop deprecated image profiling commands Marvin Häuser
2021-08-10  2:45 ` [edk2-devel] " Ni, Ray

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox