Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Sep 2019 08:02:35 +0200
From:      Sebastian Huber <sebastian.huber@embedded-brains.de>
To:        FreeBSD <freebsd-hackers@freebsd.org>
Subject:   Problems with port of NVMe support
Message-ID:  <dd216882-2375-7751-ca94-57caec3763c5@embedded-brains.de>

next in thread | raw e-mail | index | archive | help
Hello,

I port currently the NVMe support from FreeBSD to RTEMS. Basically, it=20
works. I can issue administration commands and some IO commands (e.g.=20
FLUSH). I use this SSD for testing:

$ nvmecontrol identify nvme0
Controller Capabilities/Features
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D
Vendor ID:                   8086
Subsystem Vendor ID:         8086
Serial Number:               PHM27390006S280AGN
Model Number:                INTEL SSDPE21D280GA
Firmware Version:            E2010325
Recommended Arb Burst:       0
IEEE OUI Identifier:         e4 d2 5c
Multi-Path I/O Capabilities: Not Supported
Max Data Transfer Size:      131072
Controller ID:               0x0000
Version:                     0.0.0

My problem is now, that every WRITE transfer ends up in a DATA TRANSFER=20
ERROR:

nvme0: WRITE sqid:1 cid:127 nsid:1 lba:0 len:8
nvme0: DATA TRANSFER ERROR (00/04) sqid:1 cid:127 cdw0:0
nvme0: async event occurred (type 0x0, info 0x04, page 0x01)

Every READ transfer ends up in a UNRECOVERED READ ERROR:

nvme0: READ sqid:1 cid:127 nsid:1 lba:0 len:8
nvme0: UNRECOVERED READ ERROR (02/81) sqid:1 cid:127 cdw0:0
nvme0: async event occurred (type 0x0, info 0x04, page 0x01)

I see the transfers in the error log:

$ nvmecontrol logpage -p 1 nvme0=20
=20

Error Information Log=20
=20

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20
=20

Entry 01=20
=20

=3D=3D=3D=3D=3D=3D=3D=3D=3D=20
=20

  Error count:          2546=20
=20

  Submission queue ID:  1=20
=20

  Command ID:           32512=20
=20

  Status:=20
=20

   Phase tag:           0=20
=20

   Status code:         129=20
=20

   Status code type:    2=20
=20

   More:                1=20
=20

   DNR:                 1=20
=20

  Error location:       0=20
=20

  LBA:                  0=20
=20

  Namespace ID:         1=20
=20

  Vendor specific info: 0=20
=20

  Transport type:       0=20
=20

  Command specific info:0=20
=20

  Transport specific:   0=20
=20

Entry 02=20
=20

=3D=3D=3D=3D=3D=3D=3D=3D=3D=20
=20

  Error count:          2545=20
=20

  Submission queue ID:  1=20
=20

  Command ID:           32512=20
=20

  Status:=20
=20

   Phase tag:           0=20
=20

   Status code:         4=20
=20

   Status code type:    0=20
=20

   More:                1=20
=20

   DNR:                 1=20
=20

  Error location:       0=20
=20

  LBA:                  0=20
=20

  Namespace ID:         1=20
=20

  Vendor specific info: 0=20
=20

  Transport type:       0=20
=20

  Command specific info:0=20
=20

  Transport specific:   0

 From the NVMe specification I didn't get any hints what the error=20
reason could be. Maybe someone has a hint for me. The platform is a=20
T4240 PowerPC (big-endian).

--=20
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine gesch=C3=A4ftliche Mitteilung im Sinne des EHUG=
.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?dd216882-2375-7751-ca94-57caec3763c5>