lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <51A5069F.7050607@oracle.com>
Date:	Tue, 28 May 2013 15:33:51 -0400
From:	Sasha Levin <sasha.levin@...cle.com>
To:	Peter Zijlstra <peterz@...radead.org>
CC:	torvalds@...ux-foundation.org, mingo@...nel.org,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH v4 3/9] liblockdep: Add public headers for pthread_mutex_t
 implementation

On 05/22/2013 05:22 AM, Peter Zijlstra wrote:
> They will however then also want all the 'normal' lockdep annotations to
> deal with that like:
> 
> liblockdep_pthread_mutex_lock_nested()
> liblockdep_pthread_mutex_lock_nest_lock()
> 
> *phew* and here I always though pthread_mutex_* was a long prefix...
> 
> Also, the above doesn't have the full lockstat contention hooks -- not
> sure that's on purpose or not.

I was quietly hoping on leaving this out in the initial version of liblockdep
and start adding this and the rest of the toys that come with lockdep once we
figure out whether this code will go into the kernel tree or not.

Should I be adding them now?

>> +
>> +static inline int liblockdep_pthread_mutex_unlock(liblockdep_pthread_mutex_t *lock)
>> +{
>> +	lock_release(&lock->dep_map, 0, (unsigned long)_RET_IP_);
>> +	return pthread_mutex_unlock(&lock->mutex);
>> +}
>> +
>> +static inline int liblockdep_pthread_mutex_trylock(liblockdep_pthread_mutex_t *lock)
>> +{
>> +	lock_acquire(&lock->dep_map, 0, 1, 0, 2, NULL, (unsigned long)_RET_IP_);
>> +	return pthread_mutex_trylock(&lock->mutex) == 0 ? 1 : 0;
>> +}
>> +
>> +static inline int liblockdep_pthread_mutex_destroy(liblockdep_pthread_mutex_t *lock)
>> +{
>> +	return pthread_mutex_destroy(&lock->mutex);
>> +}
>> +
>> +#ifdef __USE_LIBLOCKDEP
>> +
>> +#define pthread_mutex_t         liblockdep_pthread_mutex_t
>> +#define pthread_mutex_init      liblockdep_pthread_mutex_init
>> +#define pthread_mutex_lock      liblockdep_pthread_mutex_lock
>> +#define pthread_mutex_unlock    liblockdep_pthread_mutex_unlock
>> +#define pthread_mutex_trylock   liblockdep_pthread_mutex_trylock
>> +#define pthread_mutex_destroy   liblockdep_pthread_mutex_destroy
> 
> Given the liblockdep_* things use 'proper' classes do you want this
> mapping? If you do, should we use the same alias nonsense glibc uses or
> are CPP macros good enough for us?
> 

I think that this will be good enough for our purpose, why wouldn't these
simple macros be enough?


Thanks,
Sasha
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