The updated version of this code is at https://reviews.freebsd.org/D14022
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Jan 23 2018
Jan 21 2018
Leon Dang has also been working on NVMe emulation, and his version works with Linux, Windows and UEFI boot. I'll post that code for review since it is a bit more recent and tested. In the meantime, that version can be seen at www.freebsd.org/~grehan/pci_nvme.c
Jan 17 2018
Jan 15 2018
Tested the SVM codepath with a Win10 guest on an AMD Sempron APU.
Add bhyve review group.
Dropping kern.hz to 50 on the Sempron seemed to show the problem a bit more: the 2nd phase of a Win10 install wasn't able to complete. With the diff, the install was able to complete. Subjectively things seemed quicker, particularly the disk-writing part of the install.
Jan 14 2018
Some more info on how timing-sensitive this is: the 10.3 install Ryzen insta-repro doesn't happen with a 4 vCPU guest on a 1.3Gzh Sempron 3850 APU, nor with 4/6/8 vCPU guests on an Opteron 6320 :( Also, Win10 Pro 2 vCPU guests install fine on both systems, where the Ryzen shows a lockup very quickly.
Jan 11 2018
The VIRQ injection doesn't cover all cases - it misses out the modification of the TPR register via CR8.
Jan 10 2018
CR8 write exits are required or the same situation will occur as with VIRQ - the update written to the V_TPR needs to be acted on immediately by the APIC emulation code since an interrupt that was blocked may need to be injected.
Jan 8 2018
Good to know that it fixes the issue on the Phenom. My Ryzen 1700 is pre-July17 so can't necessarily be trusted.
Also, I think CR8 write exits are needed to force re-evaluation of the TPR for the software APIC model.
I didn't have success with this on my Ryzen 1700, but it's also possibly buggy :( I'll try with an Opteron tomorrow.
Dec 21 2017
Dec 20 2017
This looks fine. I'll test on AMD. Some comments:
Dec 6 2017
Adding tychon@ as a subscriber: he's been doing some 9P work in recent times.
Nov 26 2017
Nov 9 2017
Thanks for this patch.
Nov 8 2017
Nov 1 2017
The OR emulation has been checked in with r325261
The OR emulation has been checked in with r325261
Oct 30 2017
Oct 27 2017
Matt Macy has some additional reset code for non-FLR devices (in his case GPGPUs).
Oct 20 2017
I disabled capsicum by commenting out the cap_enter() call, and with the above struct revert, was able to cat a .WAV file and also use mpg123 to play a long mp3 file on a FreeBSD 11.1/amd64 guest, with a cheap USB audio adapter for output. Volume control seemed to work fine with mpg123. There was a very small glitch/skip when the audio was first played (or on resume after pause in mpg123).
Oct 15 2017
Looking at this...
Sep 26 2017
There are a bunch of minor style(9) issues.
Sep 5 2017
Thanks - this keeps the behviour in sync with head where the routines are hidden in caph helpers, so my opinion is it is best to keep the catpages call.
Aug 15 2017
Some high-level comments:
Aug 3 2017
I checked the numbers and they look good.
Jul 29 2017
I'm looking at this now. I think there will need to be some changes in the mechanics for this, and also the abstraction. I'll write up something longer with more detail.
Jul 28 2017
Shutdown hooks will make it some day...
Jul 13 2017
Jul 11 2017
Jul 10 2017
Jul 6 2017
Tested fine on a Ryzen 1700, passing through an em device to an 11.1 guest, and doing lots of network file transfers.
Jul 5 2017
Thanks for this work. Let me give it a quick test (later today) to verify.
Jul 3 2017
(interested in adding bhyve support for SGX)
Jun 8 2017
Jun 1 2017
Please credit Fabian Freyer (from D7029) as the original submitter of this code when committing.
May 26 2017
May 25 2017
May 24 2017
There was already a review for this in D9033 where I pointed out the initial fix by myself that bumped the number of descs, and the subsequent backout when it broke Linux guests :(
May 18 2017
I emailed Marcelo some changes I had to this - it doesn't work as is.
Any chance this could be committed ?
May 2 2017
In D10014#219157, @glebius wrote:I missed one thing yesterday. The default for vga is "on", not "io". Lines 363-364 of pci_fbuf.c.
May 1 2017
Apr 27 2017
Apr 24 2017
Thanks for the clarification on v2.
Apr 13 2017
Apr 10 2017
You'll have to use openat(), with the fd set up prior to cap_enter(). Here's a small example from theraven@freebsd.org, who I'm sure will be happy to provide further advice :) http://www.informit.com/articles/article.aspx?p=1924012&seqNum=2
Apr 9 2017
Any thoughts on the interaction with capsicum ? Seems like you just need blanket access underneath a particular directory.
Fine to commit after the max fbuf res added.
Apr 5 2017
Fine by me. I didn't check, but were all the comments in this applied to the new revision ?
Mar 25 2017
Mar 23 2017
Mar 22 2017
Mar 21 2017
The most recent spec (Rev 3.00—December 2016, http://support.amd.com/TechDocs/48882_IOMMU.pdf) seems to indicate that v1 is the base features, and new features are described as options, so not sure how to determine if it's v2. The IVRS table does have a v1/v2 format discriminator, though that isn't printed out in the current code.
Tested fine on a Ryzen 1700 + Asus X370 mobo, with a dual-port Intel 82571 card. Both ports passed through to a FreeBSD 12-CURRENT amd64 4 vCPU guest, with iperf3/netperf stress tests run.
Mar 20 2017
Mar 16 2017
Many thanks for doing this. I'll get some detailed comments shortly.
Mar 15 2017
Mar 8 2017
That was mentioned in earlier review comments. Maybe something like a kassert_decl attribute (expanding to unused if INVARIANTS not defined) ?
Thanks for the info. I'll see if I can move this forward under a different phab review.
I emailed on 7/16/2016 asking for help on running gcc and didn't get a response.
Mar 3 2017
Thanks for keeping this going Allan.
Feb 25 2017
Feb 16 2017
Feb 14 2017
emaste - any suggestions for a good forum to discuss this ? Unfortunately it straddles the capsicum@ and virtualization@ lists :(
Feb 12 2017
robak - this is fine to commit once the last minor changes are done.
Feb 8 2017
Into the final straight now: doing a visual inspection and picking up minor style issues.
Feb 6 2017
Click on the 'Download raw diff' button on the right-hand side menu. Apply that diff to a FreeBSD source tree and rebuild.
Feb 4 2017
Feb 1 2017
Jan 30 2017
Still some of the test matrix to cover. Hopefully shortly.