[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [PATCH RFC V3 00/29] Support of Virtual CPU Hotplug for ARMv8 Arch
|
From: |
Salil Mehta |
|
Subject: |
RE: [PATCH RFC V3 00/29] Support of Virtual CPU Hotplug for ARMv8 Arch |
|
Date: |
Thu, 8 Aug 2024 08:39:17 +0000 |
Hi Gavin,
> From: Gavin Shan <gshan@redhat.com>
> Sent: Thursday, August 8, 2024 5:15 AM
> To: Salil Mehta <salil.mehta@huawei.com>; qemu-devel@nongnu.org;
> qemu-arm@nongnu.org; mst@redhat.com
>
> Hi Salil,
>
> On 8/8/24 10:29 AM, Gavin Shan wrote:
> > On 8/8/24 9:48 AM, Salil Mehta wrote:
> >
> > However, I'm unable to hot-add a vCPU and haven't get a chance to look
> > at it closely.
> >
> > (qemu) device_add host-arm-cpu,id=cpu,socket-id=1
> > (qemu) [ 258.901027] Unable to handle kernel write to read-only
> > memory at virtual address ffff800080fa7190 [ 258.901686] Mem abort info:
> > [ 258.901889] ESR = 0x000000009600004e [ 258.902160] EC = 0x25:
> > DABT (current EL), IL = 32 bits [ 258.902543] SET = 0, FnV = 0 [
> > 258.902763] EA = 0, S1PTW = 0 [ 258.902991] FSC = 0x0e: level 2
> > permission fault [ 258.903338] Data abort info:
> > [ 258.903547] ISV = 0, ISS = 0x0000004e, ISS2 = 0x00000000 [
> > 258.903943] CM = 0, WnR = 1, TnD = 0, TagAccess = 0 [ 258.904304]
> > GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [ 258.904687] swapper
> > pgtable: 4k pages, 48-bit VAs, pgdp=00000000b8e24000 [ 258.905258]
> > [ffff800080fa7190] pgd=10000000b95b0003, p4d=10000000b95b0003,
> > pud=10000000b95b1003, pmd=00600000b8c00781 [ 258.906026] Internal
> > error: Oops: 000000009600004e [#1] PREEMPT SMP [ 258.906474] Modules
> linked in:
> > [ 258.906705] CPU: 0 UID: 0 PID: 29 Comm: kworker/u8:1 Not tainted
> > 6.11.0-rc2-gavin-gb446a2dae984 #7 [ 258.907338] Hardware name: QEMU
> > KVM Virtual Machine, BIOS edk2-stable202402-prebuilt.qemu.org
> > 02/14/2024 [ 258.908009] Workqueue: kacpi_hotplug
> > acpi_hotplug_work_fn [ 258.908401] pstate: 63400005 (nZCv daif +PAN
> > -UAO +TCO +DIT -SSBS BTYPE=--) [ 258.908899] pc :
> > register_cpu+0x140/0x290 [ 258.909195] lr : register_cpu+0x128/0x290
> > [ 258.909487] sp : ffff8000817fba10 [ 258.909727] x29:
> > ffff8000817fba10 x28: 0000000000000000 x27: ffff0000011f9098 [
> > 258.910246] x26: ffff80008167b1b0 x25: 0000000000000001 x24:
> > ffff80008153dad0 [ 258.910762] x23: 0000000000000001 x22:
> > ffff0000ff7de210 x21: ffff8000811b9a00 [ 258.911279] x20:
> > 0000000000000000 x19: ffff800080fa7190 x18: ffffffffffffffff [
> > 258.911798] x17: 0000000000000000 x16: 0000000000000000 x15:
> > ffff000005a46a1c [ 258.912326] x14: ffffffffffffffff x13:
> > ffff000005a4632b x12: 0000000000000000 [ 258.912854] x11:
> > 0000000000000040 x10: 0000000000000000 x9 : ffff8000808a6cd4 [
> > 258.913382] x8 : 0101010101010101 x7 : 7f7f7f7f7f7f7f7f x6 :
> fefefefefefefeff [ 258.913906] x5 : ffff0000053fab40 x4 : ffff0000053fa920
> x3
> : ffff0000053fabb0 [ 258.914439] x2 : ffff000000de1100 x1 : ffff800080fa7190
> x0 : 0000000000000002 [ 258.914968] Call trace:
> > [ 258.915154] register_cpu+0x140/0x290 [ 258.915429]
> > arch_register_cpu+0x84/0xd8 [ 258.915726]
> > acpi_processor_add+0x480/0x5b0 [ 258.916042]
> > acpi_bus_attach+0x1c4/0x300 [ 258.916334]
> > acpi_dev_for_one_check+0x3c/0x50 [ 258.916689]
> > device_for_each_child+0x68/0xc8 [ 258.917012]
> > acpi_dev_for_each_child+0x48/0x80 [ 258.917344]
> > acpi_bus_attach+0x84/0x300 [ 258.917629] acpi_bus_scan+0x74/0x220 [
> > 258.917902] acpi_scan_rescan_bus+0x54/0x88 [ 258.918211]
> > acpi_device_hotplug+0x208/0x478 [ 258.918529]
> > acpi_hotplug_work_fn+0x2c/0x50 [ 258.918839]
> > process_one_work+0x15c/0x3c0
> [ 258.919139] worker_thread+0x2ec/0x400
> > [ 258.919417] kthread+0x120/0x130 [ 258.919658]
> > ret_from_fork+0x10/0x20 [ 258.919924] Code: 91064021 9ad72000
> > 8b130c33 d503201f (f820327f) [ 258.920373] ---[ end trace
> > 0000000000000000 ]---
> >
>
> The fix [1] is needed by the guest kernel. With this, I'm able to hot add
> vCPU
> and hot remove vCPU successfully.
>
> [1] https://lkml.org/lkml/2024/8/8/155
Good catch in the kernel. And many thanks for fixing as well.
>
> Thanks,
> Gavin
>