Mercurial > hg > truffle
diff src/share/vm/runtime/arguments.cpp @ 12490:4dba97fb1a6f
available GPUs are exposed to Graal only by the graal.gpu.isalist system property which is set up during command line argument parsing
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 18 Oct 2013 23:55:35 +0200 |
parents | 359f7e70ae7f |
children | b699233403ad |
line wrap: on
line diff
--- a/src/share/vm/runtime/arguments.cpp Fri Oct 18 21:40:23 2013 +0200 +++ b/src/share/vm/runtime/arguments.cpp Fri Oct 18 23:55:35 2013 +0200 @@ -35,6 +35,7 @@ #include "prims/jvmtiExport.hpp" #include "runtime/arguments.hpp" #include "runtime/globals_extension.hpp" +#include "runtime/gpu.hpp" #include "runtime/java.hpp" #include "services/management.hpp" #include "services/memTracker.hpp" @@ -130,6 +131,9 @@ SystemProperty *Arguments::_java_home = NULL; SystemProperty *Arguments::_java_class_path = NULL; SystemProperty *Arguments::_sun_boot_class_path = NULL; +#ifdef GRAAL +SystemProperty *Arguments::_graal_gpu_isalist = NULL; +#endif char* Arguments::_meta_index_path = NULL; char* Arguments::_meta_index_dir = NULL; @@ -193,6 +197,9 @@ _sun_boot_class_path = new SystemProperty("sun.boot.class.path", NULL, true); _java_class_path = new SystemProperty("java.class.path", "", true); +#ifdef GRAAL + _graal_gpu_isalist = new SystemProperty("graal.gpu.isalist", NULL, true); +#endif // Add to System Property list. PropertyList_add(&_system_properties, _java_ext_dirs); @@ -202,6 +209,9 @@ PropertyList_add(&_system_properties, _java_home); PropertyList_add(&_system_properties, _java_class_path); PropertyList_add(&_system_properties, _sun_boot_class_path); +#ifdef GRAAL + PropertyList_add(&_system_properties, _graal_gpu_isalist); +#endif // Set OS specific system properties values os::init_system_properties_values(); @@ -3801,6 +3811,24 @@ } } +#ifdef GRAAL + if (_graal_gpu_isalist->value() == NULL) { + // Initialize the graal.gpu.isalist system property if + // a) it was not explicitly defined by the user and + // b) at least one GPU is available. + // GPU offload can be disabled by setting the property + // to the empty string on the command line + if (gpu::is_available() && gpu::has_gpu_linkage()) { + if (gpu::get_target_il_type() == gpu::PTX) { + _graal_gpu_isalist->append_value("PTX"); + } + if (gpu::get_target_il_type() == gpu::HSAIL) { + _graal_gpu_isalist->append_value("HSAIL"); + } + } + } +#endif + return JNI_OK; }