qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [REASON][PATCH-REQUEST] Starting QEMU by PHP/Apache


From: Bolle
Subject: [Qemu-devel] Re: [REASON][PATCH-REQUEST] Starting QEMU by PHP/Apache
Date: Fri, 16 Oct 2009 06:49:13 +0200

After some research, I think that Apache with mod_php is blocking the SIGALRM.

This is not the fault of QEMU. But maybe, QEMU could check on the start-up, if SIGALRM is enabled and usable. If not, then it can bail out and inform the user about this.

I believe, there are other environments where SIGALRM is blocked too.

Andreas

PS: Sorry for not being able to provide a patch by my self.


On Wed, 14 Oct 2009 07:12:56 +0200
 "Bolle" <address@hidden> wrote:
Hello all

First, I forgot to say, that I use the QEMU stable version 11.0 on a Gentoo box. I did some more testings. The QEMU instance is starting and sometimes the OS starts to load, but then QEMU stucks and consumes 100% CPU.

I checked the startup it with strace. The start of QEMU itself produces the same output in strace, regardless if started by the PHP CLI or by mod_php from Apache.

I then attached strace to the QEMU process, and there is a big difference.

When starting QEMU with the PHP script from the CLI (as the same user as the web server), it works and I get something like that:
...
select(12, [6 11], [], [], {4, 993369}) = ? ERESTARTNOHAND (To be restarted)
--- SIGALRM (Alarm clock) @ 0 (0) ---
write(7, "\0"..., 1)                    = 1
sigreturn() = ? (mask now [])
clock_gettime(CLOCK_MONOTONIC, {2818001, 146485529}) = 0
clock_gettime(CLOCK_MONOTONIC, {2818001, 146548886}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 0 timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 250000}}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {2818001, 146758750}) = 0
clock_gettime(CLOCK_MONOTONIC, {2818001, 146819115}) = 0
clock_gettime(CLOCK_MONOTONIC, {2818001, 146879549}) = 0
clock_gettime(CLOCK_MONOTONIC, {2818001, 146938839}) = 0
--- SIGALRM (Alarm clock) @ 0 (0) ---
write(7, "\0"..., 1)                    = 1
sigreturn() = ? (mask now [])
...

If QEMU has been started by the web server with the same script and user, I get:
...
select(11, [5 10], [], [], {3, 767239}) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {2817617, 818297714}) = 0
clock_gettime(CLOCK_MONOTONIC, {2817617, 818382772}) = 0
clock_gettime(CLOCK_MONOTONIC, {2817617, 818444894}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 0 timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 250000}}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {2817617, 818698197}) = 0
clock_gettime(CLOCK_MONOTONIC, {2817617, 818759263}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 67453}}) = 0
clock_gettime(CLOCK_MONOTONIC, {2817617, 818894002}) = 0
clock_gettime(CLOCK_MONOTONIC, {2817617, 818954673}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 0 timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 250000}}, NULL) = 0
...

There are no SIGALRM executed. What can be the reason for that ?

Andreas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]