From owner-svn-src-all@freebsd.org Sun Mar 11 06:18:27 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 02ED9F303EC; Sun, 11 Mar 2018 06:18:27 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io0-f177.google.com (mail-io0-f177.google.com [209.85.223.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 61DC17A97C; Sun, 11 Mar 2018 06:18:26 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io0-f177.google.com with SMTP id k21so3949756ioc.2; Sat, 10 Mar 2018 22:18:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=XCaK6nEbZrHKh1hc14yiY+9yEjK/Z7K6dxLlaBlFwp4=; b=kdOm9tDGI8ZYqx2kd/3p1Ov3cORVQdSsiXu2hQ7hAPtMMHwILl4CXsp6h36s91CJb1 uOHei7MsAQlB27Kh/hbYHSEwMAzy8StYAqgontVhfDF9sFqVTKSLIDe+ngdg+OW9B8yk Lso5N7W/Y43IydYu8lNVZXVhXnV19ObYp7QhH2miQoZwozzcJqX0JVTMcoOaPi7ejlfL R/n6eRgVTJTDCgZioircRgmaXriwfOlM+b/uNhMjP94UmZuLTU2VbWbOqBoVO2pIS0T0 qg01d/UWrdsw2fPqnuE8DdIKo8qu+t3Yt5VXLMbt22B5BxcY50/7jqtTHCiSRYD1h0bq myRQ== X-Gm-Message-State: AElRT7GCUQWeSiPMm12Mir85utAxw1t91rGGP0FBCrzTa6eWB1IYQ8Mu 2fy/y40SEPn/ItEa7zAEcEo6sZCe X-Google-Smtp-Source: AG47ELtPc9QliGMExcdL4TXMlsPuL+7cRuwJqeHv+BBSMnZ4dFPLs5gO6qsWPaEgJHhvR1AckLNzsg== X-Received: by 10.107.141.194 with SMTP id p185mr4411453iod.204.1520748753073; Sat, 10 Mar 2018 22:12:33 -0800 (PST) Received: from mail-io0-f172.google.com (mail-io0-f172.google.com. [209.85.223.172]) by smtp.gmail.com with ESMTPSA id p142sm1553761itb.24.2018.03.10.22.12.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 10 Mar 2018 22:12:32 -0800 (PST) Received: by mail-io0-f172.google.com with SMTP id l12so7878482ioc.10; Sat, 10 Mar 2018 22:12:32 -0800 (PST) X-Received: by 10.107.34.80 with SMTP id i77mr4281667ioi.220.1520748752014; Sat, 10 Mar 2018 22:12:32 -0800 (PST) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 10.2.153.132 with HTTP; Sat, 10 Mar 2018 22:12:31 -0800 (PST) In-Reply-To: <201803110509.w2B5928t008519@repo.freebsd.org> References: <201803110509.w2B5928t008519@repo.freebsd.org> From: Conrad Meyer Date: Sat, 10 Mar 2018 22:12:31 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r330759 - in head: sbin/nvmecontrol sys/dev/nvme To: Alexander Motin Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Mar 2018 06:18:27 -0000 On Sat, Mar 10, 2018 at 9:09 PM, Alexander Motin wrote: > Author: mav > Date: Sun Mar 11 05:09:02 2018 > New Revision: 330759 > URL: https://svnweb.freebsd.org/changeset/base/330759 > > Log: > Add new identify data structures fields from NVMe 1.3a. > > ... > Modified: head/sbin/nvmecontrol/identify.c > ============================================================================== > --- head/sbin/nvmecontrol/identify.c Sun Mar 11 04:37:05 2018 (r330758) > +++ head/sbin/nvmecontrol/identify.c Sun Mar 11 05:09:02 2018 (r330759) > @@ -95,25 +95,35 @@ print_controller(struct nvme_controller_data *cdata) > ... > + ((cdata->mic >> NVME_CTRLR_DATA_MIC_SRIOVVF_SHIFT) & > + NVME_CTRLR_DATA_MIC_SRIOVVF_MASK) ? "SR-IOV VF, " : "", > + ((cdata->mic >> NVME_CTRLR_DATA_MIC_MCTRLRS_SHIFT) & > + NVME_CTRLR_DATA_MIC_MCTRLRS_MASK) ? "Multiple controllers, " : "", > + ((cdata->mic >> NVME_CTRLR_DATA_MIC_MPORTS_SHIFT) & > + NVME_CTRLR_DATA_MIC_MPORTS_MASK) ? "Multiple ports" : ""); > ... > Modified: head/sys/dev/nvme/nvme.h > ============================================================================== > --- head/sys/dev/nvme/nvme.h Sun Mar 11 04:37:05 2018 (r330758) > +++ head/sys/dev/nvme/nvme.h Sun Mar 11 05:09:02 2018 (r330759) > @@ -153,6 +153,17 @@ > #define NVME_PWR_ST_APS_SHIFT (6) > #define NVME_PWR_ST_APS_MASK (0x3) > > +/** Controller Multi-path I/O and Namespace Sharing Capabilities */ > +/* More then one port */ > +#define NVME_CTRLR_DATA_MIC_MPORTS_SHIFT (0) > +#define NVME_CTRLR_DATA_MIC_MPORTS_MASK (0x1) > +/* More then one controller */ > +#define NVME_CTRLR_DATA_MIC_MCTRLRS_SHIFT (1) > +#define NVME_CTRLR_DATA_MIC_MCTRLRS_MASK (0x1) > +/* SR-IOV Virtual Function */ > +#define NVME_CTRLR_DATA_MIC_SRIOVVF_SHIFT (2) > +#define NVME_CTRLR_DATA_MIC_SRIOVVF_MASK (0x1) > + > /** OACS - optional admin command support */ > /* supports security send/receive commands */ > #define NVME_CTRLR_DATA_OACS_SECURITY_SHIFT (0) > @@ -166,6 +177,21 @@ > /* supports namespace management commands */ > #define NVME_CTRLR_DATA_OACS_NSMGMT_SHIFT (3) > #define NVME_CTRLR_DATA_OACS_NSMGMT_MASK (0x1) > +/* supports Device Self-test command */ > +#define NVME_CTRLR_DATA_OACS_SELFTEST_SHIFT (4) > +#define NVME_CTRLR_DATA_OACS_SELFTEST_MASK (0x1) > +/* supports Directives */ > +#define NVME_CTRLR_DATA_OACS_DIRECTIVES_SHIFT (5) > +#define NVME_CTRLR_DATA_OACS_DIRECTIVES_MASK (0x1) > +/* supports NVMe-MI Send/Receive */ > +#define NVME_CTRLR_DATA_OACS_NVMEMI_SHIFT (6) > +#define NVME_CTRLR_DATA_OACS_NVMEMI_MASK (0x1) > +/* supports Virtualization Management */ > +#define NVME_CTRLR_DATA_OACS_VM_SHIFT (7) > +#define NVME_CTRLR_DATA_OACS_VM_MASK (0x1) > +/* supports Doorbell Buffer Config */ > +#define NVME_CTRLR_DATA_OACS_DBBUFFER_SHIFT (8) > +#define NVME_CTRLR_DATA_OACS_DBBUFFER_MASK (0x1) This seems like a suboptimal way to represent and check single flag bits. Is there a reason the conventional (1<