From: Gavin Shan <gshan@redhat.com>
To: Jonathan Cameron <jonathan.cameron@huawei.com>,
Igor Mammedov <imammedo@redhat.com>
Cc: qemu-arm@nongnu.org, qemu-devel@nongnu.org, mst@redhat.com,
anisinha@redhat.com, gengdongjiu1@gmail.com,
peter.maydell@linaro.org, pbonzini@redhat.com,
mchehab+huawei@kernel.org, shan.gavin@gmail.com
Subject: Re: [PATCH RESEND v2 3/3] target/arm/kvm: Support multiple memory CPERs injection
Date: Wed, 5 Nov 2025 10:40:10 +1000 [thread overview]
Message-ID: <a4960b41-dd92-408f-a5e8-620b35be212b@redhat.com> (raw)
In-Reply-To: <20251104122151.00006feb@huawei.com>
Hi Jonathan and Igor,
On 11/4/25 10:21 PM, Jonathan Cameron wrote:
> On Mon, 3 Nov 2025 10:52:16 +0100
> Igor Mammedov <imammedo@redhat.com> wrote:
>
[...]
>> My idea using per cpu source is just a speculation based on spec
>> on how workaround the problem,
>> I don't really know if guest OS will be able to handle it (aka,
>> need to be tested is it's viable). That also probably was a reason
>> in previous review, why should've waited for multiple sources
>> support be be merged first before this series.
>
> Per vCPU should work fine but I do like the approach here of reporting
> all the related errors in one go as they represent the underlying nature
> of the error granularity tracking. If anyone ever poisons at the 1GiB level
> on the host they are on their own - so I think that it will only ever be
> the finest granularity supported (so worse case 64KiB).
>
Well, I don't have strong opinions, but I intend to agree with Jonathan
to report all 16x errors at once. One reason is one as Jonathan mentioned.
Another reason is per vCPU error source is a bit heavy for the improvement.
So I'm going to improve (v2) series to address all received comments and
post a (v3) series.
I already had the prototype of error source per vcpu, which works fine for
64KB-host-4KB-guest. However, it doesn't work for huge pages. For example,
a problematic 512MB huge page can cause heavy memory error storm to QEMU
where we absolutely can't handle.
1. Start the VM with hugetlb pages
/home/gavin/sandbox/qemu.main/build/qemu-system-aarch64 \
-accel kvm -machine virt,gic-version=host,nvdimm=on,ras=on \
-cpu host -smp maxcpus=8,cpus=8,sockets=2,clusters=2,cores=2,threads=1 \
-m 4096M,slots=16,maxmem=128G \
-object memory-backend-file,id=mem0,prealloc=on,mem-path=/dev/hugepages-524288kB,size=4096M \
-numa node,nodeid=0,cpus=0-7,memdev=mem0 \
2. Run 'victim -d' on guest
guest$ ./victim -d
physical address of (0xffff889d6000) = 0x11a7da000
Hit any key to trigger error:
3. Inject error from host
host$ errinjct 0x11a7da000
4. QEMU crashes with error message "Bus error (core dumped)", which is triggered
the following path.
sigbus_handler
kvm_on_sigbus_vcpu // have_sigbus_pending = 1
sigbus_reraise
Thanks,
Gavin
next prev parent reply other threads:[~2025-11-05 0:41 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-07 6:08 [PATCH RESEND v2 0/3] target/arm/kvm: Improve memory error handling Gavin Shan
2025-10-07 6:08 ` [PATCH RESEND v2 1/3] acpi/ghes: Extend acpi_ghes_memory_errors() to support multiple CPERs Gavin Shan
2025-10-31 9:58 ` Jonathan Cameron via
2025-10-31 10:08 ` Jonathan Cameron via
2025-11-02 22:45 ` Gavin Shan
2025-10-31 13:17 ` Igor Mammedov
2025-11-02 22:51 ` Gavin Shan
2025-10-07 6:08 ` [PATCH RESEND v2 2/3] kvm/arm/kvm: Introduce helper push_ghes_memory_errors() Gavin Shan
2025-10-31 10:09 ` Jonathan Cameron via
2025-11-02 23:39 ` Gavin Shan
2025-11-03 9:45 ` Igor Mammedov
2025-10-31 13:25 ` Igor Mammedov
2025-11-02 23:35 ` Gavin Shan
2025-10-07 6:08 ` [PATCH RESEND v2 3/3] target/arm/kvm: Support multiple memory CPERs injection Gavin Shan
2025-10-07 10:57 ` Mauro Carvalho Chehab
2025-10-08 3:57 ` Gavin Shan
2025-10-17 14:27 ` Igor Mammedov
2025-10-19 0:36 ` Gavin Shan
2025-10-31 13:55 ` Igor Mammedov
2025-11-02 23:02 ` Gavin Shan
2025-11-03 9:52 ` Igor Mammedov
2025-11-03 23:51 ` Gavin Shan
2025-11-06 7:57 ` Igor Mammedov
2025-11-06 21:43 ` Gavin Shan
2025-11-04 12:21 ` Jonathan Cameron via
2025-11-05 0:40 ` Gavin Shan [this message]
2025-11-05 9:02 ` Jonathan Cameron via
2025-11-07 5:11 ` Gavin Shan
2025-10-31 10:10 ` Jonathan Cameron via
2025-11-02 23:03 ` Gavin Shan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a4960b41-dd92-408f-a5e8-620b35be212b@redhat.com \
--to=gshan@redhat.com \
--cc=anisinha@redhat.com \
--cc=gengdongjiu1@gmail.com \
--cc=imammedo@redhat.com \
--cc=jonathan.cameron@huawei.com \
--cc=mchehab+huawei@kernel.org \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=shan.gavin@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).