Mercurial > hg > graal-jvmci-8
comparison src/share/vm/runtime/os.cpp @ 14314:2c95095271e9
Merge
author | ehelin |
---|---|
date | Thu, 30 Jan 2014 14:01:45 +0100 |
parents | d3a3fc905c7e 63a4eb8bcd23 |
children | ad3f8397fe37 e5d78f318aec |
comparison
equal
deleted
inserted
replaced
14302:1fb56cbac3a1 | 14314:2c95095271e9 |
---|---|
234 static void signal_thread_entry(JavaThread* thread, TRAPS) { | 234 static void signal_thread_entry(JavaThread* thread, TRAPS) { |
235 os::set_priority(thread, NearMaxPriority); | 235 os::set_priority(thread, NearMaxPriority); |
236 while (true) { | 236 while (true) { |
237 int sig; | 237 int sig; |
238 { | 238 { |
239 // FIXME : Currently we have not decieded what should be the status | 239 // FIXME : Currently we have not decided what should be the status |
240 // for this java thread blocked here. Once we decide about | 240 // for this java thread blocked here. Once we decide about |
241 // that we should fix this. | 241 // that we should fix this. |
242 sig = os::signal_wait(); | 242 sig = os::signal_wait(); |
243 } | 243 } |
244 if (sig == os::sigexitnum_pd()) { | 244 if (sig == os::sigexitnum_pd()) { |
581 // look for cushion in front of prev. block | 581 // look for cushion in front of prev. block |
582 u_char* start_of_prev_block = find_cushion_backwards(end_of_prev_block_data); | 582 u_char* start_of_prev_block = find_cushion_backwards(end_of_prev_block_data); |
583 ptrdiff_t size = *size_addr_from_base(start_of_prev_block); | 583 ptrdiff_t size = *size_addr_from_base(start_of_prev_block); |
584 u_char* obj = start_of_prev_block + space_before; | 584 u_char* obj = start_of_prev_block + space_before; |
585 if (size <= 0 ) { | 585 if (size <= 0 ) { |
586 // start is bad; mayhave been confused by OS data inbetween objects | 586 // start is bad; may have been confused by OS data in between objects |
587 // search one more backwards | 587 // search one more backwards |
588 start_of_prev_block = find_cushion_backwards(start_of_prev_block); | 588 start_of_prev_block = find_cushion_backwards(start_of_prev_block); |
589 size = *size_addr_from_base(start_of_prev_block); | 589 size = *size_addr_from_base(start_of_prev_block); |
590 obj = start_of_prev_block + space_before; | 590 obj = start_of_prev_block + space_before; |
591 } | 591 } |
1009 } | 1009 } |
1010 | 1010 |
1011 if (Universe::heap()->is_in(addr)) { | 1011 if (Universe::heap()->is_in(addr)) { |
1012 HeapWord* p = Universe::heap()->block_start(addr); | 1012 HeapWord* p = Universe::heap()->block_start(addr); |
1013 bool print = false; | 1013 bool print = false; |
1014 // If we couldn't find it it just may mean that heap wasn't parseable | 1014 // If we couldn't find it it just may mean that heap wasn't parsable |
1015 // See if we were just given an oop directly | 1015 // See if we were just given an oop directly |
1016 if (p != NULL && Universe::heap()->block_is_obj(p)) { | 1016 if (p != NULL && Universe::heap()->block_is_obj(p)) { |
1017 print = true; | 1017 print = true; |
1018 } else if (p == NULL && ((oopDesc*)addr)->is_oop()) { | 1018 } else if (p == NULL && ((oopDesc*)addr)->is_oop()) { |
1019 p = (HeapWord*) addr; | 1019 p = (HeapWord*) addr; |
1441 | 1441 |
1442 // This is the working definition of a server class machine: | 1442 // This is the working definition of a server class machine: |
1443 // >= 2 physical CPU's and >=2GB of memory, with some fuzz | 1443 // >= 2 physical CPU's and >=2GB of memory, with some fuzz |
1444 // because the graphics memory (?) sometimes masks physical memory. | 1444 // because the graphics memory (?) sometimes masks physical memory. |
1445 // If you want to change the definition of a server class machine | 1445 // If you want to change the definition of a server class machine |
1446 // on some OS or platform, e.g., >=4GB on Windohs platforms, | 1446 // on some OS or platform, e.g., >=4GB on Windows platforms, |
1447 // then you'll have to parameterize this method based on that state, | 1447 // then you'll have to parameterize this method based on that state, |
1448 // as was done for logical processors here, or replicate and | 1448 // as was done for logical processors here, or replicate and |
1449 // specialize this method for each platform. (Or fix os to have | 1449 // specialize this method for each platform. (Or fix os to have |
1450 // some inheritance structure and use subclassing. Sigh.) | 1450 // some inheritance structure and use subclassing. Sigh.) |
1451 // If you want some platform to always or never behave as a server | 1451 // If you want some platform to always or never behave as a server |