Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 May 2019 09:40:27 -0700
From:      John Baldwin <jhb@FreeBSD.org>
To:        "Rodney W. Grimes" <freebsd-rwg@gndrsh.dnsmgr.net>, Robert Crowston <crowston@protonmail.com>
Cc:        freebsd-virtualization@freebsd.org
Subject:   Re: Windows 10 guests fail to boot when attempting to passthrough network card
Message-ID:  <4460bfe3-ccc8-f982-9097-954c01331502@FreeBSD.org>
In-Reply-To: <201905191324.x4JDOOoh069468@gndrsh.dnsmgr.net>
References:  <201905191324.x4JDOOoh069468@gndrsh.dnsmgr.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 5/19/19 6:24 AM, Rodney W. Grimes wrote:
>> Does the card have multiple BARs? Can you send us the output of pciconf -lvb for the card?
>>
>> There is a bug in bhyve where if the OS assigns the 0xffffffff sentinel to more than one BAR simultaneously it is not compatible with bhyve?s memory model for the guest.
> 
> The "we talked" below is myself and Nick talking about exactly that
> which came from jhb@ pointing out to me in a hall wall
> conversation here at BSDCan that this is the cause of this
> problem and is a known issue.
> 
> Does anyone have fixes for this issue?

I have not tested this at all, but I have a candidate patch to fix the root
issue at https://github.com/freebsd/freebsd/compare/master...bsdjhb:bhyve_passthrough_barsize

My first guess at the problem wasn't quite right (though Windows does indeed size
BARs in parallel).  For pass-through devices we aren't currently correctly disabling
access to a BAR when the guest disables it in the PCI command register which in
turn trips the assertion when using a Windows guest, but in general we need to be
honoring the enable bits when set or cleared by the guest.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4460bfe3-ccc8-f982-9097-954c01331502>