Am 15.11.2017 um 15:19 schrieb Harry Schmalzbauer:
Bezüglich Peter Grehan's Nachricht vom 03.01.2017 20:36 (localtime):
Hi Harry,

trying to use bhyve(8) with virtio-blk and Windows guest results in core
dump:
Assertion failed: (n >= 2 && n <= BLOCKIF_IOV_MAX + 2), function
pci_vtblk_proc, file usr.sbin/bhyve/pci_virtio_block.c, line
216.
Abort trap (core dumped)

Unfortunately this is on a production-test machine which lacks gdb etc.
Will try to reproduce on antoher machine, but maybe someone already
knows that problem?
  virtio-blk isn't currently supported with Windows guests. You'll need
to use ahci-hd for now.

  However, I do have a fix that can hopefully be committed shortly.
…

Mising in another reply:

Wiadomość napisana przez Harry Schmalzbauer <free...@omnilan.de
<mailto:free...@omnilan.de>> w dniu 03.01.2017, o godz. 20:33:
Will try to reproduce on antoher machine, but maybe someone already
knows that problem?
I've seen that problem and fixed it, will upstream the patch later today.

JFYI, fixing
commit:
https://github.com/freenas/os/commit/0e4d6e1826f8aa7041cbeeb4365c797eeec5c5f4

Thanks Jakub for the info.

I can confirm that increasing BLOCKIF_IOV_MAX from 33 to 128, like the
diff shows, solved the problem for me.
I've successfully done some performace tests on Windows7 (virtio-blk vs.
ahci,hd:) and also migrated one Server 2012R2 to bhyve using virtio-blk.

Peter, is your mentioned fix different from just increasing BLOCKIF_IOV_MAX?
If not, would you commit that please?

I hope that I don't bug people knowing better, but this simple diff makes virtio-blk usable for Windows 7.
Is there any reason not to commit?

Index: src/usr.sbin/bhyve/block_if.h
===================================================================
--- usr.sbin/bhyve/block_if.h       (Revision 325745)
+++ usr.sbin/bhyve/block_if.h       (Arbeitskopie)
@@ -39,7 +39,7 @@
 #include <sys/uio.h>
 #include <sys/unistd.h>

-#define BLOCKIF_IOV_MAX                33      /* not practical to be IOV_MAX */ +#define BLOCKIF_IOV_MAX                128     /* not practical to be IOV_MAX */

 struct blockif_req {
        struct iovec    br_iov[BLOCKIF_IOV_MAX];

Thanks,

-harry
_______________________________________________
freebsd-virtualization@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
To unsubscribe, send any mail to 
"freebsd-virtualization-unsubscr...@freebsd.org"

Reply via email to