Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Dec 2018 15:18:58 -0800
From:      Chuck Tuffli <chuck@freebsd.org>
To:        yuripv@yuripv.net
Cc:        freebsd-current@freebsd.org
Subject:   Re: nda(4) does not work (reliably) in VMware Workstation
Message-ID:  <CAKAYmM%2BRqymn0DXD6O43GFGMMsh790gDT95c3oQX43iaYFXVBA@mail.gmail.com>
In-Reply-To: <015e28d3-3c6f-b5f3-b41a-5f6d367dddbb@yuripv.net>
References:  <015e28d3-3c6f-b5f3-b41a-5f6d367dddbb@yuripv.net>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Sat, Dec 8, 2018 at 12:28 PM Yuri Pankov <yuripv@yuripv.net> wrote:

> Hi,
>
> Running -HEAD in VMware Workstation 15.0.2 VM.  Trying to use nda(4)
> instead of nvd(4) shows the following list of errors, and eventually
> panics:
>
> https://people.freebsd.org/~yuripv/nda1.png
> https://people.freebsd.org/~yuripv/nda2.png
>
> nvd(4) works without issues in this VM.  nda(4) works as well in VMware
> ESXi VMs.  Is this a problem with WS NVMe emulation?
>

Since I don't have access to ESXi, the attached is a speculative fix. If it
works, I'll clean this up a bit and get it committed. If not, please post
the output from:
nvmecontrol identtify nvme0

--chuck

[-- Attachment #2 --]
diff -r 1fbb2025b263 sys/cam/nvme/nvme_da.c
--- a/sys/cam/nvme/nvme_da.c	Sun Dec 09 21:53:45 2018 +0000
+++ b/sys/cam/nvme/nvme_da.c	Sun Dec 09 15:18:08 2018 -0800
@@ -798,7 +798,7 @@
 	disk->d_mediasize = (off_t)(disk->d_sectorsize * nsd->nsze);
 	disk->d_delmaxsize = disk->d_mediasize;
 	disk->d_flags = DISKFLAG_DIRECT_COMPLETION;
-//	if (cd->oncs.dsm) // XXX broken?
+	if ((cd->oncs >> NVME_CTRLR_DATA_ONCS_DSM_SHIFT) & NVME_CTRLR_DATA_ONCS_DSM_MASK)
 		disk->d_flags |= DISKFLAG_CANDELETE;
 	vwc_present = (cd->vwc >> NVME_CTRLR_DATA_VWC_PRESENT_SHIFT) &
 		NVME_CTRLR_DATA_VWC_PRESENT_MASK;

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAKAYmM%2BRqymn0DXD6O43GFGMMsh790gDT95c3oQX43iaYFXVBA>