Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp5329927rdb; Wed, 13 Dec 2023 05:58:57 -0800 (PST) X-Google-Smtp-Source: AGHT+IER54OkokHI1Cz2zUr+PUI46DokEAfVnlytYfRFa4PaOIag/gLtkoDOnxclfof2tTgjGWcG X-Received: by 2002:a17:903:428e:b0:1d0:820a:ceec with SMTP id ju14-20020a170903428e00b001d0820aceecmr8856048plb.55.1702475936935; Wed, 13 Dec 2023 05:58:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702475936; cv=none; d=google.com; s=arc-20160816; b=Qv4lCfeDGD1DfyO9Hb8AjprNFFGx/JF5+Whr3pgm3AAuj2IhTcHcnHO9n9qeGklBmv Wb8+qtkK0O/WMPAk9kLwhaI9Oz5fOva7F0hGO5D5mPVSCASxEQ8xTZxodz3nTiaTwcw/ +RBfpWZF8UhJItMisCBIhwTJ9r6RDP0Ir4dmfMyh4REhkTfaCvIW9UpSLRqlLm61+I5f ZGjDu/qqIeCGI1pmWoQQBYzBrgceiwYx+ddbnRgFpXthVoF+oFmB0H1lWx5XHVC2kCte F6dTdXoOF859Tzrc0YUVVrdS1W7nadlkYNtWWURWBJpzY5zR/kkxvXJKKdnbEgGzxsuM DSxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=RJKnfzyzyEQaXBcdN+jnFLQABa9yl2KfuisahfbwSlU=; fh=G7MyMBApdB6SHejUswiSDhhJun4glIYDt7530h4xe6c=; b=WUx9XA/P+RCtZWS3vlneJ5fsvaI/n9qGw5v3U7V0Tl7xLaW6QntlPtnIJhYZv7utPv Mm4TtBooZpGbyLHX2cX0I25RgiKRTk6U6ChvyADbdjKAoke/Bu8WzRoVfn5vQ+DZAa6V kTwQ+M9FdJh4Umjr3DJAYw2AYfmSaOpxiWk2362FEwGBd6iHs+WUT9CWbZ6silDdZroy RLtTWsCwpYApS/SOShjJDj6QaqirOHU7oRz82VhEMIQLKKcuw4/POEJPWIbckY3ttxLk rlbB1zoXK3/zgCecsN2L7NwJUkbhnOQqBOqX6Tu8IRnvXzVicy1gBEpAwwBMhZk4Fa24 /LuQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id e4-20020a170902744400b001d07c3e89fbsi9421264plt.468.2023.12.13.05.58.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Dec 2023 05:58:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id D6D8B807592C; Wed, 13 Dec 2023 05:58:55 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1379227AbjLMN6n (ORCPT + 99 others); Wed, 13 Dec 2023 08:58:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48010 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235377AbjLMNkn (ORCPT ); Wed, 13 Dec 2023 08:40:43 -0500 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6BE35113 for ; Wed, 13 Dec 2023 05:40:48 -0800 (PST) Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-a1f8313c781so149376866b.0 for ; Wed, 13 Dec 2023 05:40:48 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702474847; x=1703079647; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=RJKnfzyzyEQaXBcdN+jnFLQABa9yl2KfuisahfbwSlU=; b=qzGFLyEjknFumFJWAyK3EcmaK7IsnkcmIMOIeHmVyBUuWdhZpKJ4BNNNmjkFZSnJIn JI+beVVKr3iJrDSjq39a93FswHZCHpAo0YPGLLM5ehGGi6/XE/saN+frrqGpE+KQrqLl hFLlMYTbrzLFXwg8SGidE8r8YLznIU5Cz6eCq4BifdkqZ+Mko1Omg+Gx+mt0CV3IuFQ1 WiwVUASIq62DGeWB9zp4WGbfqj52fwVk71cfrp/TAzHhCWDJpxrRysebKXwN/zyoFsmt crox0DBTik+cQcRM300137Stxio78YvMBTLkkGO6vthjCKkMiZ4mdnaZmQAex2o4C+hW L8cw== X-Gm-Message-State: AOJu0Yx8jmqf5Epg9gqViyxxfnuqc99fQgW2FutAlbMlgPbrYZdIsVyN +NP942ojVyknj18MydzUync= X-Received: by 2002:a17:907:c317:b0:a1d:5c72:3be2 with SMTP id tl23-20020a170907c31700b00a1d5c723be2mr8370959ejc.7.1702474846772; Wed, 13 Dec 2023 05:40:46 -0800 (PST) Received: from [192.168.64.177] (bzq-219-42-90.isdn.bezeqint.net. [62.219.42.90]) by smtp.gmail.com with ESMTPSA id vw12-20020a170907a70c00b00a1c904675cfsm7740917ejc.29.2023.12.13.05.40.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 13 Dec 2023 05:40:46 -0800 (PST) Message-ID: Date: Wed, 13 Dec 2023 15:40:43 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC] nvmet: configfs: use ctrl->instance to track passthru subsystems Content-Language: en-US To: Evan Burgess , Christoph Hellwig , Chaitanya Kulkarni Cc: "linux-nvme@lists.infradead.org" , "linux-kernel@vger.kernel.org" References: From: Sagi Grimberg In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Wed, 13 Dec 2023 05:58:56 -0800 (PST) > To prevent enabling more than one passthrough subsystem per NVMe > controller, passthru.c maintains an xarray indexed by cntlid values. > An nvmet subsystem cannot enable passthrough via configfs if its > passthru_ctrl->cntlid value is already accounted for by the xarray. > > However, according to the NVMe base spec (rev 2.0c, p.145), "The > Controller ID (CNTLID) value returned in the Identify Controller data > structure may be used to uniquely identify a controller within an NVM > subsystem," meaning that cntlid values are not guaranteed to be > globally unique across multiple subsystems. Instead, the cntlid only > uniquely identifies multiple controllers _within_ a subsystem. > > As a result, multiple unique & valid NVMe targets can be blocked from > enabling passthrough at the same time if their controllers share cntlid > values, a behavior (seemingly) allowed by the spec. This could be > remedied by indexing the xarray with passthru_ctrl->instance values, > which are allocated per controller by IDA and thus should act as truly > unique controller identifiers. > > I have seen this issue in practice, but have found a suspicious lack of > corroboration across this ML and elsewhere (so far). So, I am not > discounting a possible misunderstanding of the spec and/or code here. You are correct AFAICT. Reviewed-by: Sagi Grimberg