public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Rebecca Cran" <quic_rcran@quicinc.com>
To: Kun Qin <kuqin12@gmail.com>, <devel@edk2.groups.io>, <ardb@kernel.org>
Cc: Sami Mujawar <sami.mujawar@arm.com>,
	Ard Biesheuvel <ardb+tianocore@kernel.org>,
	Leif Lindholm <quic_llindhol@quicinc.com>,
	"Jian J Wang" <jian.j.wang@intel.com>,
	Liming Gao <gaoliming@byosoft.com.cn>,
	"Tiger Liu" <TigerLiu@zhaoxin.com>
Subject: Re: [edk2-devel] [PATCH v4 0/3] ArmPkg,MdeModulePkg: Implement EFI_MP_SERVICES_PROTOCOL for AArch64 and add an MpServicesTest application to exercise it
Date: Fri, 6 Jan 2023 11:42:44 -0700	[thread overview]
Message-ID: <421e3d4e-22b3-b0e0-5990-7a6918fc8700@quicinc.com> (raw)
In-Reply-To: <649d9d13-f5d9-ae8c-9067-e27a05b88f6d@gmail.com>

The patches aren't attached to the cover letter, but are separate 
emails. You should be able to find them by looking for "PATCH v4 1/3", 
"PATCH v4 2/3" etc.

I've made several changes to the WaitEvent handling in the latest patch: 
could you check if the problem has been fixed please?

-- 
Rebecca Cran

