ofed merge soon

Daniel Eischen deischen at freebsd.org
Sun Jan 30 12:24:14 UTC 2011


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


More information about the freebsd-arch mailing list