- VBOX: Fix regression where the ERR_CPU_VM_EXTENSIONS_DISABLED error

message wasn't being written to stderr when the VM extensions
        were disabled via the BIOS.
        
    samples/vboxwrapper/
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=25010
This commit is contained in:
Rom Walton 2012-01-08 20:18:14 +00:00
parent e8657adfd2
commit 6d731ccc6d
2 changed files with 76 additions and 66 deletions

View File

@ -290,3 +290,11 @@ David 7 Jan 2012
sched_types.h
sched_customize.cpp
validator.cpp
Rom 8 Jan 2012
- VBOX: Fix regression where the ERR_CPU_VM_EXTENSIONS_DISABLED error
message wasn't being written to stderr when the VM extensions
were disabled via the BIOS.
samples/vboxwrapper/
vboxwrapper.cpp

View File

@ -383,52 +383,7 @@ int main(int argc, char** argv) {
fprintf(
stderr,
"%s Hypervisor System Log:\n\n"
"%s\n"
"%s VM Execution Log:\n\n"
"%s\n",
boinc_msg_prefix(buf, sizeof(buf)),
system_log.c_str(),
boinc_msg_prefix(buf, sizeof(buf)),
vm_log.c_str()
);
boinc_finish(retval);
}
set_floppy_image(aid, vm);
set_port_forwarding_info(aid, vm);
set_throttles(aid, vm);
while (1) {
// Begin stopwatch timer
stopwatch_time = dtime();
// Discover the VM's current state
vm.poll();
if (boinc_status.no_heartbeat || boinc_status.quit_request) {
vm.stop();
write_checkpoint(checkpoint_cpu_time);
boinc_temporary_exit(0);
}
if (boinc_status.abort_request) {
vm.cleanup();
write_checkpoint(elapsed_time);
boinc_finish(EXIT_ABORTED_BY_CLIENT);
}
if (!vm.online) {
if (vm.crashed || (elapsed_time < vm.job_duration)) {
vm.get_system_log(system_log);
vm.get_vm_log(vm_log);
}
vm.cleanup();
write_checkpoint(elapsed_time);
if (vm.crashed || (elapsed_time < vm.job_duration)) {
fprintf(
stderr,
"%s VM Premature Shutdown Detected!!!\n",
"%s VM failed to startup!!!\n",
boinc_msg_prefix(buf, sizeof(buf))
);
if ((vm_log.find("VERR_VMX_MSR_LOCKED_OR_DISABLED") != std::string::npos) || (vm_log.find("VERR_SVM_DISABLED") != std::string::npos)) {
@ -474,6 +429,53 @@ int main(int argc, char** argv) {
} else {
fprintf(
stderr,
"%s Hypervisor System Log:\n\n"
"%s\n"
"%s VM Execution Log:\n\n"
"%s\n",
boinc_msg_prefix(buf, sizeof(buf)),
system_log.c_str(),
boinc_msg_prefix(buf, sizeof(buf)),
vm_log.c_str()
);
}
boinc_finish(retval);
}
set_floppy_image(aid, vm);
set_port_forwarding_info(aid, vm);
set_throttles(aid, vm);
while (1) {
// Begin stopwatch timer
stopwatch_time = dtime();
// Discover the VM's current state
vm.poll();
if (boinc_status.no_heartbeat || boinc_status.quit_request) {
vm.stop();
write_checkpoint(checkpoint_cpu_time);
boinc_temporary_exit(0);
}
if (boinc_status.abort_request) {
vm.cleanup();
write_checkpoint(elapsed_time);
boinc_finish(EXIT_ABORTED_BY_CLIENT);
}
if (!vm.online) {
if (vm.crashed || (elapsed_time < vm.job_duration)) {
vm.get_system_log(system_log);
vm.get_vm_log(vm_log);
}
vm.cleanup();
write_checkpoint(elapsed_time);
if (vm.crashed || (elapsed_time < vm.job_duration)) {
fprintf(
stderr,
"%s VM Premature Shutdown Detected!!!\n",
"%s NOTE: This could be like a blue-screen event in Windows, the rest of the information in this file\n"
"%s is diagnostic information generated by the hypervisor.\n"
"%s Hypervisor System Log:\n\n"
@ -483,11 +485,11 @@ int main(int argc, char** argv) {
boinc_msg_prefix(buf, sizeof(buf)),
boinc_msg_prefix(buf, sizeof(buf)),
boinc_msg_prefix(buf, sizeof(buf)),
boinc_msg_prefix(buf, sizeof(buf)),
system_log.c_str(),
boinc_msg_prefix(buf, sizeof(buf)),
vm_log.c_str()
);
}
} else {
fprintf(
stderr,