Author: chuck
Date: Wed Dec 2 15:59:08 2020
New Revision: 368275
URL: https://svnweb.freebsd.org/changeset/base/368275
Log:
nvme: Fix typo in definition
Change occurrences of "selt test" to "self tests in the NVMe header
file.
Reviewed by: imp, mav
MFC after:1 week
Differen
Author: chuck
Date: Mon Aug 24 01:51:21 2020
New Revision: 364603
URL: https://svnweb.freebsd.org/changeset/base/364603
Log:
bhyve: NVMe queue create must init head/tail
The NVMe emulation code did not explicitly initialize queue head and
tail pointers on queue creation. As these pointers
Author: chuck
Date: Mon Aug 24 01:51:17 2020
New Revision: 364602
URL: https://svnweb.freebsd.org/changeset/base/364602
Log:
bhyve: NVMe set nominal health values
Some operating systems believe bhyve's emulated NVMe drive is failing
based on certain values in the SMART / Health Informatio
Author: chuck
Date: Mon Jun 29 00:31:24 2020
New Revision: 362748
URL: https://svnweb.freebsd.org/changeset/base/362748
Log:
bhyve: add locks around NVMe queue accesses
The NVMe code attempted to ensure thread safety through a combination of
using atomics and a "busy" flag. But this appro
Author: chuck
Date: Mon Jun 29 00:32:08 2020
New Revision: 362761
URL: https://svnweb.freebsd.org/changeset/base/362761
Log:
bhyve: Add AER support to NVMe emulation
This adds support to bhyve's NVMe device emulation for processing Async
Event Requests but not returning them (i.e. Async E
Author: chuck
Date: Mon Jun 29 00:32:11 2020
New Revision: 362762
URL: https://svnweb.freebsd.org/changeset/base/362762
Log:
bhyve: add basic NVMe Firmware Commit support
This commit updates the Identify Controller data to advertise the
Controller supports a single firmware slot and that
Author: chuck
Date: Mon Jun 29 00:32:01 2020
New Revision: 362759
URL: https://svnweb.freebsd.org/changeset/base/362759
Log:
bhyve: implement NVMe SMART data I/O statistics
SMART data in NVMe includes statistics for number of read and write
commands issued as well as the number of "data u
Author: chuck
Date: Mon Jun 29 00:32:15 2020
New Revision: 362763
URL: https://svnweb.freebsd.org/changeset/base/362763
Log:
bhyve: add NVMe Feature Interrupt Vector Config
This adds support for NVMe Get Features, Interrupt Vector Config
parameter error checking done by the UNH compliance
Author: chuck
Date: Mon Jun 29 00:31:54 2020
New Revision: 362757
URL: https://svnweb.freebsd.org/changeset/base/362757
Log:
bhyve: base pci_nvme_ioreq size on advertised MDTS
NVMe controllers advertise their Max Data Transfer Size (MDTS) to limit
the number of page descriptors in an I/O
Author: chuck
Date: Mon Jun 29 00:32:21 2020
New Revision: 362765
URL: https://svnweb.freebsd.org/changeset/base/362765
Log:
bhyve: NVMe handle zero length DSM ranges
Dataset Management range specifications may have a zero length (a.k.a.
an empty range definition). Handle the case of all
Author: chuck
Date: Mon Jun 29 00:31:51 2020
New Revision: 362756
URL: https://svnweb.freebsd.org/changeset/base/362756
Log:
bhyve: refactor NVMe I/O read/write
Split the NVM I/O function (i.e. nvme_opc_write_read) into separate
functions - one for RAM based backing-store and another for
Author: chuck
Date: Mon Jun 29 00:32:18 2020
New Revision: 362764
URL: https://svnweb.freebsd.org/changeset/base/362764
Log:
bhyve: fix NVMe Get Features, Predictable Latency
If the Predictable Latency Mode is not supported, NVMe Controllers must
return Invalid Field in Command status for
Author: chuck
Date: Mon Jun 29 00:31:47 2020
New Revision: 362755
URL: https://svnweb.freebsd.org/changeset/base/362755
Log:
bhyve: implement NVMe Format NVM command
The Format NVM command mainly allows the host to specify the block size
and protection information used for the Namespace.
Author: chuck
Date: Mon Jun 29 00:32:24 2020
New Revision: 362766
URL: https://svnweb.freebsd.org/changeset/base/362766
Log:
bhyve: fix NVMe Active Namespace list
The NVMe specification requires unused entries in the Identify, Active
Namespace ID data to be zero. Fix is bzero the provided
Author: chuck
Date: Mon Jun 29 00:32:04 2020
New Revision: 362760
URL: https://svnweb.freebsd.org/changeset/base/362760
Log:
bhyve: validate the NVMe LBA start and count
Add checks that the combination of Starting LBA and Number of Logical
Blocks in a command will not exceed the range of
Author: chuck
Date: Mon Jun 29 00:31:37 2020
New Revision: 362752
URL: https://svnweb.freebsd.org/changeset/base/362752
Log:
bhyve: fix NVMe queue creation and deletion
Add checks for various types of invalid I/O Queue Create and Delete
command parameters, including:
- QID=0
- QID>M
Author: chuck
Date: Mon Jun 29 00:31:58 2020
New Revision: 362758
URL: https://svnweb.freebsd.org/changeset/base/362758
Log:
bhyve: validate NVMe deallocate range values
For NVMe emulation, validate the Data Set Management LBA ranges do not
exceed the capacity of the backing storage. If t
Author: chuck
Date: Mon Jun 29 00:31:44 2020
New Revision: 362754
URL: https://svnweb.freebsd.org/changeset/base/362754
Log:
bhyve: make unsupported NVMe commands a debug message
Tested by:Jason Tubnor
MFC after:2 weeks
Differential Revision: https://reviews.freebsd.org/D24888
Author: chuck
Date: Mon Jun 29 00:31:27 2020
New Revision: 362749
URL: https://svnweb.freebsd.org/changeset/base/362749
Log:
bhyve: Consolidate NVMe CQ update
Consolidate the code which writes Completion Queue entries and updates
the CQ doorbell value. While in the neighborhood, convert t
Author: chuck
Date: Mon Jun 29 00:31:41 2020
New Revision: 362753
URL: https://svnweb.freebsd.org/changeset/base/362753
Log:
bhyve: add more compliant NVMe Get/Set Features
Create a generic Get/Set Features by saving off the contents of CDW11
from the Set command and returning the saved v
Author: chuck
Date: Mon Jun 29 00:31:34 2020
New Revision: 362751
URL: https://svnweb.freebsd.org/changeset/base/362751
Log:
bhyve: fix NVMe Get Log Page command
Fix the logic in nvme_opc_get_log_page to calculate the number of DWORDS
(uint32_t) instead of WORDS (uint16_t) for the byte le
Author: chuck
Date: Mon Jun 29 00:31:30 2020
New Revision: 362750
URL: https://svnweb.freebsd.org/changeset/base/362750
Log:
bhyve: implement NVMe Namespace Identification Descriptor
NVMe 1.3 compliant controllers must implement the Namespace
Identification Descriptor structure (i.e. CNS=
Author: chuck
Date: Mon Jun 29 00:31:20 2020
New Revision: 362747
URL: https://svnweb.freebsd.org/changeset/base/362747
Log:
bhyve: add a comment explaining NVME dsm option
Tested by:Jason Tubnor
MFC after:2 weeks
Differential Revision: https://reviews.freebsd.org/D24881
Modifi
Author: chuck
Date: Mon Jun 29 00:31:17 2020
New Revision: 362746
URL: https://svnweb.freebsd.org/changeset/base/362746
Log:
bhyve: implement NVMe Flush command
This adds support for the NVMe I/O command Flush. For block-based
devices, submit a DIOCGFLUSH to the backing storage. Otherwise
Author: chuck
Date: Mon Jun 29 00:31:11 2020
New Revision: 362744
URL: https://svnweb.freebsd.org/changeset/base/362744
Log:
bhyve: convert NVMe logging statements
Convert the debug and warning logging macros to be parameterized and
correctly use bhyve's PRINTLN macro.
Reviewed by:
+ * Copyright (c) 2020 Chuck Tuffli
*
* Function crc16 Copyright (c) 2017, Fedor Uporov
* Obtained from function ext2_crc16() in sys/fs/ext2fs/ext2_csum.c
@@ -1386,6 +1387,122 @@ pci_nvme_io_partial(struct blockif_req *br, int err)
pthread_cond_signal(&req->cv);
}
+stat
Author: chuck
Date: Wed Jun 10 20:12:45 2020
New Revision: 362027
URL: https://svnweb.freebsd.org/changeset/base/362027
Log:
pci: loosen PCIe hot-plug requirements
The original PCIe hot-plug code required a couple of things which cause
PCI probing errors on the QEMU Q35 system and possibl
Author: chuck
Date: Fri Mar 27 15:28:05 2020
New Revision: 359363
URL: https://svnweb.freebsd.org/changeset/base/359363
Log:
bhyve: refactor NVMe namespace initialization
Pass the struct pci_nvme_blockstore pointer for this namespace to the
namespace initialization function instead of onl
Author: chuck
Date: Fri Mar 27 15:28:00 2020
New Revision: 359362
URL: https://svnweb.freebsd.org/changeset/base/359362
Log:
bhyve: refactor NVMe PRP memcpy
Add a "copy direction" parameter to nvme_prp_memcpy such that data can
be copied to the memory specified by the PRP entries (current
Author: chuck
Date: Fri Mar 27 15:28:27 2020
New Revision: 359367
URL: https://svnweb.freebsd.org/changeset/base/359367
Log:
bhyve: fix NVMe emulation update of SQHD
The SQHD field of a Completion Queue entry indicates the current
Submission Queue head pointer value. The head pointer repr
Author: chuck
Date: Fri Mar 27 15:28:22 2020
New Revision: 359366
URL: https://svnweb.freebsd.org/changeset/base/359366
Log:
bhyve: fix NVMe emulation missed interrupts
The bhyve NVMe emulation has a race in the logic which generates command
completion interrupts. On FreeBSD guests, this
Author: chuck
Date: Fri Mar 27 15:28:11 2020
New Revision: 359364
URL: https://svnweb.freebsd.org/changeset/base/359364
Log:
bhyve: implement NVMe deallocate command
This adds support for the Dataset Management (DSM) command to the NVMe
emulation in general, and more specifically, for the
Author: chuck
Date: Fri Mar 27 15:28:16 2020
New Revision: 359365
URL: https://svnweb.freebsd.org/changeset/base/359365
Log:
bhyve: use STAILQ in NVMe emulation
Use the standard queue(3) macros instead of hand-crafted linked list
code.
Reviewed by: imp, jhb
Approved by: jhb (main
Author: chuck
Date: Sat Apr 13 23:37:27 2019
New Revision: 346194
URL: https://svnweb.freebsd.org/changeset/base/346194
Log:
Revert r345171 pending review
Backing out commit pending further discussion on the PCIe version
supported by pseudo (i.e. emulated) devices. See Differential for
Author: chuck
Date: Fri Apr 5 16:54:16 2019
New Revision: 345956
URL: https://svnweb.freebsd.org/changeset/base/345956
Log:
bhyve: Fix NVMe BAR size calculation
The NVMe specification defines bits 13:4 of BAR0 as Reserved (i.e. 0x0).
Most drivers do not enforce this, but the Windows NVMe
Author: chuck
Date: Fri Apr 5 16:54:20 2019
New Revision: 345957
URL: https://svnweb.freebsd.org/changeset/base/345957
Log:
bhyve: Fix NVMe data structure copy to guest
bhyve's NVMe emulation was transferring Identify data back to the guest
incorrectly causing memory corruptions. These c
Author: chuck
Date: Wed Jul 17 03:19:30 2019
New Revision: 350077
URL: https://svnweb.freebsd.org/changeset/base/350077
Log:
bhyve: update the NVMe CQ based on the status
Instead of skipping the NVMe Completion Queue update based on the
opcode, define a synthetic status value which indica
Author: chuck
Date: Sun Jul 14 03:49:48 2019
New Revision: 349981
URL: https://svnweb.freebsd.org/changeset/base/349981
Log:
Fix a typo in r349969
OUI_FRREBSD_NVME_HIGH should have been OUI_FREEBSD_NVME_HIGH
Caught by:Gary Jennejohn
Modified:
head/sys/net/ieee_oui.h
Modified: h
On Sat, Jul 13, 2019 at 6:08 AM Gary Jennejohn wrote:
>
> On Sat, 13 Jul 2019 12:48:29 + (UTC)
> Chuck Tuffli wrote:
>
> > Author: chuck
> > Date: Sat Jul 13 12:48:28 2019
> > New Revision: 349969
> > URL: https://svnweb.freebsd.org/ch
Author: chuck
Date: Sat Jul 13 12:48:28 2019
New Revision: 349969
URL: https://svnweb.freebsd.org/changeset/base/349969
Log:
bhyve: Create EUI64 for NVMe namespaces
Accept an IEEE Extended Unique Identifier (EUI-64) from the command
line for each NVMe namespace. If one isn't provided, it
Author: chuck
Date: Sun Jun 9 02:06:31 2019
New Revision: 348824
URL: https://svnweb.freebsd.org/changeset/base/348824
Log:
Fix uninitialized variable in camdd
gcc builds were failing because of this uninitialized warning.
Reported by: bz, imp
Approved by: imp (mentor)
Discusse
On Sat, Jun 8, 2019 at 10:17 AM Chuck Tuffli wrote:
>
> Author: chuck
> Date: Sat Jun 8 17:17:17 2019
> New Revision: 348806
> URL: https://svnweb.freebsd.org/changeset/base/348806
>
> Log:
> Add NVMe support to camdd(8)
>
> Reviewed by: ken
> Approve
Author: chuck
Date: Sat Jun 8 17:17:17 2019
New Revision: 348806
URL: https://svnweb.freebsd.org/changeset/base/348806
Log:
Add NVMe support to camdd(8)
Reviewed by: ken
Approved by: ken (mentor)
MFC after:1 week
Differential Review: https://reviews.freebsd.org/D12141
Modified
Author: chuck
Date: Fri Jun 7 18:34:48 2019
New Revision: 348786
URL: https://svnweb.freebsd.org/changeset/base/348786
Log:
Fix nda(4) PCIe link status output
Differentiate between PCI Express Endpoint devices and Root Complex
Integrated Endpoints in the nda driver. The Link Status and C
Author: chuck
Date: Fri Jun 7 17:09:49 2019
New Revision: 348781
URL: https://svnweb.freebsd.org/changeset/base/348781
Log:
bhyve: Add PCIe Integrated Endpoint capability
The NVMe CAM driver reports the PCIe Link Capability and Status for
devices. For emulated bhyve NVMe devices, this lo
Author: chuck
Date: Sat Apr 13 23:37:27 2019
New Revision: 346194
URL: https://svnweb.freebsd.org/changeset/base/346194
Log:
Revert r345171 pending review
Backing out commit pending further discussion on the PCIe version
supported by pseudo (i.e. emulated) devices. See Differential for
Author: chuck
Date: Fri Apr 5 16:54:16 2019
New Revision: 345956
URL: https://svnweb.freebsd.org/changeset/base/345956
Log:
bhyve: Fix NVMe BAR size calculation
The NVMe specification defines bits 13:4 of BAR0 as Reserved (i.e. 0x0).
Most drivers do not enforce this, but the Windows NVMe
Author: chuck
Date: Fri Apr 5 16:54:20 2019
New Revision: 345957
URL: https://svnweb.freebsd.org/changeset/base/345957
Log:
bhyve: Fix NVMe data structure copy to guest
bhyve's NVMe emulation was transferring Identify data back to the guest
incorrectly causing memory corruptions. These c
>>
> >> On Fri, 15 Mar 2019 at 15:11, Chuck Tuffli wrote:
> >>> bzero(&pciecap, sizeof(pciecap));
> > ...
> >>> + pciecap.dev_capabilities = PCIEM_CAP_ROLE_ERR_RPT;
> >>
> >> If the message you sa
Author: chuck
Date: Fri Mar 15 02:11:28 2019
New Revision: 345171
URL: https://svnweb.freebsd.org/changeset/base/345171
Log:
Fix bhyve PCIe capability emulation
PCIe devices starting with version 1.1 must set the Role-Based Error
Reporting bit.
And while we're in the neighborhood, ge
Author: chuck
Date: Fri Mar 15 02:11:27 2019
New Revision: 345170
URL: https://svnweb.freebsd.org/changeset/base/345170
Log:
Fix bhyve's NVMe Identify Namespace data
The NVMe Identify Namespace data structure's Number of LBA Formats
(NLBAF) field is a 0's based value (i.e. 0x0 means 1). S
Author: chuck
Date: Tue Jan 8 15:30:56 2019
New Revision: 342862
URL: https://svnweb.freebsd.org/changeset/base/342862
Log:
Add NVMe drive to NOIOB quirk list
Dell-branded Intel P4600 NVMe drives benefit from NVMe 1.3's NOIOB
feature. Unfortunately just like Intel DC P4500s, they don't a
Author: chuck
Date: Fri Jan 4 15:03:35 2019
New Revision: 342762
URL: https://svnweb.freebsd.org/changeset/base/342762
Log:
Fix bhyve's NVMe Completion Queue entry values
The function which processes Admin commands was not returning the
Command Specific value in Completion Queue Entry, D
Author: chuck
Date: Fri Jan 4 15:03:30 2019
New Revision: 342761
URL: https://svnweb.freebsd.org/changeset/base/342761
Log:
Fix bhyve's NVMe queue bookkeeping
Many size / length parameters in NVMe are "0's based", meaning, a value
of 0x0 represents 1, 0x1 represents 2, etc.. While this l
Author: chuck
Date: Thu Dec 13 13:25:37 2018
New Revision: 342046
URL: https://svnweb.freebsd.org/changeset/base/342046
Log:
nda(4) fix check for Dataset Management support
In the nda(4) driver, only set DISKFLAG_CANDELETE (a.k.a. can support
BIO_DELETE) if the drive supports Dataset Mana
On Wed, Aug 22, 2018 at 6:10 AM Eitan Adler wrote:
>
> On Tue, 21 Aug 2018 at 21:29, Chuck Tuffli wrote:
> >
> > Author: chuck
> > Date: Wed Aug 22 04:29:24 2018
> > New Revision: 338182
> > URL: https://svnweb.freebsd.org/changeset/base/338182
> >
&g
Author: chuck
Date: Wed Aug 22 04:29:24 2018
New Revision: 338182
URL: https://svnweb.freebsd.org/changeset/base/338182
Log:
Make NVMe compatible with the original API
The original NVMe API used bit-fields to represent fields in data
structures defined by the specification (e.g. the op-co
Author: chuck
Date: Fri Jun 22 00:02:05 2018
New Revision: 335516
URL: https://svnweb.freebsd.org/changeset/base/335516
Log:
Fix output of linprocfs stat entry
The Linux /proc/stat entry has grown over time
v2.5.41 <
user, nice, system, idle
v2.5.41
user, nice, system, id
Author: chuck
Date: Fri Jun 22 00:02:03 2018
New Revision: 335515
URL: https://svnweb.freebsd.org/changeset/base/335515
Log:
Fix the Linux kernel version number calculation
The Linux compatibility code was converting the version number (e.g.
2.6.32) in two different ways and then comparin
Author: chuck
Date: Fri Jun 15 15:22:27 2018
New Revision: 335205
URL: https://svnweb.freebsd.org/changeset/base/335205
Log:
Add linprocfs support for min_free_kbytes
This adds linprocfs support for proc/sys/vm/min_free_kbytes which the
free program requires for correct operation. The app
On Thu, Feb 22, 2018 at 10:04 AM, Ian Lepore wrote:
> On Thu, 2018-02-22 at 17:47 +, Alan Somers wrote:
>> Author: asomers
>> Date: Thu Feb 22 17:47:16 2018
>> New Revision: 329830
>> URL: https://svnweb.freebsd.org/changeset/base/329830
>>
>> Log:
>> nvmecontrol: fix build on amd64/clang
>>
r\n...@freebsd.org\n2015/07/05"]
+chuck [label="Chuck Tuffli\nch...@freebsd.org\n2017/09/06"]
cognet [label="Olivier Houchard\ncog...@freebsd.org\n2002/10/09"]
cokane [label="Coleman Kane\ncok...@freebsd.org\n2000/06/19"]
cperciva [label="Colin Percival\n
62 matches
Mail list logo