lkml.org 
[lkml]   [2022]   [May]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCHv5 10/12] x86/tdx: Unaccepted memory support
    On Fri, May 06, 2022 at 11:44:23PM +0300, Kirill A. Shutemov wrote:
    > > > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
    > > > index 7021ec725dd3..e4c31dbea6d7 100644
    > > > --- a/arch/x86/Kconfig
    > > > +++ b/arch/x86/Kconfig
    > > > @@ -885,6 +885,7 @@ config INTEL_TDX_GUEST
    > > > select ARCH_HAS_CC_PLATFORM
    > > > select X86_MEM_ENCRYPT
    > > > select X86_MCE
    > > > + select UNACCEPTED_MEMORY
    > >
    > > WARNING: unmet direct dependencies detected for UNACCEPTED_MEMORY
    > > Depends on [n]: EFI [=y] && EFI_STUB [=y] && !KEXEC_CORE [=y]
    > > Selected by [y]:
    > > - INTEL_TDX_GUEST [=y] && HYPERVISOR_GUEST [=y] && X86_64 [=y] && CPU_SUP_INTEL [=y] && X86_X2APIC [=y]
    > >
    > > WARNING: unmet direct dependencies detected for UNACCEPTED_MEMORY
    > > Depends on [n]: EFI [=y] && EFI_STUB [=y] && !KEXEC_CORE [=y]
    > > Selected by [y]:
    > > - INTEL_TDX_GUEST [=y] && HYPERVISOR_GUEST [=y] && X86_64 [=y] && CPU_SUP_INTEL [=y] && X86_X2APIC [=y]
    >
    > Ughh. Any ideas how to get around it? (Except for implementing kexec
    > support right away?)

    I reworked this to boot-time kexec disable.


    > > Also, it doesn't need to be bool - you can simply return accept_size on
    > > success and 0 on error so that you don't have an I/O argument.
    >
    > So on the calling side it would look like:
    >
    > accepted = try_accept_one(start, len, PG_LEVEL_1G)
    > if (accepted) {
    > start += accepted;
    > continue;
    > }
    >
    > And the similar for other levels. Is it really better?

    JFYI, I've reworked it as

    accepted = try_accept_one(start, len, PG_LEVEL_1G);
    if (!accepted)
    accepted = try_accept_one(start, len, PG_LEVEL_2M);
    if (!accepted)
    accepted = try_accept_one(start, len, PG_LEVEL_4K);
    if (!accepted)
    return false;
    start += accepted;

    looks good to me.

    --
    Kirill A. Shutemov

    \
     
     \ /
      Last update: 2022-05-11 03:18    [W:2.406 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site