From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (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 88F5F392C29 for ; Tue, 21 Jul 2026 18:23:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784658220; cv=none; b=DzWEOjJqg266BbafTP6jHiWm7V/zlcQF4KalPjXR/BezCXKW5A2WpTZ4xL0SFADXF8B9dbm3qryt30aSUALG7MuEwoEXXYDBtIMdj98gLDbOtaRYK0j4gxEnPKPhjc23731bajkypXNYGiTYFFan2rNYLcjNqmZPM9jsLejn4BE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784658220; c=relaxed/simple; bh=HdTwkgsEWiqNenc4qsNaYhxphXkU5OYwKQR4hmALVsc=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=lj/vGoGc8fLKADBnEd9+1EpyNWMFmrb4D1gohB05M0SuxQo1yO3ASMGuMwAVjcYhXaeoZZ+gzwtgnGMKkNXQ1HHUPsOInd4YgFjoHeTf3h4wab8UaJ+wCyXeJ48ezWgH8UN+0yFjmpga9NChMJ5bHCfQaHh8AIiZAmZt9MBNmpc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=G9DIhNs7; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=fVDhwnNL; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="G9DIhNs7"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="fVDhwnNL" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1784658217; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Nf89HWE5FEb29AybdiEPsxsfpgf+Ik6TKAe6jF03lFU=; b=G9DIhNs7Z0eONylNdTEvEiZwo4J478Bvp06YmY1R+lsv196MwNAoagr5/YjERPqDZo9Mvz 1Yfklf3+kWF4ZycbG00Eh+cY4qtPIQnFIbiGLQoaPCVCr86BCfbduApCTgEYWEi7+Lr+KY FGhUJFK/QwNO2fWR5+Cy4rAFvc9iaCM= Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-510-oBet4AQiOgeLX2rnl6W5Ug-1; Tue, 21 Jul 2026 14:23:36 -0400 X-MC-Unique: oBet4AQiOgeLX2rnl6W5Ug-1 X-Mimecast-MFC-AGG-ID: oBet4AQiOgeLX2rnl6W5Ug_1784658216 Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-92d1cae5740so1139196385a.0 for ; Tue, 21 Jul 2026 11:23:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1784658216; x=1785263016; darn=vger.kernel.org; h=mime-version:user-agent:content-transfer-encoding:content-type :references:in-reply-to:date:cc:to:from:subject:message-id:from:to :cc:subject:date:message-id:reply-to:content-type; bh=Nf89HWE5FEb29AybdiEPsxsfpgf+Ik6TKAe6jF03lFU=; b=fVDhwnNL+sZnp3D64qIzOhocgNxHowPgiZu+4u75N0e6/ws/uns27M4bBdrkl0SZ6l W4dKxwEX6m716pw3APi2ac5epKzCKhuqPYMuiFdsMZWGmIjqBh/qaGws/z7dvsWhYr9Z w0qBaZoU0mzlFHKUcGPW5e6ukcmTFXZfIqwJf2c5ixnbt0G+hH9nNXMN+60ybc60NAae 9ACss1n0fJuoSJ5h/qbiE3fyMj9usfO5y7hvCXn4KGm1h256G05BX0YsqXaZlFQHIdLZ MksTAXCuEyprtgaL7T2GxpB9ODVCCGcOHgG3CX/GLGoifxo3ajUhlUbEZYlgBP7pnC2A hVbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784658216; x=1785263016; h=mime-version:user-agent:content-transfer-encoding:content-type :references:in-reply-to:date:cc:to:from:subject:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Nf89HWE5FEb29AybdiEPsxsfpgf+Ik6TKAe6jF03lFU=; b=PpY55myYd/fIGUFvVyJq1YHxuyqkdyJ7nHgST+JGv9a5pMusCzKaEZLVJBegcVl9ya hUm1Eo0eyEXVR2DwTqEA9vk7NyqIcqRA2C80LBahNizCP/pawxaE0DbUhk6jiqL7DOtZ N/WIjs/0Hpr/aNC6hioKrdTHRxAQZQfstKF5eYXd9yIgkGYRQ18/wlpjL213F/tCceoW mTJWA1be6kJPCe4rnsn/6ZQNhxxTC/2xla8WRlZOrORsj75/YJv6Ddn2E7xmk2fkfZxL HlwTpH0irX6a30GEPmqZauLh8tM8zmJavUiajEaPJOzffINgB1TaU9r+eT23BEAoFKn8 9x+A== X-Forwarded-Encrypted: i=1; AHgh+RpUOWLNbpUFwjnANupN9QkRqoJXO76HOwa0WyQIp9PMzBphkXdUTdugegmxdvB5TD3Wm/456wllIjJwIaY=@vger.kernel.org X-Gm-Message-State: AOJu0YxnT8aRSfJSP0GRsQwKGcexaFtM/0fQKsCzoFfKdcKcUnUAgEhD dY67kJ6bRhmOUUXpPFn/nwdu+q8r7qb+uLkZ6wjmlJU7GQQgq9FKDbOElVDthgdy7Yxtt1eHxKe A1uxWJjtapFn2xnmI0WqFuqMAseIHLR8gK4/sGg5MVnw9q0idzFxH09laj45NNpW5Xw== X-Gm-Gg: AR+sD13J7n2X9o6PrnhzDIlZKDFxZWVDnH9sB2k3wi2aSPhR4s5/sEhgn51skfqYYcc qNELkj9O+1FmbGFLPIy4dS7lZBg8FXXyRqiRiI4tahwlZHk7AnIjTEo0upFP7er/wLwUaZczENs BG0K5snEgh4pHL6rlC2UoPOXBJ7zOpPBprlFZ2NWAyj0GEGtO95GY6Iu6MTbRyIwmPMuthvbzzr awvPZDq1dfvyWPR2tRMVjhdOdheDifedLrRtN5lL9PclIa18VYHl5PIxQOApTaRA+lyx+tFlkA2 iS1QxYfrVezEJc0iNwJlwxNRNP+NnR2DVOOtRsQ700Ge8srjLrf9QzhB5mEFMjV/w5p8w0A9 X-Received: by 2002:a05:6214:61cc:20b0:907:b32f:9b79 with SMTP id 6a1803df08f44-907b32f9c56mr27881746d6.6.1784658215341; Tue, 21 Jul 2026 11:23:35 -0700 (PDT) X-Received: by 2002:a05:6214:61cc:20b0:907:b32f:9b79 with SMTP id 6a1803df08f44-907b32f9c56mr27881156d6.6.1784658214438; Tue, 21 Jul 2026 11:23:34 -0700 (PDT) Received: from [192.168.8.4] ([100.0.180.93]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-907ba8df5d0sm2230206d6.18.2026.07.21.11.23.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:23:33 -0700 (PDT) Message-ID: <174e6951bd8216b76c2bc5fb42f1be8138b345ac.camel@redhat.com> Subject: Re: [PATCH 2/6] drm/nouveau/gsp: add RUSD telemetry support From: lyude@redhat.com To: Mohamed Ahmed , linux-kernel@vger.kernel.org Cc: dri-devel@lists.freedesktop.org, Danilo Krummrich , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Mary Guillemard , Milos Tijanic , nouveau@lists.freedesktop.org Date: Tue, 21 Jul 2026 14:23:33 -0400 In-Reply-To: <20260714211429.238355-3-mohamedahmedegypt2001@gmail.com> References: <20260714211429.238355-1-mohamedahmedegypt2001@gmail.com> <20260714211429.238355-3-mohamedahmedegypt2001@gmail.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.58.3 (3.58.3-1.fc43) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Some lil nitpicks On Wed, 2026-07-15 at 01:14 +0400, Mohamed Ahmed wrote: > + case NVKM_GSP_RUSD_ROWREMAP_HIST_MAX ... NVKM_GSP_RUSD_ROWREMAP_FAILURE= : { > + RUSD_MEM_ROW_REMAP remap; > + > + ret =3D r570_rusd_read_section(gsp, > + =C2=A0=C2=A0=C2=A0=C2=A0 offsetof(NV00DE_SHARED_DATA, memRowRemap), > + =C2=A0=C2=A0=C2=A0=C2=A0 sizeof(remap), &remap); > + if (ret) > + return ret; > + > + switch (item) { > + case NVKM_GSP_RUSD_ROWREMAP_HIST_MAX: > + *val =3D remap.info.histogramMax; > + break; > + case NVKM_GSP_RUSD_ROWREMAP_HIST_HIGH: > + *val =3D remap.info.histogramHigh; > + break; > + case NVKM_GSP_RUSD_ROWREMAP_HIST_PARTIAL: > + *val =3D remap.info.histogramPartial; > + break; > + case NVKM_GSP_RUSD_ROWREMAP_HIST_LOW: > + *val =3D remap.info.histogramLow; > + break; > + case NVKM_GSP_RUSD_ROWREMAP_HIST_NONE: > + *val =3D remap.info.histogramNone; > + break; > + case NVKM_GSP_RUSD_ROWREMAP_CORRECTABLE: > + *val =3D remap.info.correctableRows; > + break; > + case NVKM_GSP_RUSD_ROWREMAP_UNCORRECTABLE: > + *val =3D remap.info.uncorrectableRows; > + break; > + case NVKM_GSP_RUSD_ROWREMAP_PENDING: > + *val =3D remap.info.isPending; > + break; > + default: /* NVKM_GSP_RUSD_ROWREMAP_FAILURE */ > + *val =3D remap.info.hasFailureOccurred; > + break; Maybe this should be an explicit case instead of default, so we can drm_WARN_ON_ONCE unknown values? > + } > + return 0; > + } > + case NVKM_GSP_RUSD_PCIE_GEN ... NVKM_GSP_RUSD_PCIE_UNSUPPORTED_REQUESTS= : { > + RUSD_PCIE_DATA pcie; > + > + int idx =3D item - NVKM_GSP_RUSD_PCIE_GEN; > + > + ret =3D r570_rusd_read_section(gsp, > + =C2=A0=C2=A0=C2=A0=C2=A0 offsetof(NV00DE_SHARED_DATA, pciBusData), > + =C2=A0=C2=A0=C2=A0=C2=A0 sizeof(pcie), &pcie); > + if (ret) > + return ret; > + > + *val =3D pcie.info.data[idx]; > + return 0; > + } > + default: > + return -EINVAL; > + } > + > + /* A reading of 0 mW is indistinguishable from "not supported on this > + * board" (e.g. module power on Ampere/Hopper). > + */ > + if (!mw) > + return -ENODATA; > + > + *val =3D (s64)mw * 1000; > + return 0; > +} > + > +const struct nvkm_rm_api_rusd > +r570_rusd =3D { > + .init =3D r570_rusd_init, > + .resume =3D r570_rusd_resume, > + .read =3D r570_rusd_read, > +}; > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h b/drivers/gp= u/drm/nouveau/nvkm/subdev/gsp/rm/rm.h > index a9af94adf9ef..1338b4a88f95 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h > @@ -130,6 +130,12 @@ struct nvkm_rm_api { > =C2=A0 void (*fini)(struct r535_gr *); > =C2=A0 } scrubber; > =C2=A0 } *gr; > + > + const struct nvkm_rm_api_rusd { > + int (*init)(struct nvkm_gsp *); > + void (*resume)(struct nvkm_gsp *); > + int (*read)(struct nvkm_gsp *, enum nvkm_gsp_rusd_item, s64 *); > + } *rusd; > =C2=A0}; > =C2=A0 > =C2=A0extern const struct nvkm_rm_impl r535_rm_tu102; > @@ -188,4 +194,5 @@ extern const struct nvkm_rm_api_gr r570_gr; > =C2=A0int r570_gr_gpc_mask(struct nvkm_gsp *, u32 *mask); > =C2=A0int r570_gr_tpc_mask(struct nvkm_gsp *, int gpc, u32 *mask); > =C2=A0extern const struct nvkm_rm_api_engine r570_ofa; > +extern const struct nvkm_rm_api_rusd r570_rusd; > =C2=A0#endif