VM_Interface.prepareNonParticipating();
  private final void baseGlobalPrepare(double start) {    gcInProgress = true;    Statistics.gcCount++;    gcStartTime = start;    if (verbose == 1) {      VM.sysWrite("[GC ", Statistics.gcCount);      VM.sysWrite(" Start ", (gcStartTime - bootTime));      VM.sysWrite(" s    ");      VM.sysWrite(Conversions.pagesToBytes(Plan.getPagesUsed())>>10);      VM.sysWrite(" KB ");    }    if (verbose > 2) {      VM.sysWrite("Collection ", Statistics.gcCount);      VM.sysWrite(":      reserved = ", Plan.getPagesReserved());      VM.sysWrite(" (", Conversions.pagesToBytes(Plan.getPagesReserved()) / ( 1 << 20));       VM.sysWrite(" Mb) ");      VM.sysWrite("      trigger = ", getTotalPages());      VM.sysWrite(" (", Conversions.pagesToBytes(getTotalPages()) / ( 1 << 20));       VM.sysWriteln(" Mb) ");      VM.sysWrite("  Before Collection: ");      MemoryResource.showUsage(PAGES);      VM.sysWrite("                     ");      MemoryResource.showUsage(MB);    }    globalPrepare();    VM_Interface.resetComputeAllRoots();    VM_Interface.prepareNonParticipating(); // The will fix collector threads that are not participating in thie GC.  }