* Gautham R Shenoy <[email protected]> wrote:
> So here's an implementation on the lines of (c).
>
> There are two types of tasks interested in cpu_hotplug
> - ones who want to *prevent* a hotplug event.
> - ones who want to *perform* a cpu hotplug.
>
> For sake of simplicity let's call the former ones readers (though I
> would have prefered inhibitors or somthing fancier!) and latter ones
> writers. Let write operation = cpu_hotplug operation.
>
> -The protocol is analogous to RWSEM, *only not so fair* .
really nice! I'm quite sure that this is the right way to approach this
problem.
Please add the appropriate lock_acquire()/lock_release() calls into the
new sleeping semaphore type. Just use the parameters that rwlocks use:
#define rwlock_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 2, i)
#define rwlock_acquire_read(l, s, t, i) lock_acquire(l, s, t, 2, 2, i)
and lockdep will allow recursive read-locking. You'll also need a
lockdep_init_map() call to register the lock with lockdep. Then your
locking scheme will be fully checked by lockdep too. (with your current
code the new lock type is not added to the lock dependency graph(s))
Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]