ofed merge soon

Julian Elischer julian at freebsd.org
Sun Jan 30 12:44:33 UTC 2011


On 1/30/11 4:12 AM, Daniel Eischen wrote:
> 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...

the upstream source is linux only code and they do not accept non 
linux patches.



More information about the freebsd-arch mailing list