1d7a65 kdump-lib.sh: add extra 64M to default crashkernel if sme/sev is active

Authored and Committed by Baoquan He a year ago
1 file changed. 8 lines added. 3 lines removed.
    kdump-lib.sh: add extra 64M to default crashkernel if sme/sev is active
    
    Resolves: https://issues.redhat.com/browse/RHEL-8727
    Resolves: https://issues.redhat.com/browse/RHEL-8710
    Upstream: Fedora
    Conflict: The 1st hunk is merged manualy because of conflict caused
              by context.
    
    commit 4841bc6a6dfe4d09640322f6703f60dbfe9f6f19
    Author: Baoquan He <bhe@redhat.com>
    Date:   Thu Sep 21 18:01:02 2023 +0800
    
        kdump-lib.sh: add extra 64M to default crashkernel if sme/sev is active
    
        It's reported that kdump kernel failed to boot and can't dump vmcore
        when crashkernel=192M and SME/SEV is active.
    
        This is because swiotlb will be enabled and reserves 64M memory by
        default on system with SME/SEV enabled. Then kdump kernel will be out of
        memory after taking 64M away for swiotlb init.
    
        So here add extra 64M memory to default crashkernel value so that kdump
        kernel can function well as before. When doing that, search journalctl
        for the "Memory Encryption Features active: AMD" to check if SME or SEV
        is active. This line of log is printed out in kernel function as below
        and the type SME is mutual exclusive with type SEV.
          ***:
          arch/x86/mm/mem_encrypt.c:print_mem_encrypt_feature_info()
    
        Note:
        1) The conditional check is relying on journalctl log because I didn't
           find available system interface to check if SEV is active. Even
           though we can check if SME is active via /proc/cpuinfo. For
           consistency, I take the same check for both SME and SEV by searching
           journalctl.
    
        2) The conditional check is relying on journalctl log, means it won't
           work for crashkernel setting in anoconda because the installation
           kernel doesn't have the SME/SEV setting. So customer need manually
           run 'kdumpctl reset-crashkernel' to reset crashkernel to add the
           extra 64M after OS installation.
    
        3) We need watch the line of log printing in
           print_mem_encrypt_feature_info() in kernel just in case people may
           change it in the future.
    
        Signed-off-by: Baoquan He <bhe@redhat.com>
        Reviewed-by: Philipp Rudo <prudo@redhat.com>
    Signed-off-by: Baoquan He <bhe@redhat.com>
    
        
file modified
+8 -3