Kexec Archive on lore.kernel.org
 help / color / mirror / Atom feed
  • [parent not found: <20240325103911.2651793-7-kirill.shutemov@linux.intel.com>]
  • [parent not found: <20240325103911.2651793-11-kirill.shutemov@linux.intel.com>]
  • [parent not found: <20240325103911.2651793-18-kirill.shutemov@linux.intel.com>]
  • [parent not found: <20240325103911.2651793-6-kirill.shutemov@linux.intel.com>]
  • [parent not found: <20240325103911.2651793-10-kirill.shutemov@linux.intel.com>]
  • * Re: [PATCHv9 00/17] x86/tdx: Add kexec support
           [not found] <20240325103911.2651793-1-kirill.shutemov@linux.intel.com>
                       ` (5 preceding siblings ...)
           [not found] ` <20240325103911.2651793-10-kirill.shutemov@linux.intel.com>
    @ 2024-04-04 18:27 ` Kalra, Ashish
      2024-04-07 15:55   ` Kirill A. Shutemov
      2024-04-04 23:10 ` [PATCH v3 0/4] x86/snp: " Ashish Kalra
      7 siblings, 1 reply; 29+ messages in thread
    From: Kalra, Ashish @ 2024-04-04 18:27 UTC (permalink / raw)
      To: Kirill A. Shutemov, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
    	Dave Hansen, x86
      Cc: Rafael J. Wysocki, Peter Zijlstra, Adrian Hunter,
    	Kuppuswamy Sathyanarayanan, Elena Reshetova, Jun Nakajima,
    	Rick Edgecombe, Tom Lendacky, Sean Christopherson, Huang, Kai,
    	Baoquan He, kexec, linux-coco, linux-kernel
    
    Hi Kirill,
    
    On 3/25/2024 5:38 AM, Kirill A. Shutemov wrote:
    > The patchset adds bits and pieces to get kexec (and crashkernel) work on
    > TDX guest.
    >
    > The last patch implements CPU offlining according to the approved ACPI
    > spec change poposal[1]. It unlocks kexec with all CPUs visible in the target
    > kernel. It requires BIOS-side enabling. If it missing we fallback to booting
    > 2nd kernel with single CPU.
    >
    > Please review. I would be glad for any feedback.
    >
    > [1] https://lore.kernel.org/all/13356251.uLZWGnKmhe@kreacher
    >
    > v9:
    >    - Rebased;
    >    - Keep page tables that maps E820_TYPE_ACPI (Ashish);
    >    - Ack/Reviewed/Tested-bys from Sathya, Kai, Tao;
    >    - Minor printk() message adjustments;
    > v8:
    >    - Rework serialization of around conversion memory back to private;
    >    - Print ACPI_MADT_TYPE_MULTIPROC_WAKEUP in acpi_table_print_madt_entry();
    >    - Drop debugfs interface to dump info on shared memory;
    >    - Adjust comments and commit messages;
    >    - Reviewed-bys by Baoquan, Dave and Thomas;
    > v7:
    >    - Call enc_kexec_stop_conversion() and enc_kexec_unshare_mem() after shutting
    >      down IO-APIC, lapic and hpet. It meets AMD requirements.
    >    - Minor style changes;
    >    - Add Acked/Reviewed-bys;
    > v6:
    >    - Rebased to v6.8-rc1;
    >    - Provide default noop callbacks from .enc_kexec_stop_conversion and
    >      .enc_kexec_unshare_mem;
    >    - Split off patch that introduces .enc_kexec_* callbacks;
    >    - asm_acpi_mp_play_dead(): program CR3 directly from RSI, no MOV to RAX
    >      required;
    >    - Restructure how smp_ops.stop_this_cpu() hooked up in crash_nmi_callback();
    >    - kvmclock patch got merged via KVM tree;
    > v5:
    >    - Rename smp_ops.crash_play_dead to smp_ops.stop_this_cpu and use it in
    >      stop_this_cpu();
    >    - Split off enc_kexec_stop_conversion() from enc_kexec_unshare_mem();
    >    - Introduce kernel_ident_mapping_free();
    >    - Add explicit include for alternatives and stringify.
    >    - Add barrier() after setting conversion_allowed to false;
    >    - Mark cpu_hotplug_offline_disabled __ro_after_init;
    >    - Print error if failed to hand over CPU to BIOS;
    >    - Update comments and commit messages;
    > v4:
    >    - Fix build for !KEXEC_CORE;
    >    - Cleaner ATLERNATIVE use;
    >    - Update commit messages and comments;
    >    - Add Reviewed-bys;
    > v3:
    >    - Rework acpi_mp_crash_stop_other_cpus() to avoid invoking hotplug state
    >      machine;
    >    - Free page tables if reset vector setup failed;
    >    - Change asm_acpi_mp_play_dead() to pass reset vector and PGD as arguments;
    >    - Mark acpi_mp_* variables as static and __ro_after_init;
    >    - Use u32 for apicid;
    >    - Disable CPU offlining if reset vector setup failed;
    >    - Rename madt.S -> madt_playdead.S;
    >    - Mark tdx_kexec_unshare_mem() as static;
    >    - Rebase onto up-to-date tip/master;
    >    - Whitespace fixes;
    >    - Reorder patches;
    >    - Add Reviewed-bys;
    >    - Update comments and commit messages;
    > v2:
    >    - Rework how unsharing hook ups into kexec codepath;
    >    - Rework kvmclock_disable() fix based on Sean's;
    >    - s/cpu_hotplug_not_supported()/cpu_hotplug_disable_offlining()/;
    >    - use play_dead_common() to implement acpi_mp_play_dead();
    >    - cond_resched() in tdx_shared_memory_show();
    >    - s/target kernel/second kernel/;
    >    - Update commit messages and comments;
    >
    > Kirill A. Shutemov (17):
    >    x86/acpi: Extract ACPI MADT wakeup code into a separate file
    >    x86/apic: Mark acpi_mp_wake_* variables as __ro_after_init
    >    cpu/hotplug: Add support for declaring CPU offlining not supported
    >    cpu/hotplug, x86/acpi: Disable CPU offlining for ACPI MADT wakeup
    >    x86/kexec: Keep CR4.MCE set during kexec for TDX guest
    >    x86/mm: Make x86_platform.guest.enc_status_change_*() return errno
    >    x86/mm: Return correct level from lookup_address() if pte is none
    >    x86/tdx: Account shared memory
    >    x86/mm: Adding callbacks to prepare encrypted memory for kexec
    >    x86/tdx: Convert shared memory back to private on kexec
    >    x86/mm: Make e820_end_ram_pfn() cover E820_TYPE_ACPI ranges
    >    x86/acpi: Rename fields in acpi_madt_multiproc_wakeup structure
    >    x86/acpi: Do not attempt to bring up secondary CPUs in kexec case
    >    x86/smp: Add smp_ops.stop_this_cpu() callback
    >    x86/mm: Introduce kernel_ident_mapping_free()
    >    x86/acpi: Add support for CPU offlining for ACPI MADT wakeup method
    >    ACPI: tables: Print MULTIPROC_WAKEUP when MADT is parsed
    >
    >   arch/x86/Kconfig                     |   7 +
    >   arch/x86/coco/core.c                 |   1 -
    >   arch/x86/coco/tdx/tdx.c              |  99 ++++++++-
    >   arch/x86/hyperv/ivm.c                |   9 +-
    >   arch/x86/include/asm/acpi.h          |   7 +
    >   arch/x86/include/asm/init.h          |   3 +
    >   arch/x86/include/asm/pgtable.h       |   5 +
    >   arch/x86/include/asm/pgtable_types.h |   1 +
    >   arch/x86/include/asm/set_memory.h    |   3 +
    >   arch/x86/include/asm/smp.h           |   1 +
    >   arch/x86/include/asm/x86_init.h      |   6 +-
    >   arch/x86/kernel/acpi/Makefile        |  11 +-
    >   arch/x86/kernel/acpi/boot.c          |  86 +-------
    >   arch/x86/kernel/acpi/madt_playdead.S |  28 +++
    >   arch/x86/kernel/acpi/madt_wakeup.c   | 292 +++++++++++++++++++++++++++
    >   arch/x86/kernel/crash.c              |   6 +
    >   arch/x86/kernel/e820.c               |   9 +-
    >   arch/x86/kernel/process.c            |   7 +
    >   arch/x86/kernel/reboot.c             |  18 ++
    >   arch/x86/kernel/relocate_kernel_64.S |   5 +
    >   arch/x86/kernel/x86_init.c           |   8 +-
    >   arch/x86/mm/ident_map.c              |  73 +++++++
    >   arch/x86/mm/mem_encrypt_amd.c        |   8 +-
    >   arch/x86/mm/pat/set_memory.c         |  59 ++++--
    >   drivers/acpi/tables.c                |  14 ++
    >   include/acpi/actbl2.h                |  19 +-
    >   include/linux/cc_platform.h          |  10 -
    >   include/linux/cpu.h                  |   2 +
    >   kernel/cpu.c                         |  12 +-
    >   29 files changed, 663 insertions(+), 146 deletions(-)
    >   create mode 100644 arch/x86/kernel/acpi/madt_playdead.S
    >   create mode 100644 arch/x86/kernel/acpi/madt_wakeup.c
    
    The cover letter mention the inclusion of the following patch - Keep 
    page tables that maps E820_TYPE_ACPI (Ashish)
    
    But i don't this patch included in your patch-set.
    
    Thanks, Ashish
    
    
    _______________________________________________
    kexec mailing list
    kexec@lists.infradead.org
    http://lists.infradead.org/mailman/listinfo/kexec
    
    ^ permalink raw reply	[flat|nested] 29+ messages in thread
  • * [PATCH v3 0/4] x86/snp: Add kexec support
           [not found] <20240325103911.2651793-1-kirill.shutemov@linux.intel.com>
                       ` (6 preceding siblings ...)
      2024-04-04 18:27 ` [PATCHv9 00/17] x86/tdx: Add kexec support Kalra, Ashish
    @ 2024-04-04 23:10 ` Ashish Kalra
      2024-04-04 23:11   ` [PATCH v3 1/4] efi/x86: skip efi_arch_mem_reserve() in case of kexec Ashish Kalra
                         ` (3 more replies)
      7 siblings, 4 replies; 29+ messages in thread
    From: Ashish Kalra @ 2024-04-04 23:10 UTC (permalink / raw)
      To: tglx, mingo, bp, dave.hansen, x86
      Cc: rafael, peterz, adrian.hunter, sathyanarayanan.kuppuswamy,
    	jun.nakajima, rick.p.edgecombe, thomas.lendacky, michael.roth,
    	seanjc, kai.huang, bhe, kirill.shutemov, bdas, vkuznets,
    	dionnaglaze, anisinha, jroedel, ardb, kexec, linux-coco,
    	linux-kernel
    
    From: Ashish Kalra <ashish.kalra@amd.com>
    
    The patchset adds bits and pieces to get kexec (and crashkernel) work on
    SNP guest.
    
    v3:
    - Rebased;
    - moved Keep page tables that maps E820_TYPE_ACPI patch to Kirill's tdx
      guest kexec patch series.
    - checking the md attribute instead of checking the efi_setup for
      detecting if running under kexec kernel.
    - added new sev_es_enabled() function.
    - skip video memory access in decompressor for SEV-ES/SNP systems to 
      prevent guest termination as boot stage2 #VC handler does not handle
      MMIO.
    
    v2:
    - address zeroing of unaccepted memory table mappings at all page table levels
      adding phys_pte_init(), phys_pud_init() and phys_p4d_init().
    - include skip efi_arch_mem_reserve() in case of kexec as part of this 
      patch set.
    - rename last_address_shd_kexec to a more appropriate 
      kexec_last_address_to_make_private.
    - remove duplicate code shared with TDX and use common interfaces
      defined for SNP and TDX for kexec/kdump.
    - remove set_pte_enc() dependency on pg_level_to_pfn() and make the 
      function simpler.
    - rename unshare_pte() to make_pte_private().
    - clarify and make the comment for using kexec_last_address_to_make_private  
      more understandable.
    - general cleanup. 
    
    Ashish Kalra (4):
      efi/x86: skip efi_arch_mem_reserve() in case of kexec.
      x86/sev: add sev_es_enabled() function.
      x86/boot/compressed: Skip Video Memory access in Decompressor for
        SEV-ES/SNP.
      x86/snp: Convert shared memory back to private on kexec
    
     arch/x86/boot/compressed/misc.c   |   6 +-
     arch/x86/boot/compressed/misc.h   |   1 +
     arch/x86/boot/compressed/sev.c    |   5 +
     arch/x86/boot/compressed/sev.h    |   2 +
     arch/x86/include/asm/probe_roms.h |   1 +
     arch/x86/include/asm/sev.h        |   4 +
     arch/x86/kernel/probe_roms.c      |  16 +++
     arch/x86/kernel/sev.c             | 169 ++++++++++++++++++++++++++++++
     arch/x86/mm/mem_encrypt_amd.c     |   3 +
     arch/x86/platform/efi/quirks.c    |  23 +++-
     10 files changed, 225 insertions(+), 5 deletions(-)
    
    -- 
    2.34.1
    
    
    _______________________________________________
    kexec mailing list
    kexec@lists.infradead.org
    http://lists.infradead.org/mailman/listinfo/kexec
    
    ^ permalink raw reply	[flat|nested] 29+ messages in thread

  • end of thread, other threads:[~2025-03-17 11:59 UTC | newest]
    
    Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <20240325103911.2651793-1-kirill.shutemov@linux.intel.com>
         [not found] ` <20240325103911.2651793-9-kirill.shutemov@linux.intel.com>
    2024-03-25 15:43   ` [PATCHv9 08/17] x86/tdx: Account shared memory Kuppuswamy Sathyanarayanan
    2024-03-26 10:30   ` Huang, Kai
         [not found] ` <20240325103911.2651793-7-kirill.shutemov@linux.intel.com>
    2024-03-26 10:30   ` [PATCHv9 06/17] x86/mm: Make x86_platform.guest.enc_status_change_*() return errno Huang, Kai
         [not found] ` <20240325103911.2651793-11-kirill.shutemov@linux.intel.com>
    2024-03-26 10:31   ` [PATCHv9 10/17] x86/tdx: Convert shared memory back to private on kexec Huang, Kai
         [not found] ` <20240325103911.2651793-18-kirill.shutemov@linux.intel.com>
    2024-03-26 10:32   ` [PATCHv9 17/17] ACPI: tables: Print MULTIPROC_WAKEUP when MADT is parsed Huang, Kai
    2024-03-26 17:53   ` Kuppuswamy Sathyanarayanan
         [not found] ` <20240325103911.2651793-6-kirill.shutemov@linux.intel.com>
    2024-03-29 15:21   ` [PATCHv9 05/17] x86/kexec: Keep CR4.MCE set during kexec for TDX guest Xiaoyao Li
    2024-03-29 16:48     ` Kirill A. Shutemov
    2024-04-02 15:42       ` Kirill A. Shutemov
    2024-04-03 21:40         ` Huang, Kai
    2024-04-04  9:32           ` Kirill A. Shutemov
    2025-03-17  9:27             ` David Woodhouse
    2025-03-17 11:03               ` Kirill A. Shutemov
    2025-03-17 11:32                 ` David Woodhouse
    2025-03-17 11:59                   ` Kirill A. Shutemov
         [not found] ` <20240325103911.2651793-10-kirill.shutemov@linux.intel.com>
    2024-04-03 22:33   ` [PATCHv9 09/17] x86/mm: Adding callbacks to prepare encrypted memory for kexec Huang, Kai
    2024-04-04 18:27 ` [PATCHv9 00/17] x86/tdx: Add kexec support Kalra, Ashish
    2024-04-07 15:55   ` Kirill A. Shutemov
    2024-04-04 23:10 ` [PATCH v3 0/4] x86/snp: " Ashish Kalra
    2024-04-04 23:11   ` [PATCH v3 1/4] efi/x86: skip efi_arch_mem_reserve() in case of kexec Ashish Kalra
    2024-04-05 17:02     ` Kuppuswamy Sathyanarayanan
    2024-04-04 23:11   ` [PATCH v3 2/4] x86/sev: add sev_es_enabled() function Ashish Kalra
    2024-04-05 17:03     ` Kuppuswamy Sathyanarayanan
    2024-04-04 23:11   ` [PATCH v3 3/4] x86/boot/compressed: Skip Video Memory access in Decompressor for SEV-ES/SNP Ashish Kalra
    2024-04-05 17:05     ` Kuppuswamy Sathyanarayanan
    2024-04-04 23:11   ` [PATCH v3 4/4] x86/snp: Convert shared memory back to private on kexec Ashish Kalra
    2024-04-05 11:30     ` kernel test robot
    2024-04-05 11:34     ` kernel test robot
    2024-04-05 11:36     ` kernel test robot
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox