Mercurial > hg > graal-jvmci-8
comparison src/os/linux/vm/os_linux.cpp @ 12840:aa6f2ea19d8f
Merge
author | jcoomes |
---|---|
date | Fri, 11 Oct 2013 08:27:21 -0700 |
parents | 899ecf76b570 263f2c796d6c |
children | e4f478e7781b |
comparison
equal
deleted
inserted
replaced
12829:c01f4910f5f5 | 12840:aa6f2ea19d8f |
---|---|
3359 | 3359 |
3360 bool os::Linux::setup_large_page_type(size_t page_size) { | 3360 bool os::Linux::setup_large_page_type(size_t page_size) { |
3361 if (FLAG_IS_DEFAULT(UseHugeTLBFS) && | 3361 if (FLAG_IS_DEFAULT(UseHugeTLBFS) && |
3362 FLAG_IS_DEFAULT(UseSHM) && | 3362 FLAG_IS_DEFAULT(UseSHM) && |
3363 FLAG_IS_DEFAULT(UseTransparentHugePages)) { | 3363 FLAG_IS_DEFAULT(UseTransparentHugePages)) { |
3364 // If UseLargePages is specified on the command line try all methods, | 3364 |
3365 // if it's default, then try only UseTransparentHugePages. | 3365 // The type of large pages has not been specified by the user. |
3366 if (FLAG_IS_DEFAULT(UseLargePages)) { | 3366 |
3367 UseTransparentHugePages = true; | 3367 // Try UseHugeTLBFS and then UseSHM. |
3368 } else { | 3368 UseHugeTLBFS = UseSHM = true; |
3369 UseHugeTLBFS = UseTransparentHugePages = UseSHM = true; | 3369 |
3370 } | 3370 // Don't try UseTransparentHugePages since there are known |
3371 // performance issues with it turned on. This might change in the future. | |
3372 UseTransparentHugePages = false; | |
3371 } | 3373 } |
3372 | 3374 |
3373 if (UseTransparentHugePages) { | 3375 if (UseTransparentHugePages) { |
3374 bool warn_on_failure = !FLAG_IS_DEFAULT(UseTransparentHugePages); | 3376 bool warn_on_failure = !FLAG_IS_DEFAULT(UseTransparentHugePages); |
3375 if (transparent_huge_pages_sanity_check(warn_on_failure, page_size)) { | 3377 if (transparent_huge_pages_sanity_check(warn_on_failure, page_size)) { |
3391 | 3393 |
3392 return UseSHM; | 3394 return UseSHM; |
3393 } | 3395 } |
3394 | 3396 |
3395 void os::large_page_init() { | 3397 void os::large_page_init() { |
3396 if (!UseLargePages) { | 3398 if (!UseLargePages && |
3399 !UseTransparentHugePages && | |
3400 !UseHugeTLBFS && | |
3401 !UseSHM) { | |
3402 // Not using large pages. | |
3403 return; | |
3404 } | |
3405 | |
3406 if (!FLAG_IS_DEFAULT(UseLargePages) && !UseLargePages) { | |
3407 // The user explicitly turned off large pages. | |
3408 // Ignore the rest of the large pages flags. | |
3409 UseTransparentHugePages = false; | |
3397 UseHugeTLBFS = false; | 3410 UseHugeTLBFS = false; |
3398 UseTransparentHugePages = false; | |
3399 UseSHM = false; | 3411 UseSHM = false; |
3400 return; | 3412 return; |
3401 } | 3413 } |
3402 | 3414 |
3403 size_t large_page_size = Linux::setup_large_page_size(); | 3415 size_t large_page_size = Linux::setup_large_page_size(); |