Received: by 2002:ab2:6309:0:b0:1fb:d597:ff75 with SMTP id s9csp1233008lqt; Fri, 7 Jun 2024 11:43:39 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWRU5DEMB4gA3rohChR5R23P32er9f/dzmU/+sbmgxQPBHFpzTA/KocngURgZmPfGH2IbhCZXsbsjW66q2WPSwC8dywxgHa6bZnJajifQ== X-Google-Smtp-Source: AGHT+IFIdKFmjI+4B3D6gwHFpyjpTR0o6uEuENMAgUCJoiJGyNc+aKaiVhzoDVvZ5894CbnkH+mw X-Received: by 2002:a17:902:bb0f:b0:1f4:ad4f:6fbe with SMTP id d9443c01a7336-1f6d02ddf3bmr24362945ad.22.1717785819154; Fri, 07 Jun 2024 11:43:39 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1717785819; cv=pass; d=google.com; s=arc-20160816; b=YhJ9ysb/8StnoNVbcEmfTc7o13sygxH3I2Ld4TEjLk+1WJ0iylPV2LuAzBlqbfd24O F/BwgWouXieQ3R+dK0fdOj8TnkH8TnL8LtRUj1TKwKwR/8XEuxpGdOXxoiw8tfO6yjV5 N4Ps1OGBsptjXP9FvFiJxmeXO6jcu449tCTgIAxn3isjEvxMg0htibmuPwHNsNwDGI3K NXEsY7aZfWkc0xcsMjgKP7YQ01QXjrwZiGPZmnr3dSvcwC9ivfkrXVWRvMeBPSjbISbm yUW19VNmQux6Nya4y/lI0zU7X62IXRTfueGM1SrM3hkfyBWVBODCMQB8FXRtvKxlggZy KUXg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-disposition:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:subject:cc:to:from :date:dkim-signature; bh=HeJqvte4E2pzBXqjfoRcRyobgBHlBt99TTXOVw/qMeE=; fh=T0Q3HcpJpjjreIvchP1/VzhWV8wf235rqW/y/zU4G7I=; b=vxUoSbyALeJqrv6RLeKFRcD/d0irdk1Qxlcezo84J7mitXPBr2KvAbbCQKWxbDrTp4 WrJsnARYNwBbloi3KMaAam2iaqRWFh5xggU8nrMx9cdkS1Kg50XUmFPoBqkuUuv9305S 0nWtTz4TOExJwpARzik2Zp3SeEbWUiYgLkN35DJuQVakUE+RLQCFzjY951n63pxwLA2I 4WmV27JZf0Xw9B+L54S4NpfdYTMdVZheq01CLNuo9xQV5+orCFR6iXebK7TiOWoNkQza GNQMCWzLR4W20KcReAS4NIj2PTMAe5EGHgaVz7Fiwn7+t0rXroB7pn1rHvFz3yF3Qz0B kPzQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=lvClyOjf; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-206607-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-206607-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id d9443c01a7336-1f6bd6c2feasi34930625ad.0.2024.06.07.11.43.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jun 2024 11:43:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-206607-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=lvClyOjf; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-206607-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-206607-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id BC00A287695 for ; Fri, 7 Jun 2024 18:43:38 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EFEF714533D; Fri, 7 Jun 2024 18:43:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="lvClyOjf" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 117CA1CD02; Fri, 7 Jun 2024 18:43:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717785804; cv=none; b=DmC4Zp0G5fs0h1wSHLM0fbObLtG6ztOS+69UzSORrP+QM4gXKZp5hW9o5oId7yyH4720ZqUDuriDZTjXFtd6hG3v9+MvUzJJJAssN8fqkhTbapVk52YjA+nIyOUoWe/ceSQpcrN0+ci2PwMOvK1HnADHTlqK3cOMtf7SwQUEUGY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717785804; c=relaxed/simple; bh=OCTLuk/DIpZjCuMdEwXD4ZYH2rU5XWljSDnPfquC+XQ=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition:In-Reply-To; b=A3cODvTYj5se672LrLHBqRByxqbI9jDql5JxpDuZE55g97YucYTta71OIxGuuMZ6FhBUMezFy0QXvF+7leSailW+ZpICwsxomtm621MWTxRID0bb+cZhG+A3kw/TskSi++NIUxxvmiFuTT6SPfS49kBwQE9o5FhLi/EirwHMTQI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lvClyOjf; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 482B5C2BBFC; Fri, 7 Jun 2024 18:43:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1717785803; bh=OCTLuk/DIpZjCuMdEwXD4ZYH2rU5XWljSDnPfquC+XQ=; h=Date:From:To:Cc:Subject:In-Reply-To:From; b=lvClyOjfiMvMLVUxa9M8Ra8v/0slconYbv+YKmVtK3DEaJ+0XlVZ1a5ZNQbMhHrV/ zUkvlgZvjmAmvvNSKaLHuWsCmi+pIUZx/wj33h+5ulghxjxjhg2xwhgntLWGFRcQqs G0rqi3F5z8MCKS8h4laqhVbFRgZQaNHSGIMpUhZlmKUWXYTvFKtfzinZ/EuIHxMA/A fX4IwZmlBp1ZXPBM7HPFLb9MoOTUKH5zBcp9xH7ghMEiaqA1ejvioVeozxUZKIQKZb 94pUicfCZMhWv8y/ln/FTP5v1WENEIgF9IP3kZ24kcj9yDWk30AKZOGH9DNs9R014x MWxhjTgsSMHCQ== Date: Fri, 7 Jun 2024 13:43:20 -0500 From: Bjorn Helgaas To: Wei Huang Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, netdev@vger.kernel.org, bhelgaas@google.com, corbet@lwn.net, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, alex.williamson@redhat.com, gospo@broadcom.com, michael.chan@broadcom.com, ajit.khaparde@broadcom.com, somnath.kotur@broadcom.com, andrew.gospodarek@broadcom.com, manoj.panicker2@amd.com, Eric.VanTassell@amd.com, vadim.fedorenko@linux.dev, horms@kernel.org, bagasdotme@gmail.com Subject: Re: [PATCH V2 6/9] PCI/TPH: Retrieve steering tag from ACPI _DSM Message-ID: <20240607184320.GA853474@bhelgaas> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240531213841.3246055-7-wei.huang2@amd.com> On Fri, May 31, 2024 at 04:38:38PM -0500, Wei Huang wrote: > According to PCI SIG ECN, calling the _DSM firmware method for a given > CPU_UID returns the steering tags for different types of memory > (volatile, non-volatile). These tags are supposed to be used in ST > table entry for optimal results. Cite PCI Firmware spec if possible. If it hasn't been incorporated yet, at least include the exact name of the ECN and the date it was approved. Say what the patch does in the commit log (in addition to the subject line). > +#define MIN_ST_DSM_REV 7 No useful value in this #define. If the value ever changes, code changes will be required too. > +#define ST_DSM_FUNC_INDEX 0xf Move to the list in pci-acpi.h with name similar to others. > +static bool invoke_dsm(acpi_handle handle, u32 cpu_uid, u8 ph, > + u8 target_type, bool cache_ref_valid, > + u64 cache_ref, union st_info *st_out) > +{ Return 0 or -errno. "invoke_dsm" is not a predicate with an obvious true/false meaning. > + union acpi_object in_obj, in_buf[3], *out_obj; > + > + in_buf[0].integer.type = ACPI_TYPE_INTEGER; > + in_buf[0].integer.value = 0; /* 0 => processor cache steering tags */ > + > + in_buf[1].integer.type = ACPI_TYPE_INTEGER; > + in_buf[1].integer.value = cpu_uid; > + > + in_buf[2].integer.type = ACPI_TYPE_INTEGER; > + in_buf[2].integer.value = ph & 3; > + in_buf[2].integer.value |= (target_type & 1) << 2; > + in_buf[2].integer.value |= (cache_ref_valid & 1) << 3; > + in_buf[2].integer.value |= (cache_ref << 32); > + > + in_obj.type = ACPI_TYPE_PACKAGE; > + in_obj.package.count = ARRAY_SIZE(in_buf); > + in_obj.package.elements = in_buf; Must check whether this _DSM function is implemented first, e.g., see acpi_enable_dpc(). > + out_obj = acpi_evaluate_dsm(handle, &pci_acpi_dsm_guid, MIN_ST_DSM_REV, > + ST_DSM_FUNC_INDEX, &in_obj); > + > + if (!out_obj) > + return false; > + > + if (out_obj->type != ACPI_TYPE_BUFFER) { > + pr_err("invalid return type %d from TPH _DSM\n", > + out_obj->type); > + ACPI_FREE(out_obj); > + return false; > + } > + > + st_out->value = *((u64 *)(out_obj->buffer.pointer)); > + > + ACPI_FREE(out_obj); > + > + return true; > +}