Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/vm/gc_implementation/shared/mutableSpace.cpp
          +++ new/src/share/vm/gc_implementation/shared/mutableSpace.cpp
↓ open down ↓ 43 lines elided ↑ open up ↑
  44   44  
  45   45  void MutableSpace::numa_setup_pages(MemRegion mr, bool clear_space) {
  46   46    if (!mr.is_empty()) {
  47   47      size_t page_size = UseLargePages ? alignment() : os::vm_page_size();
  48   48      HeapWord *start = (HeapWord*)round_to((intptr_t) mr.start(), page_size);
  49   49      HeapWord *end =  (HeapWord*)round_down((intptr_t) mr.end(), page_size);
  50   50      if (end > start) {
  51   51        size_t size = pointer_delta(end, start, sizeof(char));
  52   52        if (clear_space) {
  53   53          // Prefer page reallocation to migration.
  54      -        os::free_memory((char*)start, size);
       54 +        os::free_memory((char*)start, size, page_size);
  55   55        }
  56   56        os::numa_make_global((char*)start, size);
  57   57      }
  58   58    }
  59   59  }
  60   60  
  61   61  void MutableSpace::pretouch_pages(MemRegion mr) {
  62   62    for (volatile char *p = (char*)mr.start(); p < (char*)mr.end(); p += os::vm_page_size()) {
  63   63      char t = *p; *p = t;
  64   64    }
↓ open down ↓ 195 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX