From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
Wei Liu <wei.liu2@citrix.com>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
George Dunlap <George.Dunlap@eu.citrix.com>,
Tim Deegan <tim@xen.org>, Ian Jackson <ian.jackson@eu.citrix.com>,
Julien Grall <julien.grall@arm.com>,
Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH 2/6] xen: add helper for calling notifier_call_chain() to common/cpu.c
Date: Wed, 27 Mar 2019 15:39:31 +0000 [thread overview]
Message-ID: <442ec458-d00e-251f-e206-d6d392f334ed@citrix.com> (raw)
In-Reply-To: <20190318131155.29450-3-jgross@suse.com>
On 18/03/2019 13:11, Juergen Gross wrote:
> Add a helper cpu_notifier_call_chain() to call notifier_call_chain()
> for a cpu with a specified action, returning an errno value.
>
> This avoids coding the same pattern multiple times.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> xen/common/cpu.c | 50 +++++++++++++++++++++-----------------------------
> 1 file changed, 21 insertions(+), 29 deletions(-)
>
> diff --git a/xen/common/cpu.c b/xen/common/cpu.c
> index 836c62f97f..c436c0de7f 100644
> --- a/xen/common/cpu.c
> +++ b/xen/common/cpu.c
> @@ -71,11 +71,18 @@ void __init register_cpu_notifier(struct notifier_block *nb)
> spin_unlock(&cpu_add_remove_lock);
> }
>
> +static int cpu_notifier_call_chain(unsigned int cpu, unsigned long action,
> + struct notifier_block **nb)
> +{
> + void *hcpu = (void *)(long)cpu;
> + int notifier_rc = notifier_call_chain(&cpu_chain, action, hcpu, nb);
> +
> + return (notifier_rc == NOTIFY_DONE) ? 0 : notifier_to_errno(notifier_rc);
> +}
> +
> static void _take_cpu_down(void *unused)
> {
> - void *hcpu = (void *)(long)smp_processor_id();
> - int notifier_rc = notifier_call_chain(&cpu_chain, CPU_DYING, hcpu, NULL);
> - BUG_ON(notifier_rc != NOTIFY_DONE);
> + BUG_ON(cpu_notifier_call_chain(smp_processor_id(), CPU_DYING, NULL));
Where possible, we're trying to remove side effects from macros.
Could I please talk you into writing this as:
int rc = cpu_notifier_call_chain(smp_processor_id(), CPU_DYING, NULL);
BUG_ON(rc);
An alternative might be to have a:
static void cpu_notifier_call_chain_nofail(...)
wrapper as this seems to be a common pattern. (Ideally longterm, it
might be better to pass the nofail intention into the notifier chain
itself so we can identify which callback had a problem, but thats
definitely not something for here.)
~Andrew
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2019-03-27 16:00 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-18 13:11 [PATCH 0/6] xen: simplify suspend/resume handling Juergen Gross
2019-03-18 13:11 ` [PATCH 1/6] xen/sched: call cpu_disable_scheduler() via cpu notifier Juergen Gross
2019-03-27 15:34 ` Andrew Cooper
2019-03-27 15:35 ` George Dunlap
2019-03-27 16:22 ` Jan Beulich
2019-03-27 16:24 ` Dario Faggioli
2019-03-27 16:31 ` Juergen Gross
2019-03-27 16:51 ` Dario Faggioli
2019-03-27 16:53 ` Juergen Gross
[not found] ` <5C9BA336020000780022235B@suse.com>
2019-03-27 16:45 ` Juergen Gross
2019-03-27 16:58 ` Jan Beulich
2019-03-18 13:11 ` [PATCH 2/6] xen: add helper for calling notifier_call_chain() to common/cpu.c Juergen Gross
2019-03-25 11:56 ` Dario Faggioli
2019-03-27 12:25 ` George Dunlap
2019-03-27 15:39 ` Andrew Cooper [this message]
2019-03-27 16:05 ` Juergen Gross
2019-03-18 13:11 ` [PATCH 3/6] xen: add new cpu notifier action CPU_RESUME_FAILED Juergen Gross
2019-03-25 12:21 ` Dario Faggioli
2019-03-25 12:29 ` Juergen Gross
2019-03-27 15:54 ` Dario Faggioli
2019-03-27 15:49 ` George Dunlap
2019-03-27 16:29 ` Jan Beulich
[not found] ` <5C9BA5010200007800222375@suse.com>
2019-03-27 16:32 ` Juergen Gross
2019-03-18 13:11 ` [PATCH 4/6] xen: don't free percpu areas during suspend Juergen Gross
2019-03-25 18:14 ` Dario Faggioli
2019-03-27 15:55 ` Andrew Cooper
2019-03-27 16:18 ` Juergen Gross
2019-03-27 16:38 ` Jan Beulich
[not found] ` <5C9BA70E02000078002223A3@suse.com>
2019-03-27 16:52 ` Juergen Gross
2019-03-28 6:59 ` Juergen Gross
2019-03-28 8:03 ` Jan Beulich
2019-04-11 9:49 ` Jan Beulich
2019-04-11 9:49 ` [Xen-devel] " Jan Beulich
[not found] ` <5C9C7FD202000078002225AB@suse.com>
2019-03-28 8:35 ` Juergen Gross
2019-03-28 9:36 ` Jan Beulich
2019-03-28 7:46 ` Jan Beulich
[not found] ` <5C9C7BF1020000780022258F@suse.com>
2019-03-28 7:53 ` Juergen Gross
2019-03-28 8:04 ` Jan Beulich
2019-03-18 13:11 ` [PATCH 5/6] xen/cpupool: simplify suspend/resume handling Juergen Gross
2019-03-27 15:56 ` George Dunlap
2019-03-27 16:32 ` Dario Faggioli
2019-03-18 13:11 ` [PATCH 6/6] xen/sched: don't disable scheduler on cpus during suspend Juergen Gross
2019-03-27 23:10 ` Dario Faggioli
2019-03-28 5:41 ` Juergen Gross
[not found] <20190318131155.29450*1*jgross@suse.com>
[not found] ` <20190318131155.29450*5*jgross@suse.com>
[not found] <20190318131155.29450****1****jgross@suse.com>
[not found] ` <20190318131155.29450****5****jgross@suse.com>
[not found] ` <e10c14cd****54ac****8d8c****2d5c****db4adbd39d07@citrix.com>
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=442ec458-d00e-251f-e206-d6d392f334ed@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=George.Dunlap@eu.citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=jgross@suse.com \
--cc=julien.grall@arm.com \
--cc=konrad.wilk@oracle.com \
--cc=sstabellini@kernel.org \
--cc=tim@xen.org \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xenproject.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.