From: Jisheng Zhang <jszhang@marvell.com>
To: Sudeep Holla <sudeep.holla@arm.com>
Cc: linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org,
"Rafael J. Wysocki" <rjw@rjwysocki.net>
Subject: Re: How to remove warn msg "cache: parent cpui should not be sleeping" i=1, 2, 3...
Date: Thu, 22 Dec 2016 15:48:44 +0800 [thread overview]
Message-ID: <20161222154844.36448939@xhacker> (raw)
In-Reply-To: <a793d088-2faf-3ea8-41b6-f0b614a71e19@arm.com>
On Wed, 21 Dec 2016 16:54:22 +0000 Sudeep Holla wrote:
> On 21/12/16 11:37, Jisheng Zhang wrote:
> > Hi all,
> >
> > I'm not sure this is a bug, when wake up from s2ram, I could get something
> > like:
> >
> > [ 313.271464] Enabling non-boot CPUs ...
> > [ 313.271551] CPU1: Booted secondary processor
> > [ 313.271556] Detected VIPT I-cache on CPU1
> > [ 313.301378] cache: parent cpu1 should not be sleeping
> > [ 313.301504] CPU1 is up
> > [ 313.301582] CPU2: Booted secondary processor
> > [ 313.301585] Detected VIPT I-cache on CPU2
> > [ 313.331485] cache: parent cpu2 should not be sleeping
> > [ 313.331605] CPU2 is up
> > [ 313.331683] CPU3: Booted secondary processor
> > [ 313.331686] Detected VIPT I-cache on CPU3
> > [ 313.361599] cache: parent cpu3 should not be sleeping
> > [ 313.361719] CPU3 is up
> >
> > This is because we call cpu_device_create() when secondary cpu is brought
> > online, the cpu_cache device's parent device: cpu device isn't already
> > resumed, all device resume will resume after secondary cores are brought
> > up.
> >
> > What's the elegant solution to remove this warning msg?
> >
>
> It is not a serious warning as you can see a comment in the code:
> "/*
> * This is a fib. But we'll allow new children to be added below
> * a resumed device, even if the device hasn't been completed yet.
> */"
>
Great, make sense, I agree with "this is not a serious warn msg".
Thanks for the help,
Jisheng
> But if we think it needs to be removed, I have something like below in
> my mind. I am not sure if this is hacky or not(completely untested, not
> even compiled).
>
> Regards,
> Sudeep
>
> -->8
>
> diff --git i/drivers/base/cpu.c w/drivers/base/cpu.c
> index 4c28e1a09786..2a5c04377adf 100644
> --- i/drivers/base/cpu.c
> +++ w/drivers/base/cpu.c
> @@ -344,6 +344,14 @@ static int cpu_uevent(struct device *dev, struct
> kobj_uevent_env *env)
> }
> #endif
>
> +static int cpu_dev_pm_unset_is_prepared(unsigned int cpu)
> +{
> + struct device *cpu_dev = get_cpu_device(cpu);
> +
> + if(cpu_dev)
> + cpu_dev->power.is_prepared = false;
> + return 0;
> +}
> /*
> * register_cpu - Setup a sysfs device for a CPU.
> * @cpu - cpu->hotpluggable field set to 1 will generate a control file in
> @@ -377,7 +385,9 @@ int register_cpu(struct cpu *cpu, int num)
> per_cpu(cpu_sys_devices, num) = &cpu->dev;
> register_cpu_under_node(num, cpu_to_node(num));
>
> - return 0;
> + return cpuhp_setup_state_nocalls(CPUHP_CPUDEV_PM_PREPARE,
> + "base/cpu/dev_pm:prepare",
> + cpu_dev_pm_unset_is_prepared, NULL);
> }
>
> struct device *get_cpu_device(unsigned cpu)
> diff --git i/include/linux/cpuhotplug.h w/include/linux/cpuhotplug.h
> index 2ab7bf53d529..5bfe3c1aa148 100644
> --- i/include/linux/cpuhotplug.h
> +++ w/include/linux/cpuhotplug.h
> @@ -51,6 +51,7 @@ enum cpuhp_state {
> CPUHP_SLAB_PREPARE,
> CPUHP_MD_RAID5_PREPARE,
> CPUHP_RCUTREE_PREP,
> + CPUHP_CPUDEV_PM_PREPARE,
> CPUHP_CPUIDLE_COUPLED_PREPARE,
> CPUHP_POWERPC_PMAC_PREPARE,
> CPUHP_POWERPC_MMU_CTX_PREPARE,
WARNING: multiple messages have this Message-ID (diff)
From: jszhang@marvell.com (Jisheng Zhang)
To: linux-arm-kernel@lists.infradead.org
Subject: How to remove warn msg "cache: parent cpui should not be sleeping" i=1, 2, 3...
Date: Thu, 22 Dec 2016 15:48:44 +0800 [thread overview]
Message-ID: <20161222154844.36448939@xhacker> (raw)
In-Reply-To: <a793d088-2faf-3ea8-41b6-f0b614a71e19@arm.com>
On Wed, 21 Dec 2016 16:54:22 +0000 Sudeep Holla wrote:
> On 21/12/16 11:37, Jisheng Zhang wrote:
> > Hi all,
> >
> > I'm not sure this is a bug, when wake up from s2ram, I could get something
> > like:
> >
> > [ 313.271464] Enabling non-boot CPUs ...
> > [ 313.271551] CPU1: Booted secondary processor
> > [ 313.271556] Detected VIPT I-cache on CPU1
> > [ 313.301378] cache: parent cpu1 should not be sleeping
> > [ 313.301504] CPU1 is up
> > [ 313.301582] CPU2: Booted secondary processor
> > [ 313.301585] Detected VIPT I-cache on CPU2
> > [ 313.331485] cache: parent cpu2 should not be sleeping
> > [ 313.331605] CPU2 is up
> > [ 313.331683] CPU3: Booted secondary processor
> > [ 313.331686] Detected VIPT I-cache on CPU3
> > [ 313.361599] cache: parent cpu3 should not be sleeping
> > [ 313.361719] CPU3 is up
> >
> > This is because we call cpu_device_create() when secondary cpu is brought
> > online, the cpu_cache device's parent device: cpu device isn't already
> > resumed, all device resume will resume after secondary cores are brought
> > up.
> >
> > What's the elegant solution to remove this warning msg?
> >
>
> It is not a serious warning as you can see a comment in the code:
> "/*
> * This is a fib. But we'll allow new children to be added below
> * a resumed device, even if the device hasn't been completed yet.
> */"
>
Great, make sense, I agree with "this is not a serious warn msg".
Thanks for the help,
Jisheng
> But if we think it needs to be removed, I have something like below in
> my mind. I am not sure if this is hacky or not(completely untested, not
> even compiled).
>
> Regards,
> Sudeep
>
> -->8
>
> diff --git i/drivers/base/cpu.c w/drivers/base/cpu.c
> index 4c28e1a09786..2a5c04377adf 100644
> --- i/drivers/base/cpu.c
> +++ w/drivers/base/cpu.c
> @@ -344,6 +344,14 @@ static int cpu_uevent(struct device *dev, struct
> kobj_uevent_env *env)
> }
> #endif
>
> +static int cpu_dev_pm_unset_is_prepared(unsigned int cpu)
> +{
> + struct device *cpu_dev = get_cpu_device(cpu);
> +
> + if(cpu_dev)
> + cpu_dev->power.is_prepared = false;
> + return 0;
> +}
> /*
> * register_cpu - Setup a sysfs device for a CPU.
> * @cpu - cpu->hotpluggable field set to 1 will generate a control file in
> @@ -377,7 +385,9 @@ int register_cpu(struct cpu *cpu, int num)
> per_cpu(cpu_sys_devices, num) = &cpu->dev;
> register_cpu_under_node(num, cpu_to_node(num));
>
> - return 0;
> + return cpuhp_setup_state_nocalls(CPUHP_CPUDEV_PM_PREPARE,
> + "base/cpu/dev_pm:prepare",
> + cpu_dev_pm_unset_is_prepared, NULL);
> }
>
> struct device *get_cpu_device(unsigned cpu)
> diff --git i/include/linux/cpuhotplug.h w/include/linux/cpuhotplug.h
> index 2ab7bf53d529..5bfe3c1aa148 100644
> --- i/include/linux/cpuhotplug.h
> +++ w/include/linux/cpuhotplug.h
> @@ -51,6 +51,7 @@ enum cpuhp_state {
> CPUHP_SLAB_PREPARE,
> CPUHP_MD_RAID5_PREPARE,
> CPUHP_RCUTREE_PREP,
> + CPUHP_CPUDEV_PM_PREPARE,
> CPUHP_CPUIDLE_COUPLED_PREPARE,
> CPUHP_POWERPC_PMAC_PREPARE,
> CPUHP_POWERPC_MMU_CTX_PREPARE,
next prev parent reply other threads:[~2016-12-22 7:53 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-21 11:37 How to remove warn msg "cache: parent cpui should not be sleeping" i=1, 2, 3 Jisheng Zhang
2016-12-21 11:37 ` Jisheng Zhang
2016-12-21 16:54 ` Sudeep Holla
2016-12-21 16:54 ` Sudeep Holla
2016-12-22 7:48 ` Jisheng Zhang [this message]
2016-12-22 7:48 ` Jisheng Zhang
2018-08-20 17:46 ` Steve Longerbeam
2018-08-20 17:46 ` Steve Longerbeam
2018-10-02 17:07 ` Eugeniu Rosca
2018-10-02 17:07 ` Eugeniu Rosca
2019-01-25 13:07 ` Eugeniu Rosca
2019-01-25 13:07 ` Eugeniu Rosca
2019-01-25 15:09 ` [RFC PATCH] drivers core: cpu: add hotplug callback to update cpu_dev state to resumed Sudeep Holla
2019-01-27 13:57 ` Eugeniu Rosca
2019-01-30 23:48 ` Rafael J. Wysocki
2019-01-31 16:05 ` Sudeep Holla
2019-02-04 15:37 ` Sudeep Holla
2019-02-04 15:44 ` Greg Kroah-Hartman
2019-02-04 15:52 ` Sudeep Holla
2019-02-06 10:31 ` Rafael J. Wysocki
2019-02-06 13:59 ` Sudeep Holla
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=20161222154844.36448939@xhacker \
--to=jszhang@marvell.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-pm@vger.kernel.org \
--cc=rjw@rjwysocki.net \
--cc=sudeep.holla@arm.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 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.