From: Ingo Molnar <mingo@elte.hu>
To: Asias He <asias.hejun@gmail.com>
Cc: Pekka Enberg <penberg@kernel.org>,
Cyrill Gorcunov <gorcunov@gmail.com>,
Sasha Levin <levinsasha928@gmail.com>,
Prasad Joshi <prasadjoshi124@gmail.com>,
kvm@vger.kernel.org
Subject: Re: [PATCH 4/4] kvm tools: Fix virtio console hangs by removing IRQ injection for tx path
Date: Sun, 8 May 2011 08:22:47 +0200 [thread overview]
Message-ID: <20110508062247.GA24456@elte.hu> (raw)
In-Reply-To: <1304822300-14299-1-git-send-email-asias.hejun@gmail.com>
* Asias He <asias.hejun@gmail.com> wrote:
> As virtio spec says:
>
> """
> Because this is high importance and low bandwidth, the current Linux
> implementation polls for the buffer to be used, rather than waiting
> for an interrupt, simplifying the implementation signicantly.
> """
>
> drivers/char/virtio_console.c
> send_buf() {
> ...
> /* Tell Host to go! */
> virtqueue_kick(out_vq);
> ...
> while (!virtqueue_get_buf(out_vq, &len))
> cpu_relax();
> ...
> }
>
> The console hangs can simply be reproduced by yes command which
> gives tremendous console IOs and IRQs.
>
> [ 16.786440] irq 4: nobody cared (try booting with the "irqpoll" option)
> [ 16.786440] Pid: 1437, comm: yes Tainted: G W 2.6.39-rc6+ #56
> [ 16.786440] Call Trace:
> [ 16.786440] [<c16578eb>] __report_bad_irq+0x30/0x89
> [ 16.786440] [<c10980e6>] note_interrupt+0x118/0x17a
> [ 16.786440] [<c1096e7d>] handle_irq_event_percpu+0x168/0x179
> [ 16.786440] [<c1096eba>] handle_irq_event+0x2c/0x46
> [ 16.786440] [<c1098516>] ? unmask_irq+0x1e/0x1e
> [ 16.786440] [<c1098566>] handle_level_irq+0x50/0x6e
> [ 16.786440] <IRQ> [<c102fa69>] ? do_IRQ+0x35/0x7f
> [ 16.786440] [<c1665ea9>] ? common_interrupt+0x29/0x30
> [ 16.786440] [<c16610d6>] ? _raw_spin_unlock_irqrestore+0x7/0x28
> [ 16.786440] [<c1364f65>] ? hvc_write+0x88/0x9e
> [ 16.786440] [<c1355500>] ? do_output_char+0x88/0x18a
> [ 16.786440] [<c1355631>] ? process_output+0x2f/0x42
> [ 16.786440] [<c1355af6>] ? n_tty_write+0x211/0x2dc
> [ 16.786440] [<c1059d77>] ? try_to_wake_up+0x226/0x226
> [ 16.786440] [<c13534a4>] ? tty_write+0x15e/0x1d1
> [ 16.786440] [<c12c1644>] ? security_file_permission+0x22/0x26
> [ 16.786440] [<c13558e5>] ? process_echoes+0x241/0x241
> [ 16.786440] [<c10dd9d2>] ? vfs_write+0x84/0xd7
> [ 16.786440] [<c1353346>] ? tty_write_lock+0x3d/0x3d
> [ 16.786440] [<c10ddb92>] ? sys_write+0x3b/0x5d
> [ 16.786440] [<c166594c>] ? sysenter_do_call+0x12/0x22
> [ 16.786440] handlers:
> [ 16.786440] [<c1351397>] (vp_interrupt+0x0/0x3a)
> [ 16.786440] Disabling IRQ #4
Hm, why is irq #4 active if the guest-side virtio console driver does not
handle it?
> Signed-off-by: Asias He <asias.hejun@gmail.com>
> ---
> tools/kvm/virtio/console.c | 2 --
> 1 files changed, 0 insertions(+), 2 deletions(-)
>
> diff --git a/tools/kvm/virtio/console.c b/tools/kvm/virtio/console.c
> index f5449ba..1fecf37 100644
> --- a/tools/kvm/virtio/console.c
> +++ b/tools/kvm/virtio/console.c
> @@ -171,8 +171,6 @@ static void virtio_console_handle_callback(struct kvm *self, void *param)
> len = term_putc_iov(CONSOLE_VIRTIO, iov, out);
> virt_queue__set_used_elem(vq, head, len);
> }
> -
> - virt_queue__trigger_irq(vq, virtio_console_pci_device.irq_line, &cdev.isr, self);
> }
I think this at least requires a comment at that place, that we intentionally
skip notifying the guest, because Linux guests do not use the console IRQ.
Does the guest-side virtio driver *ever* use the irq?
Thanks,
Ingo
next prev parent reply other threads:[~2011-05-08 6:22 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-08 2:38 [PATCH 4/4] kvm tools: Fix virtio console hangs by removing IRQ injection for tx path Asias He
2011-05-08 6:22 ` Ingo Molnar [this message]
2011-05-08 12:59 ` Asias He
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110508062247.GA24456@elte.hu \
--to=mingo@elte.hu \
--cc=asias.hejun@gmail.com \
--cc=gorcunov@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=levinsasha928@gmail.com \
--cc=penberg@kernel.org \
--cc=prasadjoshi124@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox