.../RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h | 1 + .../RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-)
RedfishFeatureDriverStartup is callback function at TPL_CALLBACK
level. In this function, Redfish events are signaled. However,
Redfish events are created in TPL_CALLBACK level too. As the result,
Redfish events cannot be invoked in desired sequence. Decrease the
TPL to TPL_APPLICATION level inside RedfishFeatureDriverStartup and
restore it to TPL_CALLBACK level before leaving this function. Now,
Redfish events are called in correct sequence.
Signed-off-by: Nickle Wang <nicklew@nvidia.com>
Cc: Abner Chang <abner.chang@amd.com>
Cc: Igor Kulchytskyy <igork@ami.com>
Cc: Nick Ramirez <nramirez@nvidia.com>
---
.../RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h | 1 +
.../RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c | 14 +++++++++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h
index acefa41b..de08d79d 100644
--- a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h
+++ b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h
@@ -33,6 +33,7 @@
#define NodeIsCollectionLeftBracket L'{'
#define NodeIsCollectionRightBracket L'}'
#define NodeIsCollectionSymbol L"/{}"
+#define REDFISH_FEATURE_CORE_TPL TPL_CALLBACK
typedef struct _REDFISH_FEATURE_INTERNAL_DATA REDFISH_FEATURE_INTERNAL_DATA;
struct _REDFISH_FEATURE_INTERNAL_DATA {
diff --git a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c
index f3188ddf..c0c3ec47 100644
--- a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c
+++ b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c
@@ -272,6 +272,13 @@ RedfishFeatureDriverStartup (
return;
}
+ //
+ // Lower the TPL to TPL_APPLICATION so that
+ // Redfish event and report status code can be
+ // triggered
+ //
+ gBS->RestoreTPL (TPL_APPLICATION);
+
//
// Reset PcdRedfishSystemRebootRequired flag
//
@@ -321,6 +328,11 @@ RedfishFeatureDriverStartup (
gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);
CpuDeadLoop ();
}
+
+ //
+ // Restore to the TPL where this callback handler is called.
+ //
+ gBS->RaiseTPL (REDFISH_FEATURE_CORE_TPL);
}
/**
@@ -670,7 +682,7 @@ RedfishFeatureCoreEntryPoint (
Status = gBS->CreateEventEx (
EVT_NOTIFY_SIGNAL,
- TPL_CALLBACK,
+ REDFISH_FEATURE_CORE_TPL,
RedfishFeatureDriverStartup,
(CONST VOID *)&mFeatureDriverStartupContext,
EventGuid,
--
2.17.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#112100): https://edk2.groups.io/g/devel/message/112100
Mute This Topic: https://groups.io/mt/103009658/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
[AMD Official Use Only - General] Hi Nickle, one comment below. > -----Original Message----- > From: Nickle Wang <nicklew@nvidia.com> > Sent: Wednesday, December 6, 2023 4:57 PM > To: devel@edk2.groups.io > Cc: Chang, Abner <Abner.Chang@amd.com>; Igor Kulchytskyy > <igork@ami.com>; Nick Ramirez <nramirez@nvidia.com> > Subject: [edk2-redfish-client][PATCH] > RedfishClientPkg/RedfishFeatureCoreDxe: fix Redfish event issue. > > Caution: This message originated from an External Source. Use proper caution > when opening attachments, clicking links, or responding. > > > RedfishFeatureDriverStartup is callback function at TPL_CALLBACK > level. In this function, Redfish events are signaled. However, > Redfish events are created in TPL_CALLBACK level too. As the result, > Redfish events cannot be invoked in desired sequence. Decrease the > TPL to TPL_APPLICATION level inside RedfishFeatureDriverStartup and > restore it to TPL_CALLBACK level before leaving this function. Now, > Redfish events are called in correct sequence. > > Signed-off-by: Nickle Wang <nicklew@nvidia.com> > Cc: Abner Chang <abner.chang@amd.com> > Cc: Igor Kulchytskyy <igork@ami.com> > Cc: Nick Ramirez <nramirez@nvidia.com> > --- > .../RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h | 1 + > .../RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c | 14 +++++++++++++- > 2 files changed, 14 insertions(+), 1 deletion(-) > > diff --git > a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > index acefa41b..de08d79d 100644 > --- a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > +++ b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > @@ -33,6 +33,7 @@ > #define NodeIsCollectionLeftBracket L'{' > #define NodeIsCollectionRightBracket L'}' > #define NodeIsCollectionSymbol L"/{}" > +#define REDFISH_FEATURE_CORE_TPL TPL_CALLBACK > > typedef struct _REDFISH_FEATURE_INTERNAL_DATA > REDFISH_FEATURE_INTERNAL_DATA; > struct _REDFISH_FEATURE_INTERNAL_DATA { > diff --git a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > index f3188ddf..c0c3ec47 100644 > --- a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > +++ b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > @@ -272,6 +272,13 @@ RedfishFeatureDriverStartup ( > return; > } > > + // > + // Lower the TPL to TPL_APPLICATION so that > + // Redfish event and report status code can be > + // triggered > + // > + gBS->RestoreTPL (TPL_APPLICATION); > + > // > // Reset PcdRedfishSystemRebootRequired flag > // > @@ -321,6 +328,11 @@ RedfishFeatureDriverStartup ( > gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL); > CpuDeadLoop (); > } > + > + // > + // Restore to the TPL where this callback handler is called. > + // > + gBS->RaiseTPL (REDFISH_FEATURE_CORE_TPL); If we use PCD here, then we have to also update CreateEventEx in the RedfishFeatureCoreEntryPoint. Create the event using REDFISH_FEATURE_CORE_TPL. Abner > } > > /** > @@ -670,7 +682,7 @@ RedfishFeatureCoreEntryPoint ( > > Status = gBS->CreateEventEx ( > EVT_NOTIFY_SIGNAL, > - TPL_CALLBACK, > + REDFISH_FEATURE_CORE_TPL, > RedfishFeatureDriverStartup, > (CONST VOID *)&mFeatureDriverStartupContext, > EventGuid, > -- > 2.17.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#112121): https://edk2.groups.io/g/devel/message/112121 Mute This Topic: https://groups.io/mt/103009658/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
Hi Abner, > If we use PCD here, then we have to also update CreateEventEx in the RedfishFeatureCoreEntryPoint. Create the event using REDFISH_FEATURE_CORE_TPL. Yes, I also modify RedfishFeatureCoreEntryPoint in below together. > } > > /** > @@ -670,7 +682,7 @@ RedfishFeatureCoreEntryPoint ( > > Status = gBS->CreateEventEx ( > EVT_NOTIFY_SIGNAL, > - TPL_CALLBACK, > + REDFISH_FEATURE_CORE_TPL, > RedfishFeatureDriverStartup, > (CONST VOID *)&mFeatureDriverStartupContext, > EventGuid, Regards, Nickle > -----Original Message----- > From: Chang, Abner <Abner.Chang@amd.com> > Sent: Wednesday, December 6, 2023 8:08 PM > To: Nickle Wang <nicklew@nvidia.com>; devel@edk2.groups.io > Cc: Igor Kulchytskyy <igork@ami.com>; Nick Ramirez <nramirez@nvidia.com> > Subject: RE: [edk2-redfish-client][PATCH] > RedfishClientPkg/RedfishFeatureCoreDxe: fix Redfish event issue. > > External email: Use caution opening links or attachments > > > [AMD Official Use Only - General] > > Hi Nickle, one comment below. > > > -----Original Message----- > > From: Nickle Wang <nicklew@nvidia.com> > > Sent: Wednesday, December 6, 2023 4:57 PM > > To: devel@edk2.groups.io > > Cc: Chang, Abner <Abner.Chang@amd.com>; Igor Kulchytskyy > > <igork@ami.com>; Nick Ramirez <nramirez@nvidia.com> > > Subject: [edk2-redfish-client][PATCH] > > RedfishClientPkg/RedfishFeatureCoreDxe: fix Redfish event issue. > > > > Caution: This message originated from an External Source. Use proper > > caution when opening attachments, clicking links, or responding. > > > > > > RedfishFeatureDriverStartup is callback function at TPL_CALLBACK > > level. In this function, Redfish events are signaled. However, Redfish > > events are created in TPL_CALLBACK level too. As the result, Redfish > > events cannot be invoked in desired sequence. Decrease the TPL to > > TPL_APPLICATION level inside RedfishFeatureDriverStartup and restore > > it to TPL_CALLBACK level before leaving this function. Now, Redfish > > events are called in correct sequence. > > > > Signed-off-by: Nickle Wang <nicklew@nvidia.com> > > Cc: Abner Chang <abner.chang@amd.com> > > Cc: Igor Kulchytskyy <igork@ami.com> > > Cc: Nick Ramirez <nramirez@nvidia.com> > > --- > > .../RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h | 1 + > > .../RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c | 14 +++++++++++++- > > 2 files changed, 14 insertions(+), 1 deletion(-) > > > > diff --git > > a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > > b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > > index acefa41b..de08d79d 100644 > > --- a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > > +++ b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > > @@ -33,6 +33,7 @@ > > #define NodeIsCollectionLeftBracket L'{' > > #define NodeIsCollectionRightBracket L'}' > > #define NodeIsCollectionSymbol L"/{}" > > +#define REDFISH_FEATURE_CORE_TPL TPL_CALLBACK > > > > typedef struct _REDFISH_FEATURE_INTERNAL_DATA > > REDFISH_FEATURE_INTERNAL_DATA; struct > _REDFISH_FEATURE_INTERNAL_DATA > > { diff --git > > a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > > b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > > index f3188ddf..c0c3ec47 100644 > > --- a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > > +++ b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > > @@ -272,6 +272,13 @@ RedfishFeatureDriverStartup ( > > return; > > } > > > > + // > > + // Lower the TPL to TPL_APPLICATION so that // Redfish event and > > + report status code can be // triggered // gBS->RestoreTPL > > + (TPL_APPLICATION); > > + > > // > > // Reset PcdRedfishSystemRebootRequired flag > > // > > @@ -321,6 +328,11 @@ RedfishFeatureDriverStartup ( > > gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL); > > CpuDeadLoop (); > > } > > + > > + // > > + // Restore to the TPL where this callback handler is called. > > + // > > + gBS->RaiseTPL (REDFISH_FEATURE_CORE_TPL); > If we use PCD here, then we have to also update CreateEventEx in the > RedfishFeatureCoreEntryPoint. Create the event using > REDFISH_FEATURE_CORE_TPL. > > Abner > > > > } > > > > /** > > @@ -670,7 +682,7 @@ RedfishFeatureCoreEntryPoint ( > > > > Status = gBS->CreateEventEx ( > > EVT_NOTIFY_SIGNAL, > > - TPL_CALLBACK, > > + REDFISH_FEATURE_CORE_TPL, > > RedfishFeatureDriverStartup, > > (CONST VOID *)&mFeatureDriverStartupContext, > > EventGuid, > > -- > > 2.17.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#112142): https://edk2.groups.io/g/devel/message/112142 Mute This Topic: https://groups.io/mt/103009658/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
[AMD Official Use Only - General] Ah sorry, I missed that one. Reviewed-by: Abner Chang <abner.chang@amd.com> > -----Original Message----- > From: Nickle Wang <nicklew@nvidia.com> > Sent: Thursday, December 7, 2023 7:46 AM > To: Chang, Abner <Abner.Chang@amd.com>; devel@edk2.groups.io > Cc: Igor Kulchytskyy <igork@ami.com>; Nick Ramirez <nramirez@nvidia.com> > Subject: RE: [edk2-redfish-client][PATCH] > RedfishClientPkg/RedfishFeatureCoreDxe: fix Redfish event issue. > > [AMD Official Use Only - General] > > Caution: This message originated from an External Source. Use proper caution > when opening attachments, clicking links, or responding. > > > Hi Abner, > > > If we use PCD here, then we have to also update CreateEventEx in the > RedfishFeatureCoreEntryPoint. Create the event using > REDFISH_FEATURE_CORE_TPL. > > Yes, I also modify RedfishFeatureCoreEntryPoint in below together. > > > } > > > > /** > > @@ -670,7 +682,7 @@ RedfishFeatureCoreEntryPoint ( > > > > Status = gBS->CreateEventEx ( > > EVT_NOTIFY_SIGNAL, > > - TPL_CALLBACK, > > + REDFISH_FEATURE_CORE_TPL, > > RedfishFeatureDriverStartup, > > (CONST VOID *)&mFeatureDriverStartupContext, > > EventGuid, > > Regards, > Nickle > > > -----Original Message----- > > From: Chang, Abner <Abner.Chang@amd.com> > > Sent: Wednesday, December 6, 2023 8:08 PM > > To: Nickle Wang <nicklew@nvidia.com>; devel@edk2.groups.io > > Cc: Igor Kulchytskyy <igork@ami.com>; Nick Ramirez > <nramirez@nvidia.com> > > Subject: RE: [edk2-redfish-client][PATCH] > > RedfishClientPkg/RedfishFeatureCoreDxe: fix Redfish event issue. > > > > External email: Use caution opening links or attachments > > > > > > [AMD Official Use Only - General] > > > > Hi Nickle, one comment below. > > > > > -----Original Message----- > > > From: Nickle Wang <nicklew@nvidia.com> > > > Sent: Wednesday, December 6, 2023 4:57 PM > > > To: devel@edk2.groups.io > > > Cc: Chang, Abner <Abner.Chang@amd.com>; Igor Kulchytskyy > > > <igork@ami.com>; Nick Ramirez <nramirez@nvidia.com> > > > Subject: [edk2-redfish-client][PATCH] > > > RedfishClientPkg/RedfishFeatureCoreDxe: fix Redfish event issue. > > > > > > Caution: This message originated from an External Source. Use proper > > > caution when opening attachments, clicking links, or responding. > > > > > > > > > RedfishFeatureDriverStartup is callback function at TPL_CALLBACK > > > level. In this function, Redfish events are signaled. However, Redfish > > > events are created in TPL_CALLBACK level too. As the result, Redfish > > > events cannot be invoked in desired sequence. Decrease the TPL to > > > TPL_APPLICATION level inside RedfishFeatureDriverStartup and restore > > > it to TPL_CALLBACK level before leaving this function. Now, Redfish > > > events are called in correct sequence. > > > > > > Signed-off-by: Nickle Wang <nicklew@nvidia.com> > > > Cc: Abner Chang <abner.chang@amd.com> > > > Cc: Igor Kulchytskyy <igork@ami.com> > > > Cc: Nick Ramirez <nramirez@nvidia.com> > > > --- > > > .../RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h | 1 + > > > .../RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c | 14 > +++++++++++++- > > > 2 files changed, 14 insertions(+), 1 deletion(-) > > > > > > diff --git > > > a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > > > b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > > > index acefa41b..de08d79d 100644 > > > --- a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > > > +++ b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > > > @@ -33,6 +33,7 @@ > > > #define NodeIsCollectionLeftBracket L'{' > > > #define NodeIsCollectionRightBracket L'}' > > > #define NodeIsCollectionSymbol L"/{}" > > > +#define REDFISH_FEATURE_CORE_TPL TPL_CALLBACK > > > > > > typedef struct _REDFISH_FEATURE_INTERNAL_DATA > > > REDFISH_FEATURE_INTERNAL_DATA; struct > > _REDFISH_FEATURE_INTERNAL_DATA > > > { diff --git > > > a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > > > b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > > > index f3188ddf..c0c3ec47 100644 > > > --- a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > > > +++ b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > > > @@ -272,6 +272,13 @@ RedfishFeatureDriverStartup ( > > > return; > > > } > > > > > > + // > > > + // Lower the TPL to TPL_APPLICATION so that // Redfish event and > > > + report status code can be // triggered // gBS->RestoreTPL > > > + (TPL_APPLICATION); > > > + > > > // > > > // Reset PcdRedfishSystemRebootRequired flag > > > // > > > @@ -321,6 +328,11 @@ RedfishFeatureDriverStartup ( > > > gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL); > > > CpuDeadLoop (); > > > } > > > + > > > + // > > > + // Restore to the TPL where this callback handler is called. > > > + // > > > + gBS->RaiseTPL (REDFISH_FEATURE_CORE_TPL); > > If we use PCD here, then we have to also update CreateEventEx in the > > RedfishFeatureCoreEntryPoint. Create the event using > > REDFISH_FEATURE_CORE_TPL. > > > > Abner > > > > > > > } > > > > > > /** > > > @@ -670,7 +682,7 @@ RedfishFeatureCoreEntryPoint ( > > > > > > Status = gBS->CreateEventEx ( > > > EVT_NOTIFY_SIGNAL, > > > - TPL_CALLBACK, > > > + REDFISH_FEATURE_CORE_TPL, > > > RedfishFeatureDriverStartup, > > > (CONST VOID *)&mFeatureDriverStartupContext, > > > EventGuid, > > > -- > > > 2.17.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#112151): https://edk2.groups.io/g/devel/message/112151 Mute This Topic: https://groups.io/mt/103009658/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2024 Red Hat, Inc.