Messages in this thread | | | From | David Laight <> | Subject | RE: [PATCH 3/4] rhashtable: use bit_spin_locks to protect hash bucket. | Date | Tue, 2 Apr 2019 10:11:31 +0000 |
| |
From: NeilBrown > Sent: 02 April 2019 00:08 > > This patch changes rhashtables to use a bit_spin_lock on BIT(1) of the > bucket pointer to lock the hash chain for that bucket. ... > To enhance type checking, a new struct is introduced to represent the > pointer plus lock-bit > that is stored in the bucket-table. This is "struct rhash_lock_head" > and is empty. A pointer to this needs to be cast to either an > unsigned lock, or a "struct rhash_head *" to be useful. > Variables of this type are most often called "bkt".
Did you try using a union of the pointer and an 'unsigned long' ? Should remove a lot of the casts.
David
- Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
| |