qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] KVM freeze when using --serial


From: Thomas Kittel
Subject: [Qemu-devel] KVM freeze when using --serial
Date: Wed, 07 Apr 2010 16:32:33 +0200
User-agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090707)

Hi there,

I already posted this problem to #kvm on freenode.

Please set me in CC: when replying to this mail, as I am not subscribed to this mailing lists right now.

The Scenario is as follows:

I got 2 VM processes in userspace.

The first is started with the parameter --monitor pty.
   => This results in a file /dev/pts/x in the host,
(crw--w---- 1 kittel tty 136, 3 2010-04-07 15:51 /dev/pts/3 on my system)

Another VM is then started with the parameter --serial /dev/pts/3
   => This results in /dev/ttyS0 inside the second VM.

Both VMs are running debian lenny. The host (debian) uses qemu-kvm 0.12.3.
"startvms.sh start" is used to start the VMs.

Running the executable build from test.c in the second VM results in a freeze of this VM. (The test.c included uses /dev/ttyS1 as /dev/ttyS0 is the VMs serial console in my setup.)
The process uses 100% CPU and is stuck in kvm_mutex_lock().

Trying to use the build in gdbserver didnĀ“t work because it also locked.

Is there a way to tunnel one VMs monitor console to another VM?

Thanks Thomas




#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>

#include <signal.h>

#include <pthread.h>

void signal_handler(int signum){
        pthread_exit(NULL);
}

void *readFile(void * ptr){
        signal(SIGTERM, signal_handler);
        int fd;
        char buffer;
        fd = open("/dev/ttyS1", O_RDONLY);
        while(true){
                read(fd, &buffer, 1);
                printf("%c", buffer);
                fflush(stdout);
        }

        close(fd);
        pthread_exit(NULL);

}

int main(int argc, char** argv){
        pthread_t thread;

        pthread_create(&thread, NULL, &readFile, NULL);

        sleep(10);
                
        pthread_kill(thread, SIGTERM);
        pthread_join(thread, NULL);

}
        

Attachment: startvms.sh
Description: Bourne shell script


reply via email to

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