On Fri, Dec 13, 2024 at 3:33 PM Hou Wenlong <houwenlong....@antgroup.com>
wrote:

> On Fri, Dec 13, 2024 at 02:48:13PM +0800, lijiang wrote:
> > On Wed, Dec 11, 2024 at 10:22 AM <
> devel-requ...@lists.crash-utility.osci.io>
> > wrote:
> >
> > > Date: Tue, 10 Dec 2024 20:18:43 +0800
> > > From: "Hou Wenlong" <houwenlong....@antgroup.com>
> > > Subject: [Crash-utility] [PATCH] x86_64: Mark #VC stack unavailable
> > >         when CONFIG_AMD_MEM_ENCRYPT is not set
> > > To: devel@lists.crash-utility.osci.io
> > > Cc: Hou Wenlong <houwenlong....@antgroup.com>
> > > Message-ID: <f1fca9918841de9a48f428d498f50964f1dab543.1733831073.git.h
> > >         ouwenlong....@antgroup.com>
> > >
> > > When 'CONFIG_AMD_MEM_ENCRYPT' is not set, the IDT handler for #VC is
> not
> > > registered, but the address of the #VC IST stack is still set in
> > > tss_setup_ist(). Therefore, the name of the associated exception stack
> > > is "UNKNOWN" instead of "VC". Although the base of the exception stack
> > > is not zero and is available, it is not accessible, which will cause
> the
> > > backtrace to fail when attempting to access the #VC stack. To fix this,
> > > remove the name check.
> > >
> > >
> > Thank you for the fix, Hou.
> >
> >
> > > Signe-off-by: Hou Wenlong <houwenlong....@antgroup.com>
> > > ---
> > >  x86_64.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/x86_64.c b/x86_64.c
> > > index e7f8fe25b31f..ee12ba095e6e 100644
> > > --- a/x86_64.c
> > > +++ b/x86_64.c
> > > @@ -1540,7 +1540,7 @@ x86_64_ist_init(void)
> > >
> > >                                 ms->stkinfo.available[c][i] = TRUE;
> > >                                 /* VC stack can be unmapped if SEV-ES
> is
> > > disabled or not supported. */
> > > -                               if
> (STREQ(ms->stkinfo.exception_stacks[i],
> > > "VC") &&
> > > +                               if (ms->stkinfo.ebase[c][i] &&
> > >
> > Can you help double check if the above condition is redundant in your
> case?
> > Seems the check '!accessible(ms->stkinfo.ebase[c][i])'  should be enough.
> >
> Hi Lianbo,
>
> Yes, checking '!accessible(ms->stkinfo.ebase[c][i])' is sufficient. I
> added the extra check because I noticed that a value of 0 seems to be
> invalid for 'ms->stkinfo.ebase[c][i]', and there is a separate check for
> 'ms->stkinfo.ebase[c][i] != 0' before it is used in other places. If we
> remove the check, it could potentially be rewritten as:
>
> diff --git a/x86_64.c b/x86_64.c
> index e7f8fe25b31f..c254c6ec7576 100644
> --- a/x86_64.c
> +++ b/x86_64.c
> @@ -1538,11 +1538,8 @@ x86_64_ist_init(void)
>                                 if (ms->stkinfo.ebase[c][i])
>                                         ms->stkinfo.ebase[c][i] -=
> ms->stkinfo.esize[i];
>
> -                               ms->stkinfo.available[c][i] = TRUE;
>                                 /* VC stack can be unmapped if SEV-ES is
>  * disabled or not supported. */
> -                               if
>                                 (STREQ(ms->stkinfo.exception_stacks[i],
> "VC") &&
> -                                   !accessible(ms->stkinfo.ebase[c][i]))
> -                                       ms->stkinfo.available[c][i] =
>                                         FALSE;
> +                               ms->stkinfo.available[c][i] =
> accessible(ms->stkinfo.ebase[c][i]);
>                         }
>                 }
>
>
This looks good to me. Thanks, Hou.



> Thanks!
>
> > Thanks
> > Lianbo
> >
> >                                     !accessible(ms->stkinfo.ebase[c][i]))
> > >                                         ms->stkinfo.available[c][i] =
> > > FALSE;
> > >                         }
> > >
> > > base-commit: f13853cef53f5c5463a51021edbc81977e2b1405
> > > --
> > > 2.31.1
> > >
>
>
--
Crash-utility mailing list -- devel@lists.crash-utility.osci.io
To unsubscribe send an email to devel-le...@lists.crash-utility.osci.io
https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
Contribution Guidelines: https://github.com/crash-utility/crash/wiki

Reply via email to