From owner-freebsd-hackers@freebsd.org  Mon Nov 21 13:45:11 2016
Return-Path: <owner-freebsd-hackers@freebsd.org>
Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7A1B1C4C223
 for <freebsd-hackers@mailman.ysv.freebsd.org>;
 Mon, 21 Nov 2016 13:45:11 +0000 (UTC)
 (envelope-from Volker.Lendecke@SerNet.DE)
Received: from mail.SerNet.de (mail.SerNet.de [193.175.80.2])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 44714274
 for <freebsd-hackers@freebsd.org>; Mon, 21 Nov 2016 13:45:10 +0000 (UTC)
 (envelope-from Volker.Lendecke@SerNet.DE)
Received: from intern.SerNet.DE by mail.SerNet.DE with esmtps (Exim 4.84_2 #1)
 for freebsd-hackers@freebsd.org
 id 1c8oks-0004g8-Cs; Mon, 21 Nov 2016 14:35:30 +0100
Received: by intern.sernet.de
 id 1c8oks-0004Gl-AH; Mon, 21 Nov 2016 14:35:30 +0100
Date: Mon, 21 Nov 2016 14:35:28 +0100
From: Volker Lendecke <Volker.Lendecke@SerNet.DE>
To: freebsd-hackers@freebsd.org
Subject: process shared mutexes?
Message-ID: <20161121133528.GA30947@sernet.de>
Reply-To: Volker.Lendecke@SerNet.DE
MIME-Version: 1.0
User-Agent: Mutt/1.5.23 (2014-03-12)
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-Content-Filtered-By: Mailman/MimeDel 2.1.23
X-BeenThere: freebsd-hackers@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Technical Discussions relating to FreeBSD
 <freebsd-hackers.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/freebsd-hackers>, 
 <mailto:freebsd-hackers-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-hackers/>
List-Post: <mailto:freebsd-hackers@freebsd.org>
List-Help: <mailto:freebsd-hackers-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/freebsd-hackers>, 
 <mailto:freebsd-hackers-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 21 Nov 2016 13:45:11 -0000

Hello!

For Samba's tdb I'm trying to get process shared robust mutexes to
work. However, tdb has a usage pattern that seems to confuse FreeBSD
11 (32-bit x86 if that matters).

The attached program fails in the final pthread_mutex_lock call. If I
comment out the call to

ptr = mmap(NULL, 0xb0, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x1000);

it works.

FWIW, tdb uses robust shared mutexes on Linux successfully for a while
now. I haven't tried Solaris yet, the only other platform I know about
that has them.

What am I doing wrong?

Thanks,

Volker