Hi, All
As the Bigtop community now agrees to accept OpenEuler as a new
distribution, let's have this meeting to plan what we can do next.
Time: 10am - 10:50am (China Standard Time - Shanghai)
Date: Wed May 17, 2023
Where: https://linaro-org.zoom.us/j/94115445597
Attached is the meeting details.
Thank you.
Best regards,
Guodong Xu
Hello everybody,
I know that this mailing list has been mainly used for kernel
discussions lately, but we are starting a new Linaro open discussion
series of meetings focused on Databases on Arm and I just would like to
warn everybody that we might use this list for some of the discussions
from that series of meetings as well, as this mailing list has been the
central point for open discussions at Linaro.
Our rationale was that this mailing list has low traffic and that it
will be quite easy to differentiate the topics in the e-mails. I will
also request for anyone sending e-mails related to databases to start
their subject with [databases] so that we can easily identify the
e-mails.
If anyone here thinks that might become a problem, just let me know and
we will arrange a different way for communication.
Cheers,
Leo
Hi Salil,
(replying to an off-list email from Salil...)
You suggested proposing a talk on the hotplug stuff for kvm forum, yes we can co-present
it, but we'll need to discuss it here. Let me know if you plan to submit this today, or I
need to do it. I finish work at roughly 6pm UK time.
For a title I suggest: "Supporting hotplug on architectures that don't".
I had a stab at the abstract before you wrote yours:
vCPU hotplug is used by orchestration managers to pre-create VMs, and scale them correctly
when a workload is deployed. Architecture support for adding CPUs to an existing system is
complex, and not feasible to standardise without hardware.
This talk covers the use-cases, difficulties, and a proposed way of supporting this on
architectures that lack physical CPU hotplug.
Comparing it to what you've written.
I'm not sure the abstract needs any technical details. We can mention the history in the
talk, but I don't think its useful to dwell on it.
We'll need to come up with slides, my suggested outline is something like:
* The x86 history: CPU hotplug being supported before virtualisation.
* Why vCPU hotplug is used for on x86 (kata containers, kubernetes, cloud orchestration)
* Why that ACPI mechanism wouldn't work for arm64: we can't support hotplug virtualisation
without real hardware. (not future proof)
* What the actual requirements are.
* Changes to PSCI and arm64-linux to support all this in a future proof way.
* How physical CPU hotplug would work at the same time
[* Slides on the Qemu details and complexities.]
Something to be aware is of is that arm want a clear split in the presentation between the
kernel side of it, and your Qemu work.
Thanks,
James
Dear all,
I am writing to invite you to a public call on Wednesday, 29/Mar/2023, from
10:00 to 10:50 AM (GMT+8) to discuss Bigtop and OpenEuler support. The
purpose of this call is to share updates and gather feedback on our efforts
to support these technologies.
This call is open to anyone who is interested in these topics, so please
feel free to forward this invitation to your colleagues and networks.
To join the call, please use the following details:
Date: 29/Mar/2023
Time: 10:00 to 10:50 AM (GMT+8)
Zoom Link: https://linaro-org.zoom.us/j/98826320072
We look forward to your participation and feedback.
Best regards,
Guodong Xu
PS: drafted by ChatGPT and reviewed by me. :)
Hi,
It's soon time for another LOC monthly meeting. For time and connection
details see the calendar at https://www.trustedfirmware.org/meetings/
If you have any topics you'd like to discuss, please let us know and
we can schedule them.
Thanks,
Jens
Ha :) I forgot to post that.
Wednesday, March 15⋅10:00 – 10:40am
On Wed, Mar 15, 2023 at 9:01 AM Kangkang Shen <kangkang.shen(a)futurewei.com>
wrote:
> When is the meeting?
>
> -----Original Message-----
> From: Guodong Xu via Linaro-open-discussions <
> linaro-open-discussions(a)op-lists.linaro.org>
> Sent: Tuesday, March 14, 2023 5:57 PM
> To: linaro-open-discussions <linaro-open-discussions(a)op-lists.linaro.org>
> Subject: [Linaro-open-discussions] Sync-up of OpenEuler / Bigtop progress
>
> Hi, All
>
> You are invited to join this meeting for an OpenEuler / Bigtop progress
> discussion.
>
> Guodong Xu is inviting you to a scheduled Zoom meeting.
>
> Join Zoom Meeting
>
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flinaro-or…
>
> Meeting ID: 947 2011 9602
> One tap mobile
> +16694449171,,94720119602# US
> +16699009128,,94720119602# US (San Jose)
>
> Dial by your location
> +1 669 444 9171 US
> +1 669 900 9128 US (San Jose)
> +1 346 248 7799 US (Houston)
> +1 719 359 4580 US
> +1 253 205 0468 US
>
>
> Thank you.
> BR,
> Guodong Xu
> Linaro
> --
> Linaro-open-discussions mailing list --
> linaro-open-discussions(a)op-lists.linaro.org
>
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcollabora…
>
Hi, All
You are invited to join this meeting for an OpenEuler / Bigtop progress
discussion.
Guodong Xu is inviting you to a scheduled Zoom meeting.
Join Zoom Meeting
https://linaro-org.zoom.us/j/94720119602
Meeting ID: 947 2011 9602
One tap mobile
+16694449171,,94720119602# US
+16699009128,,94720119602# US (San Jose)
Dial by your location
+1 669 444 9171 US
+1 669 900 9128 US (San Jose)
+1 346 248 7799 US (Houston)
+1 719 359 4580 US
+1 253 205 0468 US
Thank you.
BR,
Guodong Xu
Linaro
Hi James,
> > Qemu isn't responding with PSCI_DENIED when CPUs are forbidden. ('SUCCESS' means you
> > hit a 5 second timeout in the guest, on each CPU)
I have tested the straight forward case and it works.
Could you please elaborate on this so that I can look into the issue?
Thanks
Salil
Hi all,
Do we have any topic for next open discussion(Feb 28th)?
Thanks:)
Joyce
> 在 2023年2月24日,上午8:00,linaro-open-discussions-request@op-lists.linaro.org 写道:
>
> Send Linaro-open-discussions mailing list submissions to
> linaro-open-discussions(a)op-lists.linaro.org
>
> To subscribe or unsubscribe via email, send a message with subject or
> body 'help' to
> linaro-open-discussions-request(a)op-lists.linaro.org
>
> You can reach the person managing the list at
> linaro-open-discussions-owner(a)op-lists.linaro.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Linaro-open-discussions digest..."
>
> Today's Topics:
>
> 1. Re: [RFC PATCH v0.1 22/25] ACPI: add support to register CPUs based on the _STA enabled bit
> (Vishnu Pajjuri)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 23 Feb 2023 11:40:43 +0530
> From: Vishnu Pajjuri <vishnu(a)amperemail.onmicrosoft.com>
> Subject: [Linaro-open-discussions] Re: [RFC PATCH v0.1 22/25] ACPI:
> add support to register CPUs based on the _STA enabled bit
> To: James Morse <james.morse(a)arm.com>,
> linaro-open-discussions(a)op-lists.linaro.org
> Message-ID:
> <6010811b-6c26-ad52-2a15-f5a55972c108(a)amperemail.onmicrosoft.com>
> Content-Type: text/plain; charset=UTF-8; format=flowed
>
> Hi James/Salil,
>
> On 31-08-2022 16:39, James Morse wrote:
>> acpi_processor_get_info() registers all present CPUs. Registering a
>> CPU is what creates the sysfs entries and triggers the udev
>> notifications.
>>
>> arm64 virtual machines that support 'virtual cpu hotplug' use the
>> enabled bit to indicate whether the CPU can be brought online, as
>> the existing ACPI tables require all hardware to be described and
>> present.
>>
>> If firmware describes a CPU as present, but disabled, skip the
>> registration. Such CPUs are present, but can't be brought online for
>> whatever reason. (e.g. firmware/hypervisor policy).
>>
>> Once firmware sets the enabled bit, the CPU can be registered and
>> brought online by user-space. Online CPUs, or CPUs that are missing
>> an _STA method must always be registered.
>>
>> Signed-off-by: James Morse <james.morse(a)arm.com>
>> ---
>> drivers/acpi/acpi_processor.c | 31 ++++++++++++++++++++++++++++++-
>> 1 file changed, 30 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/acpi/acpi_processor.c b/drivers/acpi/acpi_processor.c
>> index 1bd6e4b8ab66..42521d89c378 100644
>> --- a/drivers/acpi/acpi_processor.c
>> +++ b/drivers/acpi/acpi_processor.c
>> @@ -194,6 +194,32 @@ static int acpi_processor_make_present(struct acpi_processor *pr)
>> return ret;
>> }
>>
>> +static int acpi_processor_make_enabled(struct acpi_processor *pr)
>> +{
>> + unsigned long long sta;
>> + acpi_status status;
>> + bool present, enabled;
>> +
>> + if (!acpi_has_method(pr->handle, "_STA"))
>> + return arch_register_cpu(pr->id);
>> +
>> + status = acpi_evaluate_integer(pr->handle, "_STA", NULL, &sta);
>> + if (ACPI_FAILURE(status))
>> + return -ENODEV;
>> +
>> + present = sta & ACPI_STA_DEVICE_PRESENT;
>> + enabled = sta & ACPI_STA_DEVICE_ENABLED;
>> +
>> + if (cpu_online(pr->id) && (!present || !enabled)) {
>> + pr_err_once(FW_BUG "CPU %u is online, but described as not present or disabled!\n", pr->id);
>> + add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
>> + } else if (!present || !enabled) {
>> + return -ENODEV;
>> + }
>> +
>> + return arch_register_cpu(pr->id);
>> +}
>> +
>> static int acpi_processor_get_info(struct acpi_device *device)
>> {
>> union acpi_object object = { 0 };
>> @@ -271,7 +297,7 @@ static int acpi_processor_get_info(struct acpi_device *device)
>> }
>>
>> if (!invalid_logical_cpuid(pr->id) && cpu_present(pr->id)) {
>> - int ret = arch_register_cpu(pr->id);
>> + int ret = acpi_processor_make_enabled(pr);
>>
>> if (ret)
>> return ret;
>> @@ -479,6 +505,9 @@ static void acpi_processor_remove(struct acpi_device *device)
>> acpi_processor_make_not_present(device);
>> return;
>> }
>> +
>> + if (cpu_present(pr->id) && !(sta & ACPI_STA_DEVICE_ENABLED))
>> + arch_unregister_cpu(pr->id);
>> }
>>
>> #ifdef CONFIG_X86
>
> Enumeration failure while trying to hot plug vcpus after guest reboot
>
> Following sequence of steps causes the issue
>
> 1. Boot VM with max 80 vcpus and current 72 vcpus(For example)
> 2. hot plug 3 more vcpus
> # virsh setvcpus vm2 75 --live
> 3. hot unplug 3 vcpus ( which were added earlier )
> # virsh setvcpus vm2 72 --live
> 4. reboot VM
> # reboot
> 5. Again try to hot plug 3 vcpus -- ERROR
> # virsh setvcpus vm2 75 --live
> [ 47.367823] acpi ACPI0007:48: Enumeration failure
> [ 47.565173] acpi ACPI0007:49: Enumeration failure
> [ 47.703423] acpi ACPI0007:4a: Enumeration failure
>
>
> I have tested the above scenario with following git repos
>
> https://github.com/salil-mehta/qemu/tree/virt-cpuhp-armv8/rfc-v1-port290920…
>
> https://github.com/salil-mehta/linux/tree/virt-cpuhp-arm64/rfc-v2/jmorse-va…
> https://gitlab.arm.com/linux-arm/linux-jm/-/tree/virtual_cpu_hotplug/rfc/v/…
>
> I observed the following sequence while doing hotplug and unplug
>
> When we do hotplug, making vcpu as *present*(_STA.Pres=1) and
> *enabled*(_STA.Enabled=1)
> When we do hot unplug, we just *disabled*(_STA.Enabled=0) vcpu but not
> *removed*(_STA.Pres=1)
>
> In such a case CPU shall still be present at the firmware/VMM level and
> could be kept disabled
> i.e. _STA.Enable=0 and _STA.Present=1
>
> After reboot, system is trying to enumerate vcpu(as *present*(_STA.Pres=1))
> and it is marking flags flags.initialized = true and flags.visited = true
>
> as the vcpu *disabled*(_STA.Enabled=0), vcpu has been made not present
> and flags flags.initialized and flags.visited were not cleared
>
>
> And following fix resolves the issue
>
> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> index 558664d169fc..e93b933cb8a4 100644
> --- a/drivers/acpi/scan.c
> +++ b/drivers/acpi/scan.c
> @@ -2158,6 +2158,9 @@ static int acpi_scan_attach_handler(struct
> acpi_device *device)
> break;
>
> device->handler = NULL;
> + device->flags.initialized = false;
> + acpi_device_clear_enumerated(device);
> + device->flags.power_manageable = 0;
> if (ret < 0)
> break;
> }
>
> _Regards_,
> -Vishnu.
>
> ------------------------------
>
> Subject: Digest Footer
>
> Linaro-open-discussions mailing list -- linaro-open-discussions(a)op-lists.linaro.org
> To unsubscribe send an email to linaro-open-discussions-leave(a)op-lists.linaro.org
>
>
> ------------------------------
>
> End of Linaro-open-discussions Digest, Vol 29, Issue 6
> ******************************************************