harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lijuan Xiao (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-5049) [drlvm][gc_gen][large_pages] arithmetic overflow when calculating available hugepages mem size
Date Thu, 24 Jul 2008 04:01:31 GMT

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

Lijuan Xiao updated HARMONY-5049:
---------------------------------

    Attachment: lp.patch

This updated patch: 1) computes user required page count by dividing user required size by
proc_huge_page_size, which avoids that proc_huge_page_size * proc_huge_pages_total(or proc_huge_pages_free)
exceeds 4G; 2) compares user required page first with proc_huge_pages_total and then with
proc_huge_pages_free, which may generate warning information to indicate whether user should
reserve more large pages or just free some large pages.

> [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: lp.patch, 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