linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Viresh Kumar <viresh.kumar@linaro.org>
To: Nathan Zimmer <nzimmer@sgi.com>
Cc: rjw@sisk.pl, cpufreq@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v6 1/2] cpufreq: split the cpufreq_driver_lock and use the rcu
Date: Tue, 2 Apr 2013 21:22:15 +0530	[thread overview]
Message-ID: <CAKohpo=6xeESG2DqET4WQFciHN6sX5Z7Jz9JbE6RC00BsV3bdA@mail.gmail.com> (raw)
In-Reply-To: <20130402154021.GA521@gulag1.americas.sgi.com>

On 2 April 2013 21:10, Nathan Zimmer <nzimmer@sgi.com> wrote:
> My concern is in the cpufreq_register_driver.  Since we are only to set the
> pointer when it is null we have have to hold the lock over both operations.
>
> int cpufreq_register_driver(struct cpufreq_driver *driver_data)
> {
> ...
>         spin_lock_irqsave(&cpufreq_driver_lock, flags);
>         if (rcu_access_pointer(cpufreq_driver)) {
>                 spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
>                 return -EBUSY;
>         }
>         rcu_assign_pointer(cpufreq_driver, driver_data);
>         spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
>         synchronize_rcu();
> ...
> }

How will the lock help you here?? Lock is useful only when somebody
else who want to access it is waiting on the lock and we are updating
the pointer.

Because all other accesses to cpufreq_driver don't have any lock, this
lock is just a waste of time.

  reply	other threads:[~2013-04-02 15:52 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-04 22:45 [PATCH 0/2] cpufreq: cpufreq_driver_lock is hot on large systems Nathan Zimmer
2013-02-04 22:45 ` [PATCH 1/2] cpufreq: Convert the cpufreq_driver_lock to a rwlock Nathan Zimmer
2013-02-05  8:11   ` Viresh Kumar
2013-02-04 22:45 ` [PATCH 2/2] cpufreq: Convert the cpufreq_driver_lock to use the rcu Nathan Zimmer
2013-02-05  1:07 ` [PATCH 0/2] cpufreq: cpufreq_driver_lock is hot on large systems Rafael J. Wysocki
2013-02-05  8:28   ` Viresh Kumar
2013-02-05 10:03     ` Rafael J. Wysocki
2013-02-05  9:58       ` Viresh Kumar
2013-02-05 10:13         ` Rafael J. Wysocki
2013-02-05 14:58           ` Nathan Zimmer
2013-02-05 22:00             ` Rafael J. Wysocki
2013-02-06  2:04             ` [PATCH v2 linux-next " Nathan Zimmer
2013-02-06  2:04               ` [PATCH v2 linux-next 1/2] cpufreq: Convert the cpufreq_driver_lock to a rwlock Nathan Zimmer
2013-02-06  2:47                 ` Viresh Kumar
2013-02-06  2:04               ` [PATCH v2 linux-next 2/2] cpufreq: Convert the cpufreq_driver_lock to use the rcu Nathan Zimmer
2013-02-06  2:52                 ` Viresh Kumar
2013-02-06  8:51                   ` Viresh Kumar
2013-02-06 13:00                     ` Rafael J. Wysocki
2013-02-07 23:29                 ` Rafael J. Wysocki
2013-02-11 17:13                   ` Nathan Zimmer
2013-02-11 19:36                     ` Rafael J. Wysocki
2013-02-12  4:03                       ` Nathan Zimmer
2013-02-12 15:59                       ` Paul E. McKenney
2013-02-13 13:20                         ` Rafael J. Wysocki
2013-02-20 23:56               ` [PATCH v3 0/2] cpufreq: cpufreq_driver_lock is hot on large systems Nathan Zimmer
2013-02-20 23:56                 ` [PATCH v3 1/2] cpufreq: Convert the cpufreq_driver_lock to a rwlock Nathan Zimmer
2013-02-20 23:56                 ` [PATCH v3 2/2] cpufreq: Convert the cpufreq_driver_lock to use the rcu Nathan Zimmer
2013-02-21  5:50                   ` Viresh Kumar
2013-02-21 17:49                     ` Nathan Zimmer
2013-02-22 16:24                       ` [PATCH v4 0/2] cpufreq: cpufreq_driver_lock is hot on large systems Nathan Zimmer
2013-02-22 16:24                         ` [PATCH v4 1/2] cpufreq: Convert the cpufreq_driver_lock to a rwlock Nathan Zimmer
2013-02-23  3:57                           ` Viresh Kumar
2013-02-22 16:24                         ` [PATCH v4 2/2] cpufreq: Convert the cpufreq_driver_lock to use the rcu Nathan Zimmer
2013-02-23  3:39                           ` Viresh Kumar
2013-02-25 20:07                             ` Nathan Zimmer
2013-03-11 23:23                         ` [PATCH v4 0/2] cpufreq: cpufreq_driver_lock is hot on large systems Rafael J. Wysocki
2013-03-13 20:50                           ` Nathan Zimmer
2013-04-01 15:33                             ` [PATCH v5] cpufreq: split the cpufreq_driver_lock and use the rcu (was cpufreq: cpufreq_driver_lock is hot on large systems) Nathan Zimmer
2013-04-01 16:28                               ` Viresh Kumar
2013-04-01 17:17                                 ` Nathan Zimmer
2013-04-01 20:11                                   ` [PATCH v6 0/2] cpufreq: cpufreq_driver_lock is hot on large systems Nathan Zimmer
2013-04-01 20:11                                     ` [PATCH v6 1/2] cpufreq: split the cpufreq_driver_lock and use the rcu Nathan Zimmer
2013-04-02  5:05                                       ` Viresh Kumar
2013-04-02 14:55                                         ` Nathan Zimmer
2013-04-02 14:59                                           ` Viresh Kumar
2013-04-02 15:40                                             ` Nathan Zimmer
2013-04-02 15:52                                               ` Viresh Kumar [this message]
2013-04-02 22:57                                             ` Rafael J. Wysocki
2013-04-03  5:25                                               ` Viresh Kumar
2013-04-01 20:11                                     ` [PATCH v6 2/2] cpufreq: covert the cpufreq_data_lock to a spinlock Nathan Zimmer
2013-04-01 20:41                                       ` Rafael J. Wysocki
2013-04-02  0:56                                         ` Nathan Zimmer
2013-04-02  5:04                                           ` Viresh Kumar
2013-04-02 12:48                                             ` Rafael J. Wysocki
2013-04-02 14:58                                               ` Nathan Zimmer

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='CAKohpo=6xeESG2DqET4WQFciHN6sX5Z7Jz9JbE6RC00BsV3bdA@mail.gmail.com' \
    --to=viresh.kumar@linaro.org \
    --cc=cpufreq@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=nzimmer@sgi.com \
    --cc=rjw@sisk.pl \
    /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).