comparison src/share/vm/runtime/compilationPolicy.cpp @ 13922:0995dcbd6dd8

Change CUDA context management to support multiple executions of a kernel. Exclude GPU offloading of lambdas from java.* library code.
author S.Bharadwaj Yadavalli <bharadwaj.yadavalli@oracle.com>
date Mon, 10 Feb 2014 14:38:42 -0500
parents 49db2c1e3bee
children d8041d695d19
comparison
equal deleted inserted replaced
13921:eb48fac53e6f 13922:0995dcbd6dd8
170 Symbol * klass_name = m->method_holder()->name(); 170 Symbol * klass_name = m->method_holder()->name();
171 Symbol * method_name = m->name(); 171 Symbol * method_name = m->name();
172 { 172 {
173 ResourceMark rm; 173 ResourceMark rm;
174 if (klass_name != NULL) { 174 if (klass_name != NULL) {
175 if (klass_name != NULL && method_name != NULL) { 175 const char* javaClass = "java/";
176 const char* lambdaPrefix = "lambda$"; 176 // Exclude java library classes - for now
177 char* methodPrefix = strstr(method_name->as_C_string(), lambdaPrefix); 177 if (strncmp(klass_name->as_C_string(), javaClass, strlen(javaClass))) {
178 if (methodPrefix != 0) { 178 if (method_name != NULL) {
179 if ((strncmp(lambdaPrefix, methodPrefix, strlen(lambdaPrefix)) == 0)) { 179 const char* lambdaPrefix = "lambda$";
180 if (TraceGPUInteraction) { 180 char* methodPrefix = strstr(method_name->as_C_string(), lambdaPrefix);
181 char buf[O_BUFLEN]; 181 if (methodPrefix != 0) {
182 tty->print_cr("Selected lambda method %s for GPU offload", m->name_and_sig_as_C_string(buf, O_BUFLEN)); 182 if ((strncmp(lambdaPrefix, methodPrefix, strlen(lambdaPrefix)) == 0)) {
183 if (TraceGPUInteraction) {
184 char buf[O_BUFLEN];
185 tty->print_cr("Selected lambda method %s for GPU offload", m->name_and_sig_as_C_string(buf, O_BUFLEN));
186 }
187 return true;
183 } 188 }
184 return true;
185 } 189 }
186 } 190 }
187 } 191 }
188 } 192 }
189 } 193 }