I will review this and apply the patch, if applicable.

I purposely put in an extra, unneeded, IPC loop in the AP code just to make 
debug and demonstrations easier.
I'll make sure that I didn't get carried away and put in too many.

There was a related bug in the event code where pending timeout events did not 
get properly cleared when the AP exited.  This would cause subsequent 
invocations of StartCore to intermittently fail because the event, from the 
previous invocation, would get triggered and terminate the new invocation.   It 
has been several months since I committed that patch so I would expect it to 
have propagated everywhere by now.


Daryl McDaniel

-----Original Message-----
From: Chen, Fan [mailto:[email protected]] 
Sent: Friday, September 12, 2014 3:03 AM
To: Fan, Jeff
Cc: [email protected]
Subject: Re: [edk2] [PATCH] StartCorePkg: Delete redundant 'WaitForRoot'

On Fri, 2014-09-12 at 03:28 +0000, Fan, Jeff wrote: 
> Chen,
> 
> StarCore project does not belong to EDKII project.  Please submit this 
> patch to https://svn.code.sf.net/p/edk2-startcore/code/StartCorePkg/
> 
Oh, I got it.

Thanks,
Chen

> Jeff
> -----Original Message-----
> From: Chen Fan [mailto:[email protected]]
> Sent: Wednesday, July 16, 2014 4:43 PM
> To: [email protected]
> Subject: [edk2] [PATCH] StartCorePkg: Delete redundant 'WaitForRoot'
> 
> When using StartCore.efi to test Mp service protocol, there will cause an 
> ASSERT. "edk2/MdeModulePkg/Core/Dxe/Mem/Pool.c(439): Head->Size == Tail->Size"
> 
> The Reason:
> the AP invoked ClientTask() which waited for RootTask() changed the 'Ready' 
> Flags to continue, but when 'MaxCount' had consumed, the redundant 
> 'WaitForRoot' still waited for BSP changing the 'Ready' Flags . while the BSP 
> had began to free the 'Tcb' parameters(FreePool( mTcb)) which still be used 
> by ClientTask(), so should drop it.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Chen Fan <[email protected]>
> 
> ---
>  StartCorePkg/StartCore/ClientApp1.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/StartCorePkg/StartCore/ClientApp1.c 
> b/StartCorePkg/StartCore/ClientApp1.c
> index 0943f4b..c8925bb 100644
> --- a/StartCorePkg/StartCore/ClientApp1.c
> +++ b/StartCorePkg/StartCore/ClientApp1.c
> @@ -84,8 +84,6 @@ ClientTask( IN VOID* parameter)
>    // We have now done all of our work and could exit right now.
>  
>    // For debugging and paranoia's sake, Send one last "special" value.
> -  WaitForRoot(Tcb);           // Delay until my data has been consumed
> -
>    // Send one more result so we can catch off-by-one errors in the Root Task
>    Tcb->Result = 0xFEEDFACE;     // Indicate that ClientTask is exiting
>    Tcb->Ready = 1;              // This should be ignored
> --
> 1.9.3
> 
> 
> ----------------------------------------------------------------------
> -------- Want fast and easy access to all the code in your enterprise? 
> Index and search up to 200,000 lines of code with a free copy of Black 
> Duck Code Sight - the same software that powers the world's largest 
> code search on Ohloh, the Black Duck Open Hub! Try it now.
> http://p.sf.net/sfu/bds
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce Perforce version control. 
Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to