From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andi Kleen Subject: Re: qemu polling KVM_IRQ_LINE_STATUS when stopped Date: Thu, 19 Oct 2017 17:34:49 -0700 Message-ID: <20171020003449.GG5109@tassilo.jf.intel.com> References: <87a80pihlz.fsf@linux.intel.com> <1ffc9cf7-a81c-6eeb-4823-c6e0ef53d3af@redhat.com> <20171018174946.GU5109@tassilo.jf.intel.com> <3d37ef15-932a-1492-3068-9ef0b8cd5794@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Cc: kvm@vger.kernel.org To: Paolo Bonzini Return-path: Received: from mga02.intel.com ([134.134.136.20]:44075 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751153AbdJTAev (ORCPT ); Thu, 19 Oct 2017 20:34:51 -0400 Content-Disposition: inline In-Reply-To: <3d37ef15-932a-1492-3068-9ef0b8cd5794@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Wed, Oct 18, 2017 at 09:24:33PM +0200, Paolo Bonzini wrote: > On 18/10/2017 19:49, Andi Kleen wrote: > > > > The ioctl appears to be the PIC timer > > > > - 6.36% __GI___ioctl ▒ > > kvm_vm_ioctl ▒ > > kvm_set_irq ▒ > > kvm_pic_set_irq > > PIC is the interrupt controller, why do you say the timer? What is the > QEMU side of the call stack? I did some more sampling in gdb this time. All the timer call backs I caught are rtc_period_timer. Perhaps that needs to be stopped when the guest is stopped? It also calls the ioctl: #0 0x00007f73d97175e0 in ioctl () from target:/lib64/libc.so.6 #1 0x000055ed03c7ec82 in kvm_vm_ioctl (s=s@entry=0x55ed06ba2000, type=) at /usr/src/debug/qemu-2.9.1/kvm-all.c:2136 #2 0x000055ed03c7fb15 in kvm_set_irq (s=0x55ed06ba2000, irq=, level=) at /usr/src/debug/qemu-2.9.1/kvm-all.c:1001 #3 0x000055ed03cef2c0 in kvm_pic_set_irq (opaque=, irq=, level=) at /usr/src/debug/qemu-2.9.1/hw/i386/kvm/i8259.c:114 #4 0x000055ed03cba196 in qemu_irq_raise (irq=) at /usr/src/debug/qemu-2.9.1/include/hw/irq.h:16 #5 rtc_periodic_timer (opaque=0x55ed06f88580) at /usr/src/debug/qemu-2.9.1/hw/timer/mc146818rtc.c:198 #6 0x000055ed03faf1f0 in timerlist_run_timers (timer_list=0x55ed06aafa40) at /usr/src/debug/qemu-2.9.1/util/qemu-timer.c:536 #7 0x000055ed03faf3f7 in qemu_clock_run_timers (type=QEMU_CLOCK_HOST) at /usr/src/debug/qemu-2.9.1/util/qemu-timer.c:547 #8 qemu_clock_run_all_timers () at /usr/src/debug/qemu-2.9.1/util/qemu-timer.c:662 #9 0x000055ed03faf8da in main_loop_wait (nonblocking=) at /usr/src/debug/qemu-2.9.1/util/main-loop.c:525 #10 0x000055ed03c2f0e3 in main_loop () at /usr/src/debug/qemu-2.9.1/vl.c:1898 -Andi