Bug 218715 - e1000 emulation in bhyve will lock up under Windows guests
Summary: e1000 emulation in bhyve will lock up under Windows guests
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: CURRENT
Hardware: amd64 Any
: --- Affects Some People
Assignee: freebsd-virtualization (Nobody)
URL:
Keywords: bhyve
Depends on:
Blocks:
 
Reported: 2017-04-17 18:35 UTC by Peter Grehan
Modified: 2021-04-25 00:11 UTC (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Grehan freebsd_committer freebsd_triage 2017-04-17 18:35:55 UTC
When using the e1000 emulation in bhyve with Windows guests, it's possible to get a lockup where a single vCPU spins at 100%.

This can be reproduced within 10 minutes or so by running iperf3 on Windows to the host. In normal use, the lockup can take hours or even weeks, but seems to eventually occur.

A workaround is to use the virtio network drivers on Windows with the virtio-net emulation on bhyve.
Comment 1 Reshad Patuck 2018-09-11 11:46:44 UTC
Has anyone run into this recently, or has this been fixed upstream?

I ran into what this describes today (using a build form Feb 2018) while copying files over RDP to a VM ~300 MB of files over a local network was good enough to hang the VM.

Even the VNC console was unresponsive after this and htop shows 100% CPU.
My bhyve VM is set to 2 virtual cpus.

Let me know if there is anything I can do to help triage/fix this.

I can confirm virtio does not have this problem, have copied a few GBs of data over RDP without any issues.
Comment 2 rob2g2 2021-04-08 10:52:37 UTC
ran into the same problem on a 12.2-RELEASE-p6 system.

Windows sometimes crashes after a few minutes, and bhyve exiting shows:

rdmsr to register 0x3a on vcpu 0
e82545: TSO hdrlen too small for vlan insertion (0 vs 12) -- dropped
e82545: TSO hdrlen too small for vlan insertion (0 vs 12) -- dropped
Assertion failed: (dtype == ntype), function e82545_transmit, file /usr/src/usr.sbin/bhyve/pci_e82545.c, line 1137.
Abort trap
rdmsr to register 0x3a on vcpu 0
Segmentation fault
Comment 3 Peter Grehan freebsd_committer freebsd_triage 2021-04-25 00:11:40 UTC
I believe this was fixed with this commit:

"bhyve: Update TX descriptor base address and host mapping on change"
https://github.com/freebsd/freebsd-src/commit/60dc6bee

This change was MFCd to stable/12, but later than the 12.2 release.