Problems with port of NVMe support

Warner Losh imp at bsdimp.com
Sat Sep 14 05:08:36 UTC 2019


On Fri, Sep 13, 2019, 12:02 AM Sebastian Huber <
sebastian.huber at embedded-brains.de> wrote:

> Hello,
>
> I port currently the NVMe support from FreeBSD to RTEMS. Basically, it
> works. I can issue administration commands and some IO commands (e.g.
> FLUSH). I use this SSD for testing:
>
> $ nvmecontrol identify nvme0
> Controller Capabilities/Features
> ================================
> 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
> 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
>
>
> Error Information Log
>
>
> =====================
>
>
> Entry 01
>
>
> =========
>
>
>   Error count:          2546
>
>
>   Submission queue ID:  1
>
>
>   Command ID:           32512
>
>
>   Status:
>
>
>    Phase tag:           0
>
>
>    Status code:         129
>
>
>    Status code type:    2
>
>
>    More:                1
>
>
>    DNR:                 1
>
>
>   Error location:       0
>
>
>   LBA:                  0
>
>
>   Namespace ID:         1
>
>
>   Vendor specific info: 0
>
>
>   Transport type:       0
>
>
>   Command specific info:0
>
>
>   Transport specific:   0
>
>
> Entry 02
>
>
> =========
>
>
>   Error count:          2545
>
>
>   Submission queue ID:  1
>
>
>   Command ID:           32512
>
>
>   Status:
>
>
>    Phase tag:           0
>
>
>    Status code:         4
>
>
>    Status code type:    0
>
>
>    More:                1
>
>
>    DNR:                 1
>
>
>   Error location:       0
>
>
>   LBA:                  0
>
>
>   Namespace ID:         1
>
>
>   Vendor specific info: 0
>
>
>   Transport type:       0
>
>
>   Command specific info:0
>
>
>   Transport specific:   0
>
>  From the NVMe specification I didn't get any hints what the error
> reason could be. Maybe someone has a hint for me. The platform is a
> T4240 PowerPC (big-endian).
>

Maybe the physaddr in the SG list for these commands doesn't translate
right?

Warner

-- 
> 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 at embedded-brains.de
> PGP     : Public key available on request.
>
> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"
>


More information about the freebsd-hackers mailing list