qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PING: [PATCH] KVM: HWPoison: Fix memory address&size during remap


From: Eiichi Tsukata
Subject: Re: PING: [PATCH] KVM: HWPoison: Fix memory address&size during remap
Date: Thu, 4 Aug 2022 06:59:42 +0000

Hi 

We’ve also hit this case.

> On May 5, 2022, at 9:32, zhenwei pi <pizhenwei@bytedance.com> wrote:
> 
> Hi, Paolo
> 
> I would appreciate it if you could review patch.
> 
> On 4/20/22 14:45, zhenwei pi wrote:
>> qemu exits during reset with log:
>> qemu-system-x86_64: Could not remap addr: 1000@22001000
>> Currently, after MCE on RAM of a guest, qemu records a ram_addr only,
>> remaps this address with a fixed size(TARGET_PAGE_SIZE) during reset.
>> In the hugetlbfs scenario, mmap(addr...) needs page_size aligned
>> address and correct size. Unaligned address leads mmap to fail.

As far as I checked, SIGBUS sent from memory_failure() due to PR_MCE_KILL_EARLY 
has aligned address
in siginfo. But SIGBUS sent from kvm_mmu_page_fault() has unaligned address. 
This happens only when Guest touches
poisoned pages before they get remapped. This is not a usual case but it can 
sometimes happen.

FYI: call path
       CPU 1/KVM-328915  [005] d..1. 711765.805910: signal_generate: sig=7 
errno=0 code=4 comm=CPU 1/KVM pid=328915 grp=0 res=0
       CPU 1/KVM-328915  [005] d..1. 711765.805915: <stack trace>
 => trace_event_raw_event_signal_generate
 => __send_signal
 => do_send_sig_info
 => send_sig_mceerr
 => handle_abnormal_pfn
 => direct_page_fault
 => kvm_mmu_page_fault
 => kvm_arch_vcpu_ioctl_run
 => kvm_vcpu_ioctl
 => __x64_sys_ioctl
 => do_syscall_64


In addition, aligning length suppresses the following madvise error message in 
qemu_ram_setup_dump():

  qemu_madvise: Invalid argument
  madvise doesn't support MADV_DONTDUMP, but dump_guest_core=off specified


Thanks

Eiichi

reply via email to

[Prev in Thread] Current Thread [Next in Thread]