review request for 7142641: -Xshared:on fails on ARM

Dean Long dean.long at oracle.com
Wed Feb 29 09:30:20 PST 2012


Dan and David, thanks for the reviews.

On 2/28/2012 3:46 PM, Daniel D. Daugherty wrote:
> Wow! Ya learn something new every day!
>
> Thanks for the background info. And you can count me as
> a reviewer...
>
> Since change affects all Linuxes, you should move the
> bug to jvm/hotspot/runtime_cds...
>
OK will do.

dl

> Dan
>
> On 2/28/12 4:43 PM, Dean Long wrote:
>> Hi Dan,
>>
>> yes, I was concerned about that as well.  But MAP_SHARED isn't 
>> actually needed to share read-only pages.  If you trace an app's 
>> startup using "strace" you can see that the dynamic linker maps 
>> shared libraries such as libc with MAP_PRIVATE.  Multiple processes 
>> still share those pages through the page cache.  Furthermore, the 
>> linux mmap implementation turns off the shared flag if the file was 
>> opened read-only (but unfortunately it turns off the flag only after 
>> enforcing the cache coloring constraints.)
>>
>> dl
>>
>> On 2/28/2012 2:40 PM, Daniel D. Daugherty wrote:
>>> Dean,
>>>
>>> I'm confused... I thought mapping the read-only CDS archive pages as
>>> "shared" permits those pages to be shared by other java processes that
>>> are also using the CDS archive...
>>>
>>> Dan
>>>
>>> On 2/28/12 3:05 PM, Dean Long wrote:
>>>> http://cr.openjdk.java.net/~dlong/7142641/webrev.0/
>>>> Summary of changes:    3 lines changed: 0 ins; 2 del; 1 mod; 5538 
>>>> unchg
>>>>
>>>> The Class Data Sharing file is mapped "shared" on linux, which 
>>>> places extra constraints on which virtual address a file offset can 
>>>> use.  This is to ensure consistency on certain platforms with 
>>>> aliasing caches.  However as the CDS file is opened read-only, 
>>>> mapping it "shared" has no benefit and can cause the mmap to fail.  
>>>> The simplest fix is to change the mapping to "private".
>>>>
>>>> Tested on linux arm platform with aliasing cache.  Installed CDS 
>>>> with -Xshare:dump then ran through some vm tests as a sanity check.
>>>>
>>>> This bug is on the 7u4 watch list.
>>>>
>>>> dl


More information about the hotspot-gc-dev mailing list