linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
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,

  reply	other threads:[~2016-12-22  7:48 UTC|newest]

Thread overview: 6+ 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 16:54 ` Sudeep Holla
2016-12-22  7:48   ` Jisheng Zhang [this message]
2018-08-20 17:46   ` Steve Longerbeam
2018-10-02 17:07   ` Eugeniu Rosca
2019-01-25 13:07     ` Eugeniu Rosca

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 \
    /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).