harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xiao-Feng Li (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-5049) [drlvm][gc_gen][large_pages] arithmetic overflow when calculating available hugepages mem size
Date Tue, 06 Nov 2007 23:40:50 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-5049?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12540626
] 

Xiao-Feng Li commented on HARMONY-5049:
---------------------------------------

Rustem, I am afraid the patch needs fixing. The right patch needs to compute the maximal huge
page number, and compare that to the user specified page count. The maximal value is computed
by max heap size divided by huge page size. Thanks.

> [drlvm][gc_gen][large_pages] arithmetic overflow when calculating available hugepages
mem size
> ----------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-5049
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5049
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: drlvm 32-bit, linux 
>            Reporter: Rustem Rafikov
>            Assignee: Xiao-Feng Li
>         Attachments: lpdetect.patch
>
>
> parse_proc_meminfo:
> gc_gen uses size_t type for proc_huge_pages_free and proc_huge_page_size to store values
when  parsing /proc/meminfo which is 32-bits on linux32.
> But an user can reserve such number of large pages that proc_huge_page_size * proc_huge_pages_free
doesn't fit to 32-bit. As result: ""GC large_page: Not enough free large pages, some of reserved
space is already busy."
> To reproduce:
> # echo 2500 > /proc/sys/vm/nr_hugepages
> # mount none /mnt/huge -t hugetlbfs
> # chmod 777 /mnt/huge
> $ ./java -Xms1500M -Xms1500M  -XX:gc.use_large_page=/mnt/huge Hello
> [...]
> GC large_page: Not enough free large pages, some of reserved space is already busy.
> terminate called after throwing an instance of 'std::length_error'
>   what():  basic_string::reserve
> [...]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message