qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: mst <1924912@bugs.launchpad.net>
To: qemu-devel@nongnu.org
Subject: Re: [Bug 1924912] VirtIO drivers don't work on Windows: "GLib: Too many handles to wait for!" crash
Date: Wed, 26 May 2021 09:47:59 -0000	[thread overview]
Message-ID: <20210526054632-mutt-send-email-mst@kernel.org> (raw)
Message-ID: <20210526094759._YN3XDBp7oXLOaH0hLMznfLQCIuHTnVe0MO-9cbeYkM@z> (raw)
In-Reply-To: b48d2719-d334-2c16-be32-f3df52d415c7@vivier.eu

So it's a virtio console issue on a windows host.

[#0 init_stage2(2:2)]: VirtIOConsole: Found @ PCI [0000:00:04:00]
[#0 init_stage2(2:2)]: Trying to unregister unused handler (?)
[#0 init_stage2(2:2)]: VirtIOConsole: Multi port is not yet supported!
[#0 init_stage2(2:2)]: VirtIOConsole: cols: 0, rows: 0, max nr ports 0
qemu-system-i386.exe: warning: GLib: Too many handles to wait for!

Laurent?


On Mon, Apr 19, 2021 at 04:30:23PM +0200, Laurent Vivier wrote:
> Le 19/04/2021 à 12:39, Stefan Weil a écrit :
> > I can confirm the issue also with latest official QEMU sources.
> > 
> > Related issue URLs:
> > 
> > https://github.com/tesseract-ocr/tesseract/issues/2838
> > 
> > https://bugs.launchpad.net/qemu/+bug/1924912
> > 
> > Instructions and files required to reproduce the issue:
> > 
> > https://qemu.weilnetz.de/test/bugs/1924912/
> > 
> > Michael, Laurent, maybe you have an idea how to narrow down this issue?
> 
> Could it be related to the number of file descriptors that can differ between linux an windows?
> 
> We have a series of patches that sets the number of queues to the number of vCPU:
> 
> a4eef0711b2c vhost-user-blk-pci: default num_queues to -smp N
> 9445e1e15e66 virtio-blk-pci: default num_queues to -smp N
> 6a558822849f virtio-scsi-pci: default num_queues to -smp N
> 4e5163bd8444 virtio-scsi: introduce a constant for fixed virtqueues
> 1436f32a84c3 virtio-pci: add virtio_pci_optimal_num_queues() helper
> 
> And I think it can have inpact on the number of open file descriptors.
> 
> You can try by specifiying "num_queues=1" with the virtio interfaces on the QEMU command line.
> (ot choose a machine type earlier than 5.2)
> 
> Thanks,
> Laurent

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1924912

Title:
  VirtIO drivers don't work on Windows: "GLib: Too many handles to wait
  for!" crash

Status in QEMU:
  Fix Released

Bug description:
  I ran SerenityOS <https://github.com/SerenityOS/serenity> out of WSL2
  with native Windows QEMU. The system runs fine on the Linux QEMU (with
  Windows X-Server). However, with Windows QEMU I get a hard crash after
  the following output:

  ```
  [#0 colonel(0:0)]: Scheduler[0]: idle loop running
  [init_stage2(2:2)]: PCI [0000:00:00:00] PCI::ID [8086:1237]
  [init_stage2(2:2)]: PCI [0000:00:01:00] PCI::ID [8086:7000]
  [init_stage2(2:2)]: PCI [0000:00:01:01] PCI::ID [8086:7010]
  [init_stage2(2:2)]: PCI [0000:00:01:02] PCI::ID [8086:7020]
  [init_stage2(2:2)]: PCI [0000:00:01:03] PCI::ID [8086:7113]
  [init_stage2(2:2)]: PCI [0000:00:02:00] PCI::ID [1234:1111]
  [init_stage2(2:2)]: PCI [0000:00:03:00] PCI::ID [8086:2922]
  [init_stage2(2:2)]: PCI [0000:00:04:00] PCI::ID [1af4:1003]
  [init_stage2(2:2)]: PCI [0000:00:05:00] PCI::ID [1af4:1005]
  [init_stage2(2:2)]: PCI [0000:00:06:00] PCI::ID [8086:100e]
  [#0 init_stage2(2:2)]: BXVGA: framebuffer @ P0xf8000000
  [#0 init_stage2(2:2)]: BXVGADevice resolution set to 1024x768 (pitch=4096)
  [init_stage2(2:2)]: UHCI: Controller found PCI::ID [8086:7020] @ PCI [0000:00:01:02]
  [init_stage2(2:2)]: UHCI: I/O base IO c080
  [init_stage2(2:2)]: UHCI: Interrupt line: 11
  [#0 init_stage2(2:2)]: UHCI: Allocated framelist at physical address P0x00e40000
  [#0 init_stage2(2:2)]: UHCI: Framelist is at virtual address V0xc115d000
  [#0 init_stage2(2:2)]: UHCI: QH(0xc115f000) @ 14946304: link_ptr=14946338, element_link_ptr=1
  [#0 init_stage2(2:2)]: UHCI: QH(0xc115f020) @ 14946336: link_ptr=14946370, element_link_ptr=1
  [#0 init_stage2(2:2)]: UHCI: QH(0xc115f040) @ 14946368: link_ptr=14946402, element_link_ptr=1
  [#0 init_stage2(2:2)]: UHCI: QH(0xc115f060) @ 14946400: link_ptr=14946434, element_link_ptr=1
  [#0 init_stage2(2:2)]: UHCI: QH(0xc115f080) @ 14946432: link_ptr=14958593, element_link_ptr=1
  [#0 init_stage2(2:2)]: UHCI: Reset completed
  [#0 init_stage2(2:2)]: UHCI: Started
  [#0 init_stage2(2:2)]: DMIExpose: SMBIOS 32bit Entry point @ P0x000f5870
  [#0 init_stage2(2:2)]: DMIExpose: Data table @ P0x000f5890
  [#0 init_stage2(2:2)]: VirtIOConsole: Found @ PCI [0000:00:04:00]
  [#0 init_stage2(2:2)]: Trying to unregister unused handler (?)
  [#0 init_stage2(2:2)]: VirtIOConsole: Multi port is not yet supported!
  [#0 init_stage2(2:2)]: VirtIOConsole: cols: 0, rows: 0, max nr ports 0
  qemu-system-i386.exe: warning: GLib: Too many handles to wait for!
  ```

  The lines starting with [ are SerenityOS output; QEMU warns "GLib: Too
  many handles to wait for!" and crashes right after (can't even Ctrl-C
  in the WSL command line, force-close in Windows necessary). A window
  is still spawned but as the OS already switched out of text mode, just
  a black screen is visible as QEMU crashes.

  I first thought this to be an issue with SerenityOS and reported it
  over there: <https://github.com/SerenityOS/serenity/issues/6422>. The
  kernel devs pointed out that this seems to be a VirtIO driver/device
  issue on the Windows build of QEMU, because the Serenity kernel tries
  to initialize VirtIO devices which apparently crashes QEMU. There will
  be mitigations from the SerenityOS side (by allowing to disable VirtIO
  on boot) but it would of course be great if QEMU handled this
  properly.

  Version info: Both QEMU 6.0.0-rc3 and 5.2.0 exhibit this issue.
  Windows release is 20H2, WSL2 is running Debian 10.9. SerenityOS has
  no proper version but it was reproduced on the most current commits as
  of 18/04/2021.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1924912/+subscriptions


  parent reply	other threads:[~2021-05-26  9:56 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-18 13:16 [Bug 1924912] [NEW] VirtIO drivers don't work on Windows: "GLib: Too many handles to wait for!" crash kleines Filmröllchen
2021-04-18 13:35 ` [Bug 1924912] " Stefan Weil
2021-04-18 14:34 ` kleines Filmröllchen
2021-04-19 10:39   ` [Bug 1924912] " Stefan Weil
2021-04-19 11:30     ` Stefan Weil
2021-04-19 14:30     ` Laurent Vivier
2021-04-19 14:30       ` Laurent Vivier
2021-04-19 15:28       ` Stefan Weil
2021-05-26  9:47       ` Michael S. Tsirkin [this message]
2021-05-26  9:47         ` mst
2021-05-26 10:16         ` Laurent Vivier
2021-04-19 14:30 ` [Bug 1924912] " Laurent Vivier
2021-05-15 11:20 ` Thomas Huth
2021-05-17 14:56 ` kleines Filmröllchen

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=20210526054632-mutt-send-email-mst@kernel.org \
    --to=1924912@bugs.launchpad.net \
    --cc=qemu-devel@nongnu.org \
    /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;
as well as URLs for NNTP newsgroup(s).