Fix regression introduced by -machine accel=

Commit 85097db6 changed the timing when kvm_allowed is set until after
kvm is initialized.  During initialization, the ioeventfd initialization code
checks kvm_enabled() and after this change, ioeventfd is effectively disabled.

This causes a significant regression in performance.

Fix this by setting kvm_allowed before calling init.

Reported-by: Khoa Huynh <khoa@us.ibm.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Anthony Liguori 2011-06-06 08:25:06 -05:00
parent 25f3151ece
commit a16c53b101
1 changed files with 2 additions and 1 deletions

3
vl.c
View File

@ -1933,6 +1933,7 @@ static int configure_accelerator(void)
p = get_opt_name(buf, sizeof (buf), p, ':');
for (i = 0; i < ARRAY_SIZE(accel_list); i++) {
if (strcmp(accel_list[i].opt_name, buf) == 0) {
*(accel_list[i].allowed) = 1;
ret = accel_list[i].init();
if (ret < 0) {
init_failed = 1;
@ -1944,9 +1945,9 @@ static int configure_accelerator(void)
accel_list[i].name,
strerror(-ret));
}
*(accel_list[i].allowed) = 0;
} else {
accel_initalised = 1;
*(accel_list[i].allowed) = 1;
}
break;
}