public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Tiger Liu(BJ-RD)" <tigerliu@zhaoxin.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"Ni, Ray" <ray.ni@intel.com>,
	"brian.johnson@hpe.com" <brian.johnson@hpe.com>
Subject: Re: [edk2-devel] How to guard CAR's stack overflow
Date: Thu, 22 Sep 2022 03:32:14 +0000	[thread overview]
Message-ID: <b0586aa0ddff42d9a79ac99b409fd815@zhaoxin.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 3910 bytes --]

Hi, Johnson:
Thanks for your reply!

I tried and found it seemed causing some other problems.

It hang in eary pei stage.

It seems below code could also cause an exception if using expand-down mode in CAR phase’s stack established.
mov eax, ss:[ebx]
 mov eax, [ebp]
  mov eax, [esp]

Thanks
发件人: Brian J. Johnson <brian.johnson@hpe.com<mailto:brian.johnson@hpe.com>>
发送时间: 2022年9月20日 7:10
收件人: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; ray.ni@intel.com<mailto:ray.ni@intel.com>; Tiger Liu(BJ-RD) <TigerLiu@zhaoxin.com<mailto:TigerLiu@zhaoxin.com>>
抄送: Fan, Jeff <fanjianfeng@byosoft.com.cn<mailto:fanjianfeng@byosoft.com.cn>>
主题: Re: [edk2-devel] How to guard CAR's stack overflow

You could also try modifying the Ia32 segment descriptors to mark the stack segment as an "expand down" type with a limit set just below the low end of the stack area.  That should generate a stack-fault exception if the stack overflows, and wouldn't require building page tables.  See sections 5.1 - 5.3 of the Intel SDM, volume 3.

Brian J. Johnson

________________________________
From: Ni, Ray [mailto:ray.ni@intel.com]
Sent: Wednesday, September 14, 2022, 10:25 PM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io> <devel@edk2.groups.io><mailto:devel@edk2.groups.io>, tigerliu@zhaoxin.com<mailto:tigerliu@zhaoxin.com> <tigerliu@zhaoxin.com><mailto:tigerliu@zhaoxin.com>
Cc: Fan, Jeff <fanjianfeng@byosoft.com.cn><mailto:fanjianfeng@byosoft.com.cn>
Subject: [edk2-devel] How to guard CAR's stack overflow

It’s doable.
You need to enable paging and mark the very low 4K area of the stack as not-present.
You could use the UefiCpuPkg/Library/CpuPageTableLib to help you create the 1:1 page table with the specific
4K area as not-present (if you are using x86 processors).

Thanks,
Ray

From: devel@edk2.groups.io<mailto:devel@edk2.groups.io> <devel@edk2.groups.io><mailto:devel@edk2.groups.io> On Behalf Of Tiger Liu(BJ-RD)
Sent: Thursday, September 15, 2022 8:50 AM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>
Subject: [edk2-devel] How to guard CAR's stack overflow

Hi, Experts:
Usually, we use Cache As Ram to setup stack and heap for C language running environment before permanent memory has been initialized.

So, is there a method to guard this phase’s stack overflow?

Note:
I find udk has introduced a method to guard stack overflow after memory has been initialized and discovered.

Thanks

保密声明:
本邮件含有保密或专有信息,仅供指定收件人使用。严禁对本邮件或其内容做任何未经授权的查阅、使用、复制或转发。
CONFIDENTIAL NOTE:
This email contains confidential or legally privileged information and is for the sole use of its intended recipient. Any unauthorized review, use, copying or forwarding of this email or the content of this email is strictly prohibited.
_._,_._,_
________________________________
Groups.io Links:

You receive all messages sent to this group.

View/Reply Online (#93797)<https://edk2.groups.io/g/devel/message/93797> | | Mute This Topic<https://groups.io/mt/93691088/1761811> | New Topic<https://edk2.groups.io/g/devel/post>
Your Subscription<https://edk2.groups.io/g/devel/editsub/1761811> | Contact Group Owner<mailto:devel+owner@edk2.groups.io> | Unsubscribe<https://edk2.groups.io/g/devel/unsub> [brian.johnson@hpe.com<mailto:brian.johnson@hpe.com>]
_



保密声明:
本邮件含有保密或专有信息,仅供指定收件人使用。严禁对本邮件或其内容做任何未经授权的查阅、使用、复制或转发。
CONFIDENTIAL NOTE:
This email contains confidential or legally privileged information and is for the sole use of its intended recipient. Any unauthorized review, use, copying or forwarding of this email or the content of this email is strictly prohibited.

[-- Attachment #2: Type: text/html, Size: 17897 bytes --]

             reply	other threads:[~2022-09-22  3:32 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-22  3:32 Tiger Liu(BJ-RD) [this message]
2022-09-22 21:06 ` [edk2-devel] How to guard CAR's stack overflow Brian J. Johnson
  -- strict thread matches above, loose matches on Subject: below --
2022-09-23  0:44 Tiger Liu(BJ-RD)
2022-09-15  0:50 Tiger Liu(BJ-RD)
2022-09-15  3:25 ` Ni, Ray
2022-09-19 23:09   ` Brian J. Johnson

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=b0586aa0ddff42d9a79ac99b409fd815@zhaoxin.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