All of lore.kernel.org
 help / color / mirror / Atom feed
From: Viresh Kumar <viresh.kumar@linaro.org>
To: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Schspa Shi <schspa@gmail.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux PM <linux-pm@vger.kernel.org>
Subject: Re: [PATCH v3] cpufreq: fix race on cpufreq online
Date: Thu, 12 May 2022 12:26:23 +0530	[thread overview]
Message-ID: <20220512065623.q4aa6y52pst3zpxu@vireshk-i7> (raw)
In-Reply-To: <CAJZ5v0id+7vkqMQEyVRe29oF_dRtzZ0EhoYUn8=yzeENDeABJw@mail.gmail.com>

On 11-05-22, 15:19, Rafael J. Wysocki wrote:
> On Wed, May 11, 2022 at 2:59 PM Rafael J. Wysocki <rafael@kernel.org> wrote:
> > > Hmm, I don't think depending on the values of policy->cpus is a good idea to be
> > > honest. This design is inviting bugs to come in at another place. We need a
> > > clear flag for this, a new flag or something like policy_list.
> 
> Why?

Because it doesn't mean anything unless we have code elsewhere which checks this
specifically. It should be fine though after using policy_is_inactive() in
show/store as you suggested, which I too tried to do in a patch :)

> > > Also I see the same bug happening while the policy is removed. The kobject is
> > > put after the rwsem is dropped.
> 
> This shouldn't be a problem because of the wait_for_completion() in
> cpufreq_policy_put_kobj().  It is known that cpufreq_sysfs_release()
> has run when cpufreq_policy_put_kobj() returns, so it is safe to free
> the policy then.

I agree to that, but the destruction of stuff happens right in
cpufreq_policy_free() where it starts removing the policy from the list and
clears cpufreq_cpu_data. I don't know if it will break anything or not, but we
should disallow any further sysfs operations once we have reached
cpufreq_policy_free().

> TBH, I'm not sure why show() doesn't check policy_is_inactive() under the rwsem.

I agree, both show/store should have it.

> Moreover, I'm not sure why the locking dance in store() is necessary.

commit fdd320da84c6 ("cpufreq: Lock CPU online/offline in cpufreq_register_driver()")

-- 
viresh

  parent reply	other threads:[~2022-05-12  6:57 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-20 19:15 [PATCH] cpufreq: fix race on cpufreq online Schspa Shi
2022-04-22 14:38 ` Rafael J. Wysocki
2022-04-22 15:10   ` Schspa Shi
2022-04-22 15:59     ` Rafael J. Wysocki
2022-05-09  3:57 ` Viresh Kumar
2022-05-09 15:06   ` Schspa Shi
2022-05-10  3:52     ` Viresh Kumar
2022-05-10 15:28       ` [PATCH v2] " Schspa Shi
2022-05-10 15:34         ` Rafael J. Wysocki
2022-05-10 15:43           ` Schspa Shi
2022-05-10 15:42       ` [PATCH v3] " Schspa Shi
2022-05-11  4:35         ` Viresh Kumar
2022-05-11  8:10           ` Schspa Shi
2022-05-11 12:21             ` Viresh Kumar
2022-05-11 12:59               ` Rafael J. Wysocki
2022-05-11 13:19                 ` Rafael J. Wysocki
2022-05-11 13:42                   ` Rafael J. Wysocki
2022-05-11 13:42                   ` Schspa Shi
2022-05-11 13:50                     ` Rafael J. Wysocki
2022-05-12  6:56                   ` Viresh Kumar [this message]
2022-05-12 10:49                     ` Rafael J. Wysocki
2022-05-13  4:27                       ` Viresh Kumar
2022-05-24 11:14                         ` Viresh Kumar
2022-05-24 11:22                           ` Rafael J. Wysocki
2022-05-24 11:29                             ` Viresh Kumar
2022-05-24 11:48                               ` Rafael J. Wysocki
2022-05-24 11:53                                 ` Rafael J. Wysocki
2022-05-25  5:32                                   ` Viresh Kumar
2022-05-12  5:56                 ` Viresh Kumar
2022-05-11 13:12               ` Schspa Shi
2022-05-11 14:15         ` Rafael J. Wysocki
2022-05-12  5:51           ` Schspa Shi
2022-05-12 10:37             ` Rafael J. Wysocki

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=20220512065623.q4aa6y52pst3zpxu@vireshk-i7 \
    --to=viresh.kumar@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rafael@kernel.org \
    --cc=schspa@gmail.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.