On 1/5/23 22:11, Kun Qin wrote:
> Hi Ard/Rebecca,
> 
> Thanks for bringing this to the mailing list. But somehow I cannot find 
> the patches sent along with this
> v4 cover letter. Could you please point me to them?
> 
> I have been running the previous version of this patch and noticed a 
> minor issue when the wait event is
> specified but the timeout is 0. In this case the CheckApStatus function 
> could fall into the timeout scenario
> regardless and signal the event timeout incorrectly. I attempted a 
> simple fix here:
> https://github.com/kuqin12/mu_silicon_arm_tiano/commit/591462cc32e621c1da470a8319f7deda723e8509
> 
> Please let me know if I misunderstood anything for the above case. 
> Thanks in advance!
> 
> Regards,
> Kun
> 
> On 1/5/2023 9:59 AM, Ard Biesheuvel wrote:
>> On Thu, 5 Jan 2023 at 18:39, Ard Biesheuvel <ardb@kernel.org> wrote:
>>> On Wed, 4 Jan 2023 at 16:37, Rebecca Cran <rebecca@quicinc.com> wrote:
>>>> Implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls for AArch64, and
>>>> add an MpServicesTest application to exercise it.
>>>>
>>>> Changes from v3:
>>>>
>>>> Removed Ard's 'Reviewed-by' line from the commits since the code has 
>>>> changed
>>>> sufficiently that it's no longer valid.
>>>>
>>>> Rebecca Cran (3):
>>>>    ArmPkg: Add GET_MPIDR_AFFINITY_BITS and MPIDR_MT_BIT to ArmLib.h
>>>>    ArmPkg: implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls
>>>>    MdeModulePkg: Add new Application/MpServicesTest application
>>>>
>>>>   ArmPkg/ArmPkg.dsc                                            |    1 +
>>>>   MdeModulePkg/MdeModulePkg.dsc                                |    2 +
>>>>   ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.inf |   56 +
>>>>   MdeModulePkg/Application/MpServicesTest/MpServicesTest.inf   |   40 +
>>>>   ArmPkg/Drivers/ArmPsciMpServicesDxe/MpServicesInternal.h     |  
>>>> 344 ++++
>>>>   ArmPkg/Include/Library/ArmLib.h                              |   
>>>> 16 +-
>>>>   MdeModulePkg/Application/MpServicesTest/Options.h            |   39 +
>>>>   ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.c   | 
>>>> 1847 ++++++++++++++++++++
>>>>   MdeModulePkg/Application/MpServicesTest/MpServicesTest.c     |  
>>>> 560 ++++++
>>>>   MdeModulePkg/Application/MpServicesTest/Options.c            |  
>>>> 164 ++
>>>>   ArmPkg/Drivers/ArmPsciMpServicesDxe/MpFuncs.S                |   57 +
>>>>   11 files changed, 3119 insertions(+), 7 deletions(-)
>>> Hello Rebecca,
>>>
>>> Thanks for reposting this.
>>>
>>> Running the secondaries with MMU and caches on is a huge improvement.
>>> I would suggest, though, that we enable the MMU first thing out of
>>> reset, and do so from asm code so we don't have to reason about the
>>> stack (pushing something with the MMU off and popping it with the MMU
>>> on requires cache maintenance as well, and there is no way this can be
>>> done from the code itself without help from the compiler)
>>>
>>> So I propose adding the diff below - note that only the variables
>>> holding TCR, MAIR and TTBR0 need cache maintenance now (in addition to
>>> the executable image) - everything else will be accessed by the
>>> secondaries with the MMU enabled.
>>>
>>> https://paste.debian.net/1266242/
>>>
>>> WIth a tweak to the RPI4 platform that I sent out separately, this all
>>> works fine for me (both with and without the diff above applied)
>>>
>> Actually, maybe better to retain the hunk below. I saw some weird
>> hangs without them
>>
>> diff --git a/ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.c
>> b/ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.c
>> index ab439bffd722..eb634a25b33a 100644
>> --- a/ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.c
>> +++ b/ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.c
>> @@ -1345,18 +1345,6 @@ MpServicesInitialize (
>>
>>     gProcessorIDs[Index] = MAX_UINT64;
>>
>> -  //
>> -  // The global pointer variables as well as the gProcessorIDs array 
>> contents
>> -  // are accessed by the other cores so we must clean them to the PoC
>> -  //
>> -  WriteBackDataCacheRange (&gProcessorIDs, sizeof (UINT64 *));
>> -  WriteBackDataCacheRange (&gApStacksBase, sizeof (UINT64 *));
>> -
>> -  WriteBackDataCacheRange (
>> -    gProcessorIDs,
>> -    (mCpuMpData.NumberOfProcessors + 1) * sizeof (UINT64)
>> -    );
>> -
>>     mNonBlockingModeAllowed = TRUE;
>>
>>     Status = EfiCreateEventReadyToBootEx (
>>
>>
>> 
>>
>>

  reply	other threads:[~2023-01-06 18:42 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-04 15:37 [PATCH v4 0/3] ArmPkg,MdeModulePkg: Implement EFI_MP_SERVICES_PROTOCOL for AArch64 and add an MpServicesTest application to exercise it Rebecca Cran
2023-01-04 15:37 ` [PATCH v4 1/3] ArmPkg: Add GET_MPIDR_AFFINITY_BITS and MPIDR_MT_BIT to ArmLib.h Rebecca Cran
2023-01-04 15:37 ` [PATCH v4 2/3] ArmPkg: implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls Rebecca Cran
2023-01-06 22:11   ` [edk2-devel] " Kun Qin
2023-01-16 18:41     ` Rebecca Cran
     [not found]   ` <1737D7D0377487BE.3916@groups.io>
2023-01-06 22:16     ` Kun Qin
2023-01-13  2:01       ` Kun Qin
2023-01-16 19:06         ` Rebecca Cran
2023-01-16 18:45       ` Rebecca Cran
2023-01-04 15:37 ` [PATCH v4 3/3] MdeModulePkg: Add new Application/MpServicesTest application Rebecca Cran
2023-01-06  9:40   ` Ard Biesheuvel
2023-01-06 11:02     ` [edk2-devel] " Laszlo Ersek
2023-01-06 18:40       ` Rebecca Cran
2023-01-06 22:33   ` Kun Qin
2023-01-08  4:56     ` Rebecca Cran
2023-01-09  1:32       ` Ni, Ray
2023-01-09 14:25         ` Rebecca Cran
2023-01-09 17:12           ` Ard Biesheuvel
2023-01-10  1:08             ` Ni, Ray
2023-01-15  1:02               ` Rebecca Cran
2023-01-07 22:19   ` Laszlo Ersek
2023-01-05 17:39 ` [PATCH v4 0/3] ArmPkg,MdeModulePkg: Implement EFI_MP_SERVICES_PROTOCOL for AArch64 and add an MpServicesTest application to exercise it Ard Biesheuvel
2023-01-05 17:59   ` Ard Biesheuvel
2023-01-06  5:11     ` [edk2-devel] " Kun Qin
2023-01-06 18:42       ` Rebecca Cran [this message]
2023-01-06 19:56         ` Kun Qin
2023-01-08  3:55   ` Rebecca Cran
2023-01-11 16:41 ` [edk2-devel] " Patrik Berglund
2023-01-11 22:54   ` Rebecca Cran

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=421e3d4e-22b3-b0e0-5990-7a6918fc8700@quicinc.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox