Laszlo,

> -----Original Message-----
> From: Laszlo Ersek [mailto:ler...@redhat.com]
> Sent: Thursday, February 28, 2019 10:07 PM
> To: Wang, Jian J <jian.j.w...@intel.com>; edk2-devel@lists.01.org
> Subject: Re: [edk2] [PATCH 0/2] Fix SMM driver hang at accessing memory
> beyond 4G
> 
> Hi Jian,
> 
> On 02/28/19 11:10, Jian J Wang wrote:
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1576
> > Test:
> > - Pass special test of accessing memory beyond 4G
> > - Boot to OS with Qemu emulator platform (Fedora27, Ubuntu18.04,
> >   Windows7, Windows10)
> >
> > Jian J Wang (2):
> >   UefiCpuPkg/CpuDxe: set TF bit in EFLAGS in C code
> >   UefiCpuPkg/CpuDxe: remove code to set TF bit in EFLAGS
> >
> >  UefiCpuPkg/CpuDxe/CpuPageTable.c                      | 11 ++++++++++-
> >  .../Ia32/ExceptionHandlerAsm.nasm                     |  7 -------
> >  .../X64/ExceptionHandlerAsm.nasm                      |  4 ----
> >  3 files changed, 10 insertions(+), 12 deletions(-)
> >
> 
> thanks for the good description in the BZ and the patches.
> 
> Also thanks for the good commit message on commit dcc026217fdc
> ("UefiCpuPkg/CpuDxe: implement non-stop mode for uefi", 2018-08-30),
> which is a handy reminder about nonstop mode.
> 
> 
> (1) My understanding is that, for the problem to arise, it is necessary
> for a platform to set
> 
>   PcdCpuSmmStaticPageTable = FALSE
> 
> Because of that, I expect the code changes as well to be restricted to
> such code paths (i.e. I expect the code changes to be invisible with
> PcdCpuSmmStaticPageTable=TRUE). Therefore I'll skip regression testing
> this series.
> 

Correct.

> 
> (2) Both commit messages say,
> 
> "the fix is to *move* the logic to C code part of page fault exception
> handler"
> 
> (In fact, the commit messages are identical.)
> 
> Therefore I think the two patches should be squashed into one. It should
> be one atomic code movement. For example, if someone bisects the git
> history, and they check out the tree between the two patches, they will
> have the TF bit logic in both places. That's probably not good.
> 
> 

Agree. I'll merge them.

> (3) I think this is my most important comment for this series:
> 
> The subject lines of the patches do not state the *actual* change. The
> actual change is not that we move the TF bit manipulation from assembly
> code to C code. Instead, the change is that we make the TF setting
> *conditional*. In other words, we restrict the setting of TF (--> the
> single stepping, = the debug exception after re-executing the originally
> faulting instruction) only if we *need* the debug exception, for
> restoring the strict page attributes, after the faulting instruction is
> allowed to pass.
> 
> In other words, we enable the "restore page attributes" logic (#DB
> exception handler) only if there is a reason for that (= we are in
> nonstop mode).
> 
> My apologies if the above paragraph is too verbose. I simply suggest
> that the squashed patch have the following subject:
> 
> UefiCpuPkg: restore strict page attributes via #DB in nonstop mode only
> 
> (71 characters).
> 
> 

Very good explanation and abstraction. Agree.

> (4) I also suggest adding:
> 
> Fixes: dcc026217fdc363f55c217039fc43d344f69fed6
> 
> near the end of the commit message.
> 
> 
> With (2) through (4) addressed:
> 
> Acked-by: Laszlo Ersek <ler...@redhat.com>
> 

It'll be added. Thanks for the great feedback.

Jian

> Thanks
> Laszlo
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to