Date: Sun, 30 Jan 2011 07:12:08 -0500 (EST) From: Daniel Eischen <deischen@freebsd.org> To: Hans Petter Selasky <hselasky@c2i.net> Cc: freebsd-arch@freebsd.org Subject: Re: ofed merge soon Message-ID: <Pine.GSO.4.64.1101300710520.20802@sea.ntplx.net> In-Reply-To: <201101301016.55633.hselasky@c2i.net> References: <alpine.BSF.2.00.1101271653470.1412@desktop> <201101291032.35544.hselasky@c2i.net> <alpine.BSF.2.00.1101292143010.1412@desktop> <201101301016.55633.hselasky@c2i.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 30 Jan 2011, Hans Petter Selasky wrote:
> On Sunday 30 January 2011 08:44:45 Jeff Roberson wrote:
>> On Sat, 29 Jan 2011, Hans Petter Selasky wrote:
>>> Hi,
>>>
>>> Just a comment:
>>>
>>> +
>>> +#define DEFINE_MUTEX(lock) \
>>> + mutex_t lock; \
>>> + SX_SYSINIT_FLAGS(lock, &(lock).sx, "lnxmtx", SX_NOWITNESS)
>>> +
>>> +static inline void
>>> +linux_mutex_init(mutex_t *m)
>>> +{
>>> +
>>> + memset(&m->sx, 0, sizeof(m->sx));
>>> + sx_init_flags(&m->sx, "lnxmtx", SX_NOWITNESS);
>>> +}
>>> +
>>> +#define mutex_init linux_mutex_init
>>>
>>> I see you workaround the fact that Linux does not destroy any mutexes by
>>> disabling witness. Do you have any plan to upgrade the Linux 3rd party
>>> code to destroy mutexes?
>>
>> It introduces too many diffs that are difficult to maintain. I don't
>> think it's viable. One option would be to tag the memory linux uses so
>> that when it's freed we reclaim any locks in it. You could scan the
>> witness tables for pointers within the free'd region fairly easily. It
>> wouldn't be pretty though.
>
> How about requiring that Linux code, once imported, must destroy it's mutexes?
Or add a mutex_destroy for all OS's, and make it a noop
for Linux. Then there are no diffs to maintain...
--
DE
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.64.1101300710520.20802>
