apic.dump(System.out);
ioAPIC.dump(System.out);
    protected final void initializeProcessors(ResourceManager rm) {        final String cmdLine = VmSystem.getCmdLine();        if (cmdLine.indexOf("mp=no") >= 0) {            return;        }        //        final MPFloatingPointerStructure mp = MPFloatingPointerStructure.find(                rm, ResourceOwner.SYSTEM);        if (mp == null) {            BootLog.info("No MP table found");            // No MP table found.            return;        }        try {            BootLog.info("Found " + mp);            this.mpConfigTable = mp.getMPConfigTable();        } finally {            mp.release();        }        if (mpConfigTable == null) {            return;        }        mpConfigTable.dump(System.out);        final ResourceOwner owner = ResourceOwner.SYSTEM;        try {            // Create the local APIC accessor            localAPIC = new LocalAPIC(rm, owner, mpConfigTable                    .getLocalApicAddress());        } catch (ResourceNotFreeException ex) {            BootLog.error("Cannot claim APIC region");            return;        }        // Set the APIC reference of the current (bootstrap) processor        final VmX86Processor cpu = (VmX86Processor) VmMagic.currentProcessor();        cpu.setApic(localAPIC);        cpu.loadAndSetApicID();        // Find & initialize this I/O APIC.        for (MPEntry entry : mpConfigTable.entries()) {            if (entry instanceof MPIOAPICEntry) {                final MPIOAPICEntry apicEntry = (MPIOAPICEntry) entry;                if (apicEntry.getFlags() != 0) {                    try {                        // We found an enabled I/O APIC.                        final IOAPIC apic = new IOAPIC(rm, owner, apicEntry                                .getAddress());                        apic.dump(System.out);                        break;                    } catch (ResourceNotFreeException ex) {                        BootLog.error("Cannot claim I/O APIC region ", ex);                    }                }            }        }        try {            // Detect Hyper threading on current (bootstrap) processor            VmX86Processor.detectAndstartLogicalProcessors(rm);        } catch (ResourceNotFreeException ex) {            BootLog.error("Cannot claim region for logical processor startup",                    ex);        }        // Find all CPU's        for (MPEntry e : mpConfigTable.entries()) {            if (e.getEntryType() == 0) {                final MPProcessorEntry cpuEntry = (MPProcessorEntry) e;                if (cpuEntry.isEnabled() && !cpuEntry.isBootstrap()) {                    // New CPU                    final VmX86Processor newCpu = (VmX86Processor) createProcessor(                            cpuEntry.getApicID(), Vm.getVm().getSharedStatics(), cpu.getIsolatedStatics(), cpu.getScheduler());                    initX86Processor(newCpu);                    try {                        newCpu.startup(rm);                    } catch (ResourceNotFreeException ex) {                        BootLog                                .error(                                        "Cannot claim region for processor startup",                                        ex);                    }                }            }        }    }