Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Jan 2011 21:44:45 -1000 (HST)
From:      Jeff Roberson <jroberson@jroberson.net>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        freebsd-arch@freebsd.org
Subject:   Re: ofed merge soon
Message-ID:  <alpine.BSF.2.00.1101292143010.1412@desktop>
In-Reply-To: <201101291032.35544.hselasky@c2i.net>
References:  <alpine.BSF.2.00.1101271653470.1412@desktop> <201101281009.32986.jhb@freebsd.org> <alpine.BSF.2.00.1101281050510.1412@desktop> <201101291032.35544.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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.

Thanks,
Jeff

>
> --HPS
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1101292143010.1412>