From: Dario Faggioli <dfaggioli@suse.com>
To: Julien Grall <julien.grall@arm.com>,
Mirela Simonovic <mirela.simonovic@aggios.com>
Cc: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com>,
Stefano Stabellini <sstabellini@kernel.org>,
Davorin Mista <dm@aggios.com>,
Xen Devel <xen-devel@lists.xen.org>
Subject: Re: [PATCH v3 10/10] xen/arm: Enable errata for secondary CPU on hotplug after the boot
Date: Thu, 10 May 2018 18:12:18 +0200 [thread overview]
Message-ID: <c95c5aad1f25bf1b9a8b6376b4cb94936d52b573.camel@suse.com> (raw)
In-Reply-To: <300e3466-8214-764a-6c33-ce8aaea31ed9@arm.com>
[-- Attachment #1.1: Type: text/plain, Size: 2282 bytes --]
On Thu, 2018-05-10 at 16:13 +0100, Julien Grall wrote:
> On 10/05/18 16:00, Mirela Simonovic wrote:
> > > If you add your callback to CPU_UP_PREPARE, instead than to
> > > CPU_STARTING, SCHED_OP(init_pdata) wouldn't be called, without
> > > having
> > > to fiddle with priorities.
>
> This function will enable capabilities on a given CPU, most of them
> are
> touching system registers. So it is necessary to add the callback to
> CPU_STARTING.
>
Right, I guess that answers my question.
> I always like to understand what I maintain :). Why do you need to
> change the priority if you just return an error in the notifier?
>
> At the moment, notify_cpu_starting has a BUG_ON() in it. But ideally
> I
> would like to either replace that BUG_ON by cpu_stop or just
> returning
> an error to give a chance of the architecture deciding what to do
> (this
> does not have to be done today).
>
The problem is that, currently, once we've reached CPU_STARTING, we
assume that the CPU bringup has gone ok, and things can't fail.
Therefore, the only place when we undo what CPU_STARTING does is during
CPU_DEAD, i.e., during hotunplug/suspend/teardown.
I understand the point of having to run stuff on the CPU that is coming
up, as well as your more general point.
However, I don't know whether allowing CPU_STARTING to fail is the best
way to achieve what you want to achieve, nor whether the BUG_ON in
notify_cpu_starting() is the only issue you'll face trying to do that.
I'd say that, if CPU_STARTING can fail, we need an appropriate rollback
step, i.e., the flow must become something like (but I'd appreciate the
opinion of x86 and core hypervisor maintainers about this):
CPU_UP_PREPARE --> CPU_STARTING xx> CPU_DIDNT_START --> CPU_UP_CANCEL
At which point, e.g., from the scheduler point of view, we can try to
put a call to SCHED_OP(deinit_pdata) in CPU_DIDNT_START, and that would
avoid the problem Mirela is facing, without having to play with
priorities.
Regards,
Dario
--
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Software Engineer @ SUSE https://www.suse.com/
[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
[-- Attachment #2: Type: text/plain, Size: 157 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2018-05-10 16:12 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-27 17:12 [PATCH v3 00/10] xen/arm64: Suspend preconditions and CPU hotplug fixes Mirela Simonovic
2018-04-27 17:12 ` [PATCH v3 01/10] xen/arm64: Added handling of the trapped access to OSLSR register Mirela Simonovic
2018-04-27 17:12 ` [PATCH v3 02/10] xen/arm: Ignore write to GICD_ISACTIVERn registers (vgic-v2) Mirela Simonovic
2018-04-30 14:32 ` Julien Grall
2018-04-27 17:12 ` [PATCH v3 03/10] xen/arm: Implement CPU_OFF PSCI call (physical interface) Mirela Simonovic
2018-04-30 14:36 ` Julien Grall
2018-04-27 17:12 ` [PATCH v3 04/10] xen/arm: Remove __initdata and __init to enable CPU hotplug Mirela Simonovic
2018-04-27 17:12 ` [PATCH v3 05/10] xen/arm: Setup virtual paging for non-boot CPUs on hotplug/resume Mirela Simonovic
2018-04-30 14:47 ` Julien Grall
2018-05-07 14:55 ` Mirela Simonovic
2018-05-08 14:14 ` Julien Grall
2018-05-08 14:28 ` Mirela Simonovic
2018-05-09 10:32 ` Julien Grall
2018-04-27 17:12 ` [PATCH v3 06/10] xen/common: Restore IRQ affinity when hotplugging a pCPU Mirela Simonovic
2018-05-10 7:33 ` Dario Faggioli
2018-04-27 17:12 ` [PATCH v3 07/10] xen/arm: Release maintenance interrupt when CPU is hot-unplugged Mirela Simonovic
2018-04-30 14:51 ` Julien Grall
2018-04-27 17:12 ` [PATCH v3 08/10] xen/arm: Release timer interrupts " Mirela Simonovic
2018-04-30 15:58 ` Julien Grall
2018-05-07 15:33 ` Mirela Simonovic
2018-04-27 17:12 ` [PATCH v3 09/10] xen/arm: Free memory allocated for sibling/core maps on CPU hot-unplug Mirela Simonovic
2018-04-30 15:55 ` Julien Grall
2018-04-27 17:12 ` [PATCH v3 10/10] xen/arm: Enable errata for secondary CPU on hotplug after the boot Mirela Simonovic
2018-04-30 16:09 ` Julien Grall
2018-05-09 15:48 ` Mirela Simonovic
2018-05-09 16:32 ` Julien Grall
2018-05-10 11:57 ` Mirela Simonovic
2018-05-10 13:24 ` Mirela Simonovic
2018-05-10 13:29 ` Julien Grall
2018-05-10 14:12 ` Mirela Simonovic
2018-05-10 14:35 ` Julien Grall
2018-05-10 14:25 ` Dario Faggioli
2018-05-10 15:00 ` Mirela Simonovic
2018-05-10 15:13 ` Julien Grall
2018-05-10 15:49 ` Mirela Simonovic
2018-05-10 16:02 ` Julien Grall
2018-05-10 16:21 ` Dario Faggioli
2018-05-10 16:24 ` Dario Faggioli
2018-05-11 10:41 ` Mirela Simonovic
2018-05-11 10:54 ` Julien Grall
2018-05-11 12:07 ` Mirela Simonovic
2018-05-11 12:20 ` Mirela Simonovic
2018-05-11 13:08 ` Julien Grall
2018-05-11 13:31 ` Dario Faggioli
[not found] ` <CAKPH-Nj2znmdcjZEfFf83WmrcBS_u4R33yPOxAPWw37RHVZ38g@mail.gmail.com>
2018-05-11 14:14 ` Dario Faggioli
2018-05-11 21:47 ` Stefano Stabellini
2018-05-14 9:44 ` Julien Grall
2018-05-14 16:59 ` Stefano Stabellini
2018-05-15 11:45 ` Mirela Simonovic
2018-05-11 13:12 ` Dario Faggioli
2018-05-11 13:01 ` Dario Faggioli
2018-05-10 16:12 ` Dario Faggioli [this message]
2018-05-10 13:33 ` Dario Faggioli
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=c95c5aad1f25bf1b9a8b6376b4cb94936d52b573.camel@suse.com \
--to=dfaggioli@suse.com \
--cc=dm@aggios.com \
--cc=edgar.iglesias@xilinx.com \
--cc=julien.grall@arm.com \
--cc=mirela.simonovic@aggios.com \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xen.org \
/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).