public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Ard Biesheuvel" <ardb@kernel.org>
To: Sami Mujawar <sami.mujawar@arm.com>
Cc: devel@edk2.groups.io, ardb+tianocore@kernel.org,
	quic_llindhol@quicinc.com,  kraxel@redhat.com,
	Pierre.Gondois@arm.com, jean-philippe@linaro.org,
	 Matteo.Carlini@arm.com, Akanksha.Jain2@arm.com,
	Ben.Adderson@arm.com,  Sibel.Allinson@arm.com, nd@arm.com
Subject: Re: [PATCH v1 5/6] ArmVirtPkg: Kvmtool: Increase primary core stack size
Date: Thu, 18 May 2023 13:01:03 +0200	[thread overview]
Message-ID: <CAMj1kXHt6jU4oDEkoD2brYBECu_8di8B_XsXj==GvZ=O+2tM8w@mail.gmail.com> (raw)
In-Reply-To: <20230518090935.10984-6-sami.mujawar@arm.com>

On Thu, 18 May 2023 at 11:10, Sami Mujawar <sami.mujawar@arm.com> wrote:
>
> The patch "f07a9df9af60 ArmVirtPkg: Enable stack guard"
> enabled stack overflow detection for ArmVirtPkg. Following
> this patch, running UEFI shell command 'dmpstore' resulted
> in a crash indicating a stack overflow. Invoking 'dmpstore'
> results in recursive calls to CascadeProcessVariables ()
> which apparently consumes the available stack space and
> overflows.
>
> Therefore, increase the primary core stack size.
>

Thanks for the fix. I imagine diagnosing this may not have been trivial.

However, I don't think this is the right fix tbh. Normally, SEC and
PEI run off this initial stack, and the DxeIpl PEIM is in charging of
launching the DxeCore with a full sized stack, and remapping it
non-executable as well.

These PrePi platforms take some shortcuts and apparently, one of the
consequences is that DXE and BDS run off the initial stack, which
points into the firmware image IIRC.

IOW, it would be better to explicitly allocate 128 KiB worth of
bootservices data memory and let the DxeCore run off of that.


> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
> ---
>  ArmVirtPkg/ArmVirtKvmTool.dsc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/ArmVirtPkg/ArmVirtKvmTool.dsc b/ArmVirtPkg/ArmVirtKvmTool.dsc
> index 4541d03d23e0d98915b3d3ada688c48d979b75d2..664a624fd2a30bb466a3df2103482e3e6c1f303a 100644
> --- a/ArmVirtPkg/ArmVirtKvmTool.dsc
> +++ b/ArmVirtPkg/ArmVirtKvmTool.dsc
> @@ -126,7 +126,7 @@ [PcdsFixedAtBuild.common]
>    gArmTokenSpaceGuid.PcdVFPEnabled|1
>  !endif
>
> -  gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
> +  gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x8000
>    gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000
>    gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800
>
> --
> 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'
>

  reply	other threads:[~2023-05-18 11:01 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-18  9:09 [PATCH v1 0/6] ArmVirtPkg: Add dynamic CFI flash detection for Kvmtool guests Sami Mujawar
2023-05-18  9:09 ` [PATCH v1 1/6] ArmPkg: Configure PcdEmuVariableNvModeEnable as a dynamic PCD Sami Mujawar
2023-05-18  9:09 ` [PATCH v1 2/6] ArmVirtPkg: Define variables for emulating runtime variables Sami Mujawar
2023-05-18  9:09 ` [PATCH v1 3/6] ArmVirtPkg: Fallback to variable emulation if no CFI is found Sami Mujawar
2023-05-18  9:09 ` [PATCH v1 4/6] ArmVirtPkg: Dispatch variable service if variable emulation is enabled Sami Mujawar
2023-05-18  9:09 ` [PATCH v1 5/6] ArmVirtPkg: Kvmtool: Increase primary core stack size Sami Mujawar
2023-05-18 11:01   ` Ard Biesheuvel [this message]
2023-05-18 15:11     ` [edk2-devel] " Sami Mujawar
2023-05-18 15:16       ` Ard Biesheuvel
2023-05-18 15:43         ` Sami Mujawar
2023-05-18  9:09 ` [PATCH v1 6/6] ArmVirtPkg: ArmVirtQemuKernel: " Sami Mujawar

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='CAMj1kXHt6jU4oDEkoD2brYBECu_8di8B_XsXj==GvZ=O+2tM8w@mail.gmail.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