From owner-freebsd-java@FreeBSD.ORG  Tue Sep 16 14:10:05 2014
Return-Path: <owner-freebsd-java@FreeBSD.ORG>
Delivered-To: freebsd-java@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by hub.freebsd.org (Postfix) with ESMTPS id 972CE4D2;
 Tue, 16 Sep 2014 14:10:05 +0000 (UTC)
Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140])
 by mx1.freebsd.org (Postfix) with ESMTP id 28338285;
 Tue, 16 Sep 2014 14:10:03 +0000 (UTC)
Received: from porto.starpoint.kiev.ua (porto-e.starpoint.kiev.ua
 [212.40.38.100])
 by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id RAA10218;
 Tue, 16 Sep 2014 17:10:01 +0300 (EEST)
 (envelope-from avg@FreeBSD.org)
Received: from localhost ([127.0.0.1])
 by porto.starpoint.kiev.ua with esmtp (Exim 4.34 (FreeBSD))
 id 1XTtSD-0004m2-5v; Tue, 16 Sep 2014 17:10:01 +0300
Message-ID: <54184481.3060804@FreeBSD.org>
Date: Tue, 16 Sep 2014 17:09:05 +0300
From: Andriy Gapon <avg@FreeBSD.org>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
 rv:31.0) Gecko/20100101 Thunderbird/31.1.0
MIME-Version: 1.0
To: John Baldwin <jhb@FreeBSD.org>, freebsd-java@FreeBSD.org
Subject: Re: svn commit: r271635 - in head: lib/libc/sys sys/vm
References: <201409151720.s8FHKDFs099885@svn.freebsd.org>
 <54183D4D.3050907@FreeBSD.org>
In-Reply-To: <54183D4D.3050907@FreeBSD.org>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org,
 src-committers@FreeBSD.org
X-BeenThere: freebsd-java@freebsd.org
X-Mailman-Version: 2.1.18-1
Precedence: list
List-Id: Porting Java to FreeBSD <freebsd-java.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/options/freebsd-java>,
 <mailto:freebsd-java-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-java/>
List-Post: <mailto:freebsd-java@freebsd.org>
List-Help: <mailto:freebsd-java-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-java>,
 <mailto:freebsd-java-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Sep 2014 14:10:05 -0000

On 16/09/2014 16:38, Andriy Gapon wrote:
> On 15/09/2014 20:20, John Baldwin wrote:
>> Author: jhb
>> Date: Mon Sep 15 17:20:13 2014
>> New Revision: 271635
>> URL: http://svnweb.freebsd.org/changeset/base/271635
>>
>> Log:
>>   Add stricter checking of some mmap() arguments:
>>   - Fail with EINVAL if an invalid protection mask is passed to mmap().
>>   - Fail with EINVAL if an unknown flag is passed to mmap().
>>   - Fail with EINVAL if both MAP_PRIVATE and MAP_SHARED are passed to mmap().
>>   - Require one of either MAP_PRIVATE or MAP_SHARED for non-anonymous
>>     mappings.
> 
> This broke Java, at least java/openjdk7, for me:
> 
>  25323 java     CALL
> mmap(0,0x3000000,0x3<PROT_READ|PROT_WRITE>,0x1042<MAP_PRIVATE|MAP_NORESERVE|MAP_ANON>,0xffffffff,0)
>  25323 java     RET   mmap -1 errno 22 Invalid argument
>  25323 java     CALL  write(0x1,0x7fffffbfd450,0x2b)
>  25323 java     GIO   fd 1 wrote 43 bytes
>        "Error occurred during initialization of VM
>        "
>  25323 java     RET   write 43/0x2b
>  25323 java     CALL  write(0x1,0x80209a1e2,0x2d)
>  25323 java     GIO   fd 1 wrote 45 bytes
>        "Could not reserve enough space for code cache"
> 
> It seems that MAP_NORESERVE presence could be detected in sys/mman.h and then it
> is used for some reason.

No, it's not auto-detected, it's explicitly used in
hotspot/src/os/bsd/vm/os_bsd.cpp.

> I guess that the port can be easily fixed, but this commit breaks compatibility
> with older binaries.  Perhaps MAP_NORESERVE should be removed as well given that
> we do not actually implement it.
> 
>>   Reviewed by:	alc, kib
>>   MFC after:	2 weeks
>>   Differential Revision:	https://reviews.freebsd.org/D698
>>
>> Modified:
>>   head/lib/libc/sys/mmap.2
>>   head/sys/vm/vm_mmap.c

-- 
Andriy Gapon