Re: [PATCH 1/2] remove recursive call to migrate_disable in read_lock_bh

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 20, 2013 at 11:21:07AM +0100, Nicholas Mc Guire wrote:
> From 46393dc3185026c8500c2b734747d7c8785f3dc9 Mon Sep 17 00:00:00 2001
> From: Nicholas Mc Guire <der.herr@xxxxxxx>
> Date: Tue, 19 Nov 2013 23:31:05 -0500
> Subject: [PATCH 1/2] remove recursive call to migrate_disable in read_lock_bh
> 
>  read_lock_bh/read_unlock_bh unconditionally calls local_bh_disable/enable 
>  which already does a migrate_disable/enable - no need for this recursive call.
> 
>  patch is on top of 3.12-rt2
> 
>  No change of functionality
> 
> Signed-off-by: Nicholas Mc Guire <der.herr@xxxxxxx>
> ---
>  include/linux/rwlock_rt.h |    2 --
>  1 files changed, 0 insertions(+), 2 deletions(-)
> 
> diff --git a/include/linux/rwlock_rt.h b/include/linux/rwlock_rt.h
> index 853ee36..87f5a1d 100644
> --- a/include/linux/rwlock_rt.h
> +++ b/include/linux/rwlock_rt.h
> @@ -53,7 +53,6 @@ extern void __rt_rwlock_init(rwlock_t *rwlock, char *name, struct lock_class_key
>  #define read_lock_bh(lock)				\
>  	do {						\
>  		local_bh_disable();			\
> -		migrate_disable();			\
>  		rt_read_lock(lock);			\
>  	} while (0)
>  
> @@ -83,7 +82,6 @@ extern void __rt_rwlock_init(rwlock_t *rwlock, char *name, struct lock_class_key
>  #define read_unlock_bh(lock)				\
>  	do {						\
>  		rt_read_unlock(lock);			\
> -		migrate_enable();			\
>  		local_bh_enable();			\
>  	} while (0)

So the problem with this patch and the next is that:

	read_lock_bh();

	read_unlock();
	local_bh_enable();

Is a valid pattern; and you'll notice that the release part has 2
migrate put refs. So if you can make a patch similar to:

lkml.kernel.org/r/20131120162736.624493595@xxxxxxxxxxxxx

That allows read_lock_bh() to obtain 2 migrate disable refs in one go,
then it would all work out just fine.
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux