From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.4 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 57ADDC43214 for ; Wed, 4 Aug 2021 18:05:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 40BDA60C41 for ; Wed, 4 Aug 2021 18:05:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237762AbhHDSGI (ORCPT ); Wed, 4 Aug 2021 14:06:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48550 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230226AbhHDSGG (ORCPT ); Wed, 4 Aug 2021 14:06:06 -0400 Received: from mail-ot1-x335.google.com (mail-ot1-x335.google.com [IPv6:2607:f8b0:4864:20::335]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2AB26C0613D5; Wed, 4 Aug 2021 11:05:53 -0700 (PDT) Received: by mail-ot1-x335.google.com with SMTP id r16-20020a0568304190b02904f26cead745so2054389otu.10; Wed, 04 Aug 2021 11:05:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=662mfXKtv4dSIf5beuNHT3DDXWaZbtj0U5V1Quf/Cqo=; b=TsQLFAb5BCoWxD1Y2wgcJGTIN7EP2e93teQo9ELdOtG3JOvr/Y3zRBwD0WFB1kOzRY jOkeOW8BcYKRFJgvnnOT0sz6cGil12qyuXKAv09qUokQmiCWj20asPOQ1PI1BqvFjgez cPVIIhd6/M6ponIGM58P+5KnevAUetIqSk9KhNYPEAfUVHB0ko0IryjGbVwxF3IK5fTm OqlhFPyeVh914SibViA+dpwsaGUGsBgltFpn25sQn+9+YIfdDl+w/Ke+9yaFpFJC0os+ Y05RD6wUnzCa6cf270QE6ZFez0Lr6v0E9pJqBZ2QmsoMR6uSGOS32+spj9sHUXExEk9h pPPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=662mfXKtv4dSIf5beuNHT3DDXWaZbtj0U5V1Quf/Cqo=; b=lwv+gtr4hJw7vulf4SPzVo7+j6ev8MPmX0pWhI7yFMDB5hD64zluEnnxvQc+dKv6zL 003GQf6f9UL4iOmfgR1VVwbt1aBu06DfGNAybmnM+48AsUY3xFcRDn0IxVqgJChNFZlB 9cGA1j6X9ic/aqlCaDI7p4gOKfptPszBluUAF6OZuHzveKB2E9ensRZUch9twoDoW55/ FYe32wansu1J1YKyGnPIREkINBcNjNzLqbn1fjO+4UbO4Zvoxj5adwH9aTlLn2p78TP8 sCHuIjofmliZ3006O7l+tUtYD6qShJKVQSwJqPhNjBegPdO21dACjbCfcRBqQkyBOhJI 8JNw== X-Gm-Message-State: AOAM531jkoJzY94ExmMDQcxJ4aQ/XiQ2zE7ZMVjU1Ow6LxAbayq3BFKG zIHtliNVFfTh5cjAoExL7Xg= X-Google-Smtp-Source: ABdhPJwV2GGK2AFelwSidL571RaM1UkeRO7cCy4fNQ3gajiTq4DQjj4ju9lo9QV4O7WpRUROwB5WyA== X-Received: by 2002:a05:6830:25ce:: with SMTP id d14mr715144otu.87.1628100352271; Wed, 04 Aug 2021 11:05:52 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id f14sm516494ote.64.2021.08.04.11.05.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 04 Aug 2021 11:05:51 -0700 (PDT) Sender: Guenter Roeck Subject: Re: [PATCH 13/14] docs: hwmon: Document PECI drivers To: Zev Weiss , "Winiarska, Iwona" Cc: "corbet@lwn.net" , "jae.hyun.yoo@linux.intel.com" , "Lutomirski, Andy" , "linux-hwmon@vger.kernel.org" , "Luck, Tony" , "andrew@aj.id.au" , "mchehab@kernel.org" , "jdelvare@suse.com" , "linux-kernel@vger.kernel.org" , "mingo@redhat.com" , "devicetree@vger.kernel.org" , "tglx@linutronix.de" , "linux-aspeed@lists.ozlabs.org" , "linux-doc@vger.kernel.org" , "yazen.ghannam@amd.com" , "robh+dt@kernel.org" , "openbmc@lists.ozlabs.org" , "bp@alien8.de" , "linux-arm-kernel@lists.infradead.org" , "pierre-louis.bossart@linux.intel.com" , "andriy.shevchenko@linux.intel.com" , "x86@kernel.org" , "gregkh@linuxfoundation.org" References: <20210712220447.957418-1-iwona.winiarska@intel.com> <20210712220447.957418-14-iwona.winiarska@intel.com> <20210727225808.GU8018@packtop> <20210804175203.GY8018@packtop> From: Guenter Roeck Message-ID: <4e840768-0315-6241-e988-9a3165a31a86@roeck-us.net> Date: Wed, 4 Aug 2021 11:05:48 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210804175203.GY8018@packtop> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/4/21 10:52 AM, Zev Weiss wrote: > On Mon, Aug 02, 2021 at 06:37:30AM CDT, Winiarska, Iwona wrote: >> On Tue, 2021-07-27 at 22:58 +0000, Zev Weiss wrote: >>> On Mon, Jul 12, 2021 at 05:04:46PM CDT, Iwona Winiarska wrote: >>>> From: Jae Hyun Yoo >>>> >>>> Add documentation for peci-cputemp driver that provides DTS thermal >>>> readings for CPU packages and CPU cores and peci-dimmtemp driver that >>>> provides DTS thermal readings for DIMMs. >>>> >>>> Signed-off-by: Jae Hyun Yoo >>>> Co-developed-by: Iwona Winiarska >>>> Signed-off-by: Iwona Winiarska >>>> Reviewed-by: Pierre-Louis Bossart >>>> --- >>>> Documentation/hwmon/index.rst         |  2 + >>>> Documentation/hwmon/peci-cputemp.rst  | 93 +++++++++++++++++++++++++++ >>>> Documentation/hwmon/peci-dimmtemp.rst | 58 +++++++++++++++++ >>>> MAINTAINERS                           |  2 + >>>> 4 files changed, 155 insertions(+) >>>> create mode 100644 Documentation/hwmon/peci-cputemp.rst >>>> create mode 100644 Documentation/hwmon/peci-dimmtemp.rst >>>> >>>> diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst >>>> index bc01601ea81a..cc76b5b3f791 100644 >>>> --- a/Documentation/hwmon/index.rst >>>> +++ b/Documentation/hwmon/index.rst >>>> @@ -154,6 +154,8 @@ Hardware Monitoring Kernel Drivers >>>>    pcf8591 >>>>    pim4328 >>>>    pm6764tr >>>> +   peci-cputemp >>>> +   peci-dimmtemp >>>>    pmbus >>>>    powr1220 >>>>    pxe1610 >>>> diff --git a/Documentation/hwmon/peci-cputemp.rst >>>> b/Documentation/hwmon/peci-cputemp.rst >>>> new file mode 100644 >>>> index 000000000000..d3a218ba810a >>>> --- /dev/null >>>> +++ b/Documentation/hwmon/peci-cputemp.rst >>>> @@ -0,0 +1,93 @@ >>>> +.. SPDX-License-Identifier: GPL-2.0-only >>>> + >>>> +Kernel driver peci-cputemp >>>> +========================== >>>> + >>>> +Supported chips: >>>> +       One of Intel server CPUs listed below which is connected to a PECI >>>> bus. >>>> +               * Intel Xeon E5/E7 v3 server processors >>>> +                       Intel Xeon E5-14xx v3 family >>>> +                       Intel Xeon E5-24xx v3 family >>>> +                       Intel Xeon E5-16xx v3 family >>>> +                       Intel Xeon E5-26xx v3 family >>>> +                       Intel Xeon E5-46xx v3 family >>>> +                       Intel Xeon E7-48xx v3 family >>>> +                       Intel Xeon E7-88xx v3 family >>>> +               * Intel Xeon E5/E7 v4 server processors >>>> +                       Intel Xeon E5-16xx v4 family >>>> +                       Intel Xeon E5-26xx v4 family >>>> +                       Intel Xeon E5-46xx v4 family >>>> +                       Intel Xeon E7-48xx v4 family >>>> +                       Intel Xeon E7-88xx v4 family >>>> +               * Intel Xeon Scalable server processors >>>> +                       Intel Xeon D family >>>> +                       Intel Xeon Bronze family >>>> +                       Intel Xeon Silver family >>>> +                       Intel Xeon Gold family >>>> +                       Intel Xeon Platinum family >>>> + >>>> +       Datasheet: Available from http://www.intel.com/design/literature.htm >>>> + >>>> +Author: Jae Hyun Yoo >>>> + >>>> +Description >>>> +----------- >>>> + >>>> +This driver implements a generic PECI hwmon feature which provides Digital >>>> +Thermal Sensor (DTS) thermal readings of the CPU package and CPU cores that >>>> are >>>> +accessible via the processor PECI interface. >>>> + >>>> +All temperature values are given in millidegree Celsius and will be >>>> measurable >>>> +only when the target CPU is powered on. >>>> + >>>> +Sysfs interface >>>> +------------------- >>>> + >>>> +======================= >>>> ======================================================= >>>> +temp1_label            "Die" >>>> +temp1_input            Provides current die temperature of the CPU package. >>>> +temp1_max              Provides thermal control temperature of the CPU >>>> package >>>> +                       which is also known as Tcontrol. >>>> +temp1_crit             Provides shutdown temperature of the CPU package >>>> which >>>> +                       is also known as the maximum processor junction >>>> +                       temperature, Tjmax or Tprochot. >>>> +temp1_crit_hyst                Provides the hysteresis value from Tcontrol >>>> to Tjmax of >>>> +                       the CPU package. >>>> + >>>> +temp2_label            "DTS" >>>> +temp2_input            Provides current DTS temperature of the CPU package. >>> >>> Would this be a good place to note the slightly counter-intuitive nature >>> of DTS readings?  i.e. add something along the lines of "The DTS sensor >>> produces a delta relative to Tjmax, so negative values are normal and >>> values approaching zero are hot."  (In my experience people who aren't >>> already familiar with it tend to think something's wrong when a CPU >>> temperature reading shows -50C.) >> >> I believe that what you're referring to is a result of "GetTemp", and we're >> using it to calculate "Die" sensor values (temp1). >> The sensor value is absolute - we don't expose "raw" thermal sensor value >> (delta) anywhere. >> >> DTS sensor is exposing temperature value scaled to fit DTS 2.0 thermal profile: >> https://www.intel.com/content/www/us/en/processors/xeon/scalable/xeon-scalable-thermal-guide.html >> (section 5.2.3.2) >> >> Similar to "Die" sensor - it's also exposed in absolute form. >> >> I'll try to change description to avoid confusion. >> > > When I tested the patch series by applying it to my OpenBMC kernel, the > temp2_input sysfs file produced negative numbers (as has been the case > with previous iterations of the PECI patchset). Is that expected? From > what Guenter has said it sounds like that's going to need to change so > that the temperature readings are all in "normal" millidegrees C > (that is, relative to the freezing point of water). > Correct, the temperature is expected to be reported in millidegrees C per hwmon ABI. Everything else is unacceptable. That makes me wonder what "raw" and "absolute" means. Negative numbers suggest that, whatever is reported today, it is not millidegrees C. Guenter From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.2 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 87139C4338F for ; Wed, 4 Aug 2021 18:06:30 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F228260C41 for ; Wed, 4 Aug 2021 18:06:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org F228260C41 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.ozlabs.org Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4Gg06r37nPz3cQH for ; Thu, 5 Aug 2021 04:06:28 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=TsQLFAb5; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gmail.com (client-ip=2607:f8b0:4864:20::334; helo=mail-ot1-x334.google.com; envelope-from=groeck7@gmail.com; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=TsQLFAb5; dkim-atps=neutral Received: from mail-ot1-x334.google.com (mail-ot1-x334.google.com [IPv6:2607:f8b0:4864:20::334]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4Gg06F5qcGz3bjG; Thu, 5 Aug 2021 04:05:56 +1000 (AEST) Received: by mail-ot1-x334.google.com with SMTP id g5-20020a9d6b050000b02904f21e977c3eso2436816otp.5; Wed, 04 Aug 2021 11:05:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=662mfXKtv4dSIf5beuNHT3DDXWaZbtj0U5V1Quf/Cqo=; b=TsQLFAb5BCoWxD1Y2wgcJGTIN7EP2e93teQo9ELdOtG3JOvr/Y3zRBwD0WFB1kOzRY jOkeOW8BcYKRFJgvnnOT0sz6cGil12qyuXKAv09qUokQmiCWj20asPOQ1PI1BqvFjgez cPVIIhd6/M6ponIGM58P+5KnevAUetIqSk9KhNYPEAfUVHB0ko0IryjGbVwxF3IK5fTm OqlhFPyeVh914SibViA+dpwsaGUGsBgltFpn25sQn+9+YIfdDl+w/Ke+9yaFpFJC0os+ Y05RD6wUnzCa6cf270QE6ZFez0Lr6v0E9pJqBZ2QmsoMR6uSGOS32+spj9sHUXExEk9h pPPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=662mfXKtv4dSIf5beuNHT3DDXWaZbtj0U5V1Quf/Cqo=; b=uZ4DDUfyePs3VmpLriEz/OjsqUVKoH65o987+uHpJL3EbT93IhygO4HNj2e8kmvck6 pErRMtNjdEQnPbRuPkg3W57fkBcop1Qz9NXDPCsS8MGGYlzesCx3Wuxl/5ICyfvy2ZG7 iAzKN9TjiC33xvBh4biQGGS8eCF68KqtB89PJxKI6QuJWZhYotrosVr662L/nRxAGX6J sei4Cz4m+ut06SWuMJfenUsBbWcYP97IHwFbcQzJp/mkN68QnPLwEbVcGSIq1p2PVOcA XWmACKzOBpqdUi6YiRBqxB7JIke26sjBr5yJKsY1jy/RKXyeshqmi40c/R+BOFR4j5LQ VvvQ== X-Gm-Message-State: AOAM533Pfq+Ve3W8cVfpTW6/pv7mbhaNeeTNZbB/Kasqn+wDo17f9lxQ PPm5iUfB/LGaoW/zE57K5jY= X-Google-Smtp-Source: ABdhPJwV2GGK2AFelwSidL571RaM1UkeRO7cCy4fNQ3gajiTq4DQjj4ju9lo9QV4O7WpRUROwB5WyA== X-Received: by 2002:a05:6830:25ce:: with SMTP id d14mr715144otu.87.1628100352271; Wed, 04 Aug 2021 11:05:52 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id f14sm516494ote.64.2021.08.04.11.05.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 04 Aug 2021 11:05:51 -0700 (PDT) Subject: Re: [PATCH 13/14] docs: hwmon: Document PECI drivers To: Zev Weiss , "Winiarska, Iwona" References: <20210712220447.957418-1-iwona.winiarska@intel.com> <20210712220447.957418-14-iwona.winiarska@intel.com> <20210727225808.GU8018@packtop> <20210804175203.GY8018@packtop> From: Guenter Roeck Message-ID: <4e840768-0315-6241-e988-9a3165a31a86@roeck-us.net> Date: Wed, 4 Aug 2021 11:05:48 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210804175203.GY8018@packtop> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-BeenThere: openbmc@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development list for OpenBMC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "linux-aspeed@lists.ozlabs.org" , "linux-doc@vger.kernel.org" , "jae.hyun.yoo@linux.intel.com" , "mchehab@kernel.org" , "corbet@lwn.net" , "openbmc@lists.ozlabs.org" , "x86@kernel.org" , "pierre-louis.bossart@linux.intel.com" , "mingo@redhat.com" , "devicetree@vger.kernel.org" , "jdelvare@suse.com" , "robh+dt@kernel.org" , "bp@alien8.de" , "Lutomirski, Andy" , "tglx@linutronix.de" , "andriy.shevchenko@linux.intel.com" , "linux-arm-kernel@lists.infradead.org" , "linux-hwmon@vger.kernel.org" , "Luck, Tony" , "andrew@aj.id.au" , "gregkh@linuxfoundation.org" , "linux-kernel@vger.kernel.org" , "yazen.ghannam@amd.com" Errors-To: openbmc-bounces+openbmc=archiver.kernel.org@lists.ozlabs.org Sender: "openbmc" On 8/4/21 10:52 AM, Zev Weiss wrote: > On Mon, Aug 02, 2021 at 06:37:30AM CDT, Winiarska, Iwona wrote: >> On Tue, 2021-07-27 at 22:58 +0000, Zev Weiss wrote: >>> On Mon, Jul 12, 2021 at 05:04:46PM CDT, Iwona Winiarska wrote: >>>> From: Jae Hyun Yoo >>>> >>>> Add documentation for peci-cputemp driver that provides DTS thermal >>>> readings for CPU packages and CPU cores and peci-dimmtemp driver that >>>> provides DTS thermal readings for DIMMs. >>>> >>>> Signed-off-by: Jae Hyun Yoo >>>> Co-developed-by: Iwona Winiarska >>>> Signed-off-by: Iwona Winiarska >>>> Reviewed-by: Pierre-Louis Bossart >>>> --- >>>> Documentation/hwmon/index.rst         |  2 + >>>> Documentation/hwmon/peci-cputemp.rst  | 93 +++++++++++++++++++++++++++ >>>> Documentation/hwmon/peci-dimmtemp.rst | 58 +++++++++++++++++ >>>> MAINTAINERS                           |  2 + >>>> 4 files changed, 155 insertions(+) >>>> create mode 100644 Documentation/hwmon/peci-cputemp.rst >>>> create mode 100644 Documentation/hwmon/peci-dimmtemp.rst >>>> >>>> diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst >>>> index bc01601ea81a..cc76b5b3f791 100644 >>>> --- a/Documentation/hwmon/index.rst >>>> +++ b/Documentation/hwmon/index.rst >>>> @@ -154,6 +154,8 @@ Hardware Monitoring Kernel Drivers >>>>    pcf8591 >>>>    pim4328 >>>>    pm6764tr >>>> +   peci-cputemp >>>> +   peci-dimmtemp >>>>    pmbus >>>>    powr1220 >>>>    pxe1610 >>>> diff --git a/Documentation/hwmon/peci-cputemp.rst >>>> b/Documentation/hwmon/peci-cputemp.rst >>>> new file mode 100644 >>>> index 000000000000..d3a218ba810a >>>> --- /dev/null >>>> +++ b/Documentation/hwmon/peci-cputemp.rst >>>> @@ -0,0 +1,93 @@ >>>> +.. SPDX-License-Identifier: GPL-2.0-only >>>> + >>>> +Kernel driver peci-cputemp >>>> +========================== >>>> + >>>> +Supported chips: >>>> +       One of Intel server CPUs listed below which is connected to a PECI >>>> bus. >>>> +               * Intel Xeon E5/E7 v3 server processors >>>> +                       Intel Xeon E5-14xx v3 family >>>> +                       Intel Xeon E5-24xx v3 family >>>> +                       Intel Xeon E5-16xx v3 family >>>> +                       Intel Xeon E5-26xx v3 family >>>> +                       Intel Xeon E5-46xx v3 family >>>> +                       Intel Xeon E7-48xx v3 family >>>> +                       Intel Xeon E7-88xx v3 family >>>> +               * Intel Xeon E5/E7 v4 server processors >>>> +                       Intel Xeon E5-16xx v4 family >>>> +                       Intel Xeon E5-26xx v4 family >>>> +                       Intel Xeon E5-46xx v4 family >>>> +                       Intel Xeon E7-48xx v4 family >>>> +                       Intel Xeon E7-88xx v4 family >>>> +               * Intel Xeon Scalable server processors >>>> +                       Intel Xeon D family >>>> +                       Intel Xeon Bronze family >>>> +                       Intel Xeon Silver family >>>> +                       Intel Xeon Gold family >>>> +                       Intel Xeon Platinum family >>>> + >>>> +       Datasheet: Available from http://www.intel.com/design/literature.htm >>>> + >>>> +Author: Jae Hyun Yoo >>>> + >>>> +Description >>>> +----------- >>>> + >>>> +This driver implements a generic PECI hwmon feature which provides Digital >>>> +Thermal Sensor (DTS) thermal readings of the CPU package and CPU cores that >>>> are >>>> +accessible via the processor PECI interface. >>>> + >>>> +All temperature values are given in millidegree Celsius and will be >>>> measurable >>>> +only when the target CPU is powered on. >>>> + >>>> +Sysfs interface >>>> +------------------- >>>> + >>>> +======================= >>>> ======================================================= >>>> +temp1_label            "Die" >>>> +temp1_input            Provides current die temperature of the CPU package. >>>> +temp1_max              Provides thermal control temperature of the CPU >>>> package >>>> +                       which is also known as Tcontrol. >>>> +temp1_crit             Provides shutdown temperature of the CPU package >>>> which >>>> +                       is also known as the maximum processor junction >>>> +                       temperature, Tjmax or Tprochot. >>>> +temp1_crit_hyst                Provides the hysteresis value from Tcontrol >>>> to Tjmax of >>>> +                       the CPU package. >>>> + >>>> +temp2_label            "DTS" >>>> +temp2_input            Provides current DTS temperature of the CPU package. >>> >>> Would this be a good place to note the slightly counter-intuitive nature >>> of DTS readings?  i.e. add something along the lines of "The DTS sensor >>> produces a delta relative to Tjmax, so negative values are normal and >>> values approaching zero are hot."  (In my experience people who aren't >>> already familiar with it tend to think something's wrong when a CPU >>> temperature reading shows -50C.) >> >> I believe that what you're referring to is a result of "GetTemp", and we're >> using it to calculate "Die" sensor values (temp1). >> The sensor value is absolute - we don't expose "raw" thermal sensor value >> (delta) anywhere. >> >> DTS sensor is exposing temperature value scaled to fit DTS 2.0 thermal profile: >> https://www.intel.com/content/www/us/en/processors/xeon/scalable/xeon-scalable-thermal-guide.html >> (section 5.2.3.2) >> >> Similar to "Die" sensor - it's also exposed in absolute form. >> >> I'll try to change description to avoid confusion. >> > > When I tested the patch series by applying it to my OpenBMC kernel, the > temp2_input sysfs file produced negative numbers (as has been the case > with previous iterations of the PECI patchset). Is that expected? From > what Guenter has said it sounds like that's going to need to change so > that the temperature readings are all in "normal" millidegrees C > (that is, relative to the freezing point of water). > Correct, the temperature is expected to be reported in millidegrees C per hwmon ABI. Everything else is unacceptable. That makes me wonder what "raw" and "absolute" means. Negative numbers suggest that, whatever is reported today, it is not millidegrees C. Guenter From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 79715C4338F for ; Wed, 4 Aug 2021 18:08:01 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3DBB660C3E for ; Wed, 4 Aug 2021 18:08:01 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 3DBB660C3E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=D4VO2x36JGdV504zfUCDIn5NrC4tM/jJxh31GwDK+kQ=; b=MYwhq2o/YeEpDYGpBVgNA7Fp49 c7hjEXb3sFqPKPkA9MX6rs4IxrKHRXPUGZvZWmskNtfHN9P6StHrraaXYpEMTYIFJ9pAZGjrHlwkR kA0YmOCbd3D1NeS9+Jmteyvu04CucXi5+urYXMK0UNyS0HFi82g4cFt2RuLRDSYrfXA7jXF3FPH5U Xg/ezRPSvCZklAAGpH8/EXMRPg1zktttaUCOtsL3HEFRxQdq2Unujh8U542VTgFHJlKXTmbx/Zzz3 JeRBeV520fvYTIC/2CzfPKkpm2/bSrPVqbLq1WueV2FSNXTJQnGF25BM7AzO3hJCEdVQXWd9u+/a3 5lFhSdzQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mBLHC-0077KN-1G; Wed, 04 Aug 2021 18:05:58 +0000 Received: from mail-ot1-x32d.google.com ([2607:f8b0:4864:20::32d]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mBLH7-0077Ix-JM for linux-arm-kernel@lists.infradead.org; Wed, 04 Aug 2021 18:05:55 +0000 Received: by mail-ot1-x32d.google.com with SMTP id e13-20020a056830200db02904f06fa2790cso2437778otp.1 for ; Wed, 04 Aug 2021 11:05:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=662mfXKtv4dSIf5beuNHT3DDXWaZbtj0U5V1Quf/Cqo=; b=TsQLFAb5BCoWxD1Y2wgcJGTIN7EP2e93teQo9ELdOtG3JOvr/Y3zRBwD0WFB1kOzRY jOkeOW8BcYKRFJgvnnOT0sz6cGil12qyuXKAv09qUokQmiCWj20asPOQ1PI1BqvFjgez cPVIIhd6/M6ponIGM58P+5KnevAUetIqSk9KhNYPEAfUVHB0ko0IryjGbVwxF3IK5fTm OqlhFPyeVh914SibViA+dpwsaGUGsBgltFpn25sQn+9+YIfdDl+w/Ke+9yaFpFJC0os+ Y05RD6wUnzCa6cf270QE6ZFez0Lr6v0E9pJqBZ2QmsoMR6uSGOS32+spj9sHUXExEk9h pPPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=662mfXKtv4dSIf5beuNHT3DDXWaZbtj0U5V1Quf/Cqo=; b=aNcTeD9xOFZQONQi8TwDIhQ40aixszrDVvGvbUg6Dy9iwtd7uB/eX/e8nQXGv5TjCJ uMn9BXkr4QM0EurR/szzz59dIpRgJU3YOHEoZL+9KCop449tdUWZIFyEltTdpEhhNFUN R6y7X8i4qcQhSnbmah1Pm0u83nx7KnR2HCqasUGCXqGVwfEngGgQMWJOLwmQ6uFUvqUv ccxGRpnH9ho6eMNR7Rc6JfKcvO7SVigXjqZaNff2URab5HVMiHOUYxZw/fEEbsPAfak6 rxMdtBGGpEebu/1QhmQoGr/FdBZmeX2wlI9qMiwZqVBnTH0whH+PJpckoeDAojoAB05f Hf3w== X-Gm-Message-State: AOAM5318XCIkZ9aJf3lgBju/PRJL6/EeIAtgrrMlarGzQCpUuRyHz0A/ 7s+Ce7iP6ircqPl+IVEtOYs= X-Google-Smtp-Source: ABdhPJwV2GGK2AFelwSidL571RaM1UkeRO7cCy4fNQ3gajiTq4DQjj4ju9lo9QV4O7WpRUROwB5WyA== X-Received: by 2002:a05:6830:25ce:: with SMTP id d14mr715144otu.87.1628100352271; Wed, 04 Aug 2021 11:05:52 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id f14sm516494ote.64.2021.08.04.11.05.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 04 Aug 2021 11:05:51 -0700 (PDT) Subject: Re: [PATCH 13/14] docs: hwmon: Document PECI drivers To: Zev Weiss , "Winiarska, Iwona" Cc: "corbet@lwn.net" , "jae.hyun.yoo@linux.intel.com" , "Lutomirski, Andy" , "linux-hwmon@vger.kernel.org" , "Luck, Tony" , "andrew@aj.id.au" , "mchehab@kernel.org" , "jdelvare@suse.com" , "linux-kernel@vger.kernel.org" , "mingo@redhat.com" , "devicetree@vger.kernel.org" , "tglx@linutronix.de" , "linux-aspeed@lists.ozlabs.org" , "linux-doc@vger.kernel.org" , "yazen.ghannam@amd.com" , "robh+dt@kernel.org" , "openbmc@lists.ozlabs.org" , "bp@alien8.de" , "linux-arm-kernel@lists.infradead.org" , "pierre-louis.bossart@linux.intel.com" , "andriy.shevchenko@linux.intel.com" , "x86@kernel.org" , "gregkh@linuxfoundation.org" References: <20210712220447.957418-1-iwona.winiarska@intel.com> <20210712220447.957418-14-iwona.winiarska@intel.com> <20210727225808.GU8018@packtop> <20210804175203.GY8018@packtop> From: Guenter Roeck Message-ID: <4e840768-0315-6241-e988-9a3165a31a86@roeck-us.net> Date: Wed, 4 Aug 2021 11:05:48 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210804175203.GY8018@packtop> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210804_110553_706618_CE67F56B X-CRM114-Status: GOOD ( 28.48 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gOC80LzIxIDEwOjUyIEFNLCBaZXYgV2Vpc3Mgd3JvdGU6Cj4gT24gTW9uLCBBdWcgMDIsIDIw MjEgYXQgMDY6Mzc6MzBBTSBDRFQsIFdpbmlhcnNrYSwgSXdvbmEgd3JvdGU6Cj4+IE9uIFR1ZSwg MjAyMS0wNy0yNyBhdCAyMjo1OCArMDAwMCwgWmV2IFdlaXNzIHdyb3RlOgo+Pj4gT24gTW9uLCBK dWwgMTIsIDIwMjEgYXQgMDU6MDQ6NDZQTSBDRFQsIEl3b25hIFdpbmlhcnNrYSB3cm90ZToKPj4+ PiBGcm9tOiBKYWUgSHl1biBZb28gPGphZS5oeXVuLnlvb0BsaW51eC5pbnRlbC5jb20+Cj4+Pj4K Pj4+PiBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgcGVjaS1jcHV0ZW1wIGRyaXZlciB0aGF0IHByb3Zp ZGVzIERUUyB0aGVybWFsCj4+Pj4gcmVhZGluZ3MgZm9yIENQVSBwYWNrYWdlcyBhbmQgQ1BVIGNv cmVzIGFuZCBwZWNpLWRpbW10ZW1wIGRyaXZlciB0aGF0Cj4+Pj4gcHJvdmlkZXMgRFRTIHRoZXJt YWwgcmVhZGluZ3MgZm9yIERJTU1zLgo+Pj4+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogSmFlIEh5dW4g WW9vIDxqYWUuaHl1bi55b29AbGludXguaW50ZWwuY29tPgo+Pj4+IENvLWRldmVsb3BlZC1ieTog SXdvbmEgV2luaWFyc2thIDxpd29uYS53aW5pYXJza2FAaW50ZWwuY29tPgo+Pj4+IFNpZ25lZC1v ZmYtYnk6IEl3b25hIFdpbmlhcnNrYSA8aXdvbmEud2luaWFyc2thQGludGVsLmNvbT4KPj4+PiBS ZXZpZXdlZC1ieTogUGllcnJlLUxvdWlzIEJvc3NhcnQgPHBpZXJyZS1sb3Vpcy5ib3NzYXJ0QGxp bnV4LmludGVsLmNvbT4KPj4+PiAtLS0KPj4+PiBEb2N1bWVudGF0aW9uL2h3bW9uL2luZGV4LnJz dMKgwqDCoMKgwqDCoMKgwqAgfMKgIDIgKwo+Pj4+IERvY3VtZW50YXRpb24vaHdtb24vcGVjaS1j cHV0ZW1wLnJzdMKgIHwgOTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+Pj4gRG9jdW1l bnRhdGlvbi9od21vbi9wZWNpLWRpbW10ZW1wLnJzdCB8IDU4ICsrKysrKysrKysrKysrKysrCj4+ Pj4gTUFJTlRBSU5FUlPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHzCoCAyICsKPj4+PiA0IGZpbGVzIGNoYW5nZWQsIDE1NSBpbnNlcnRpb25zKCsp Cj4+Pj4gY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vaHdtb24vcGVjaS1jcHV0ZW1w LnJzdAo+Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2h3bW9uL3BlY2ktZGlt bXRlbXAucnN0Cj4+Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9od21vbi9pbmRl eC5yc3QgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL2luZGV4LnJzdAo+Pj4+IGluZGV4IGJjMDE2MDFl YTgxYS4uY2M3NmI1YjNmNzkxIDEwMDY0NAo+Pj4+IC0tLSBhL0RvY3VtZW50YXRpb24vaHdtb24v aW5kZXgucnN0Cj4+Pj4gKysrIGIvRG9jdW1lbnRhdGlvbi9od21vbi9pbmRleC5yc3QKPj4+PiBA QCAtMTU0LDYgKzE1NCw4IEBAIEhhcmR3YXJlIE1vbml0b3JpbmcgS2VybmVsIERyaXZlcnMKPj4+ PiAgwqDCoCBwY2Y4NTkxCj4+Pj4gIMKgwqAgcGltNDMyOAo+Pj4+ICDCoMKgIHBtNjc2NHRyCj4+ Pj4gK8KgwqAgcGVjaS1jcHV0ZW1wCj4+Pj4gK8KgwqAgcGVjaS1kaW1tdGVtcAo+Pj4+ICDCoMKg IHBtYnVzCj4+Pj4gIMKgwqAgcG93cjEyMjAKPj4+PiAgwqDCoCBweGUxNjEwCj4+Pj4gZGlmZiAt LWdpdCBhL0RvY3VtZW50YXRpb24vaHdtb24vcGVjaS1jcHV0ZW1wLnJzdAo+Pj4+IGIvRG9jdW1l bnRhdGlvbi9od21vbi9wZWNpLWNwdXRlbXAucnN0Cj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK Pj4+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmQzYTIxOGJhODEwYQo+Pj4+IC0tLSAvZGV2L251bGwK Pj4+PiArKysgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL3BlY2ktY3B1dGVtcC5yc3QKPj4+PiBAQCAt MCwwICsxLDkzIEBACj4+Pj4gKy4uIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9u bHkKPj4+PiArCj4+Pj4gK0tlcm5lbCBkcml2ZXIgcGVjaS1jcHV0ZW1wCj4+Pj4gKz09PT09PT09 PT09PT09PT09PT09PT09PT09Cj4+Pj4gKwo+Pj4+ICtTdXBwb3J0ZWQgY2hpcHM6Cj4+Pj4gK8Kg wqDCoMKgwqDCoMKgT25lIG9mIEludGVsIHNlcnZlciBDUFVzIGxpc3RlZCBiZWxvdyB3aGljaCBp cyBjb25uZWN0ZWQgdG8gYSBQRUNJCj4+Pj4gYnVzLgo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAqIEludGVsIFhlb24gRTUvRTcgdjMgc2VydmVyIHByb2Nlc3NvcnMKPj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEludGVsIFhlb24g RTUtMTR4eCB2MyBmYW1pbHkKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoEludGVsIFhlb24gRTUtMjR4eCB2MyBmYW1pbHkKPj4+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEludGVsIFhlb24gRTUtMTZ4eCB2 MyBmYW1pbHkKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoEludGVsIFhlb24gRTUtMjZ4eCB2MyBmYW1pbHkKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEludGVsIFhlb24gRTUtNDZ4eCB2MyBmYW1pbHkK Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEludGVs IFhlb24gRTctNDh4eCB2MyBmYW1pbHkKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoEludGVsIFhlb24gRTctODh4eCB2MyBmYW1pbHkKPj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKiBJbnRlbCBYZW9uIEU1L0U3IHY0IHNlcnZlciBw cm9jZXNzb3JzCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBJbnRlbCBYZW9uIEU1LTE2eHggdjQgZmFtaWx5Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBJbnRlbCBYZW9uIEU1LTI2eHggdjQgZmFtaWx5 Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBJbnRl bCBYZW9uIEU1LTQ2eHggdjQgZmFtaWx5Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBJbnRlbCBYZW9uIEU3LTQ4eHggdjQgZmFtaWx5Cj4+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBJbnRlbCBYZW9uIEU3 LTg4eHggdjQgZmFtaWx5Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCogSW50 ZWwgWGVvbiBTY2FsYWJsZSBzZXJ2ZXIgcHJvY2Vzc29ycwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgSW50ZWwgWGVvbiBEIGZhbWlseQo+Pj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgSW50ZWwgWGVvbiBC cm9uemUgZmFtaWx5Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBJbnRlbCBYZW9uIFNpbHZlciBmYW1pbHkKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEludGVsIFhlb24gR29sZCBmYW1pbHkKPj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEludGVsIFhlb24g UGxhdGludW0gZmFtaWx5Cj4+Pj4gKwo+Pj4+ICvCoMKgwqDCoMKgwqDCoERhdGFzaGVldDogQXZh aWxhYmxlIGZyb20gaHR0cDovL3d3dy5pbnRlbC5jb20vZGVzaWduL2xpdGVyYXR1cmUuaHRtCj4+ Pj4gKwo+Pj4+ICtBdXRob3I6IEphZSBIeXVuIFlvbyA8amFlLmh5dW4ueW9vQGxpbnV4LmludGVs LmNvbT4KPj4+PiArCj4+Pj4gK0Rlc2NyaXB0aW9uCj4+Pj4gKy0tLS0tLS0tLS0tCj4+Pj4gKwo+ Pj4+ICtUaGlzIGRyaXZlciBpbXBsZW1lbnRzIGEgZ2VuZXJpYyBQRUNJIGh3bW9uIGZlYXR1cmUg d2hpY2ggcHJvdmlkZXMgRGlnaXRhbAo+Pj4+ICtUaGVybWFsIFNlbnNvciAoRFRTKSB0aGVybWFs IHJlYWRpbmdzIG9mIHRoZSBDUFUgcGFja2FnZSBhbmQgQ1BVIGNvcmVzIHRoYXQKPj4+PiBhcmUK Pj4+PiArYWNjZXNzaWJsZSB2aWEgdGhlIHByb2Nlc3NvciBQRUNJIGludGVyZmFjZS4KPj4+PiAr Cj4+Pj4gK0FsbCB0ZW1wZXJhdHVyZSB2YWx1ZXMgYXJlIGdpdmVuIGluIG1pbGxpZGVncmVlIENl bHNpdXMgYW5kIHdpbGwgYmUKPj4+PiBtZWFzdXJhYmxlCj4+Pj4gK29ubHkgd2hlbiB0aGUgdGFy Z2V0IENQVSBpcyBwb3dlcmVkIG9uLgo+Pj4+ICsKPj4+PiArU3lzZnMgaW50ZXJmYWNlCj4+Pj4g Ky0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+PiArCj4+Pj4gKz09PT09PT09PT09PT09PT09PT09PT09 Cj4+Pj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQo+Pj4+ICt0ZW1wMV9sYWJlbMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCJEaWUiCj4+Pj4g K3RlbXAxX2lucHV0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgUHJvdmlkZXMgY3VycmVudCBkaWUg dGVtcGVyYXR1cmUgb2YgdGhlIENQVSBwYWNrYWdlLgo+Pj4+ICt0ZW1wMV9tYXjCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgUHJvdmlkZXMgdGhlcm1hbCBjb250cm9sIHRlbXBlcmF0dXJlIG9m IHRoZSBDUFUKPj4+PiBwYWNrYWdlCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqB3aGljaCBpcyBhbHNvIGtub3duIGFzIFRjb250cm9sLgo+Pj4+ICt0 ZW1wMV9jcml0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBQcm92aWRlcyBzaHV0ZG93biB0ZW1w ZXJhdHVyZSBvZiB0aGUgQ1BVIHBhY2thZ2UKPj4+PiB3aGljaAo+Pj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaXMgYWxzbyBrbm93biBhcyB0aGUgbWF4 aW11bSBwcm9jZXNzb3IganVuY3Rpb24KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHRlbXBlcmF0dXJlLCBUam1heCBvciBUcHJvY2hvdC4KPj4+PiAr dGVtcDFfY3JpdF9oeXN0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBQcm92aWRlcyB0 aGUgaHlzdGVyZXNpcyB2YWx1ZSBmcm9tIFRjb250cm9sCj4+Pj4gdG8gVGptYXggb2YKPj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRoZSBDUFUgcGFj a2FnZS4KPj4+PiArCj4+Pj4gK3RlbXAyX2xhYmVswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIkRU UyIKPj4+PiArdGVtcDJfaW5wdXTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBQcm92aWRlcyBjdXJy ZW50IERUUyB0ZW1wZXJhdHVyZSBvZiB0aGUgQ1BVIHBhY2thZ2UuCj4+Pgo+Pj4gV291bGQgdGhp cyBiZSBhIGdvb2QgcGxhY2UgdG8gbm90ZSB0aGUgc2xpZ2h0bHkgY291bnRlci1pbnR1aXRpdmUg bmF0dXJlCj4+PiBvZiBEVFMgcmVhZGluZ3M/wqAgaS5lLiBhZGQgc29tZXRoaW5nIGFsb25nIHRo ZSBsaW5lcyBvZiAiVGhlIERUUyBzZW5zb3IKPj4+IHByb2R1Y2VzIGEgZGVsdGEgcmVsYXRpdmUg dG8gVGptYXgsIHNvIG5lZ2F0aXZlIHZhbHVlcyBhcmUgbm9ybWFsIGFuZAo+Pj4gdmFsdWVzIGFw cHJvYWNoaW5nIHplcm8gYXJlIGhvdC4iwqAgKEluIG15IGV4cGVyaWVuY2UgcGVvcGxlIHdobyBh cmVuJ3QKPj4+IGFscmVhZHkgZmFtaWxpYXIgd2l0aCBpdCB0ZW5kIHRvIHRoaW5rIHNvbWV0aGlu ZydzIHdyb25nIHdoZW4gYSBDUFUKPj4+IHRlbXBlcmF0dXJlIHJlYWRpbmcgc2hvd3MgLTUwQy4p Cj4+Cj4+IEkgYmVsaWV2ZSB0aGF0IHdoYXQgeW91J3JlIHJlZmVycmluZyB0byBpcyBhIHJlc3Vs dCBvZiAiR2V0VGVtcCIsIGFuZCB3ZSdyZQo+PiB1c2luZyBpdCB0byBjYWxjdWxhdGUgIkRpZSIg c2Vuc29yIHZhbHVlcyAodGVtcDEpLgo+PiBUaGUgc2Vuc29yIHZhbHVlIGlzIGFic29sdXRlIC0g d2UgZG9uJ3QgZXhwb3NlICJyYXciIHRoZXJtYWwgc2Vuc29yIHZhbHVlCj4+IChkZWx0YSkgYW55 d2hlcmUuCj4+Cj4+IERUUyBzZW5zb3IgaXMgZXhwb3NpbmcgdGVtcGVyYXR1cmUgdmFsdWUgc2Nh bGVkIHRvIGZpdCBEVFMgMi4wIHRoZXJtYWwgcHJvZmlsZToKPj4gaHR0cHM6Ly93d3cuaW50ZWwu Y29tL2NvbnRlbnQvd3d3L3VzL2VuL3Byb2Nlc3NvcnMveGVvbi9zY2FsYWJsZS94ZW9uLXNjYWxh YmxlLXRoZXJtYWwtZ3VpZGUuaHRtbAo+PiAoc2VjdGlvbiA1LjIuMy4yKQo+Pgo+PiBTaW1pbGFy IHRvICJEaWUiIHNlbnNvciAtIGl0J3MgYWxzbyBleHBvc2VkIGluIGFic29sdXRlIGZvcm0uCj4+ Cj4+IEknbGwgdHJ5IHRvIGNoYW5nZSBkZXNjcmlwdGlvbiB0byBhdm9pZCBjb25mdXNpb24uCj4+ Cj4gCj4gV2hlbiBJIHRlc3RlZCB0aGUgcGF0Y2ggc2VyaWVzIGJ5IGFwcGx5aW5nIGl0IHRvIG15 IE9wZW5CTUMga2VybmVsLCB0aGUKPiB0ZW1wMl9pbnB1dCBzeXNmcyBmaWxlIHByb2R1Y2VkIG5l Z2F0aXZlIG51bWJlcnMgKGFzIGhhcyBiZWVuIHRoZSBjYXNlCj4gd2l0aCBwcmV2aW91cyBpdGVy YXRpb25zIG9mIHRoZSBQRUNJIHBhdGNoc2V0KS4gIElzIHRoYXQgZXhwZWN0ZWQ/ICBGcm9tCj4g d2hhdCBHdWVudGVyIGhhcyBzYWlkIGl0IHNvdW5kcyBsaWtlIHRoYXQncyBnb2luZyB0byBuZWVk IHRvIGNoYW5nZSBzbwo+IHRoYXQgdGhlIHRlbXBlcmF0dXJlIHJlYWRpbmdzIGFyZSBhbGwgaW4g Im5vcm1hbCIgbWlsbGlkZWdyZWVzIEMKPiAodGhhdCBpcywgcmVsYXRpdmUgdG8gdGhlIGZyZWV6 aW5nIHBvaW50IG9mIHdhdGVyKS4KPiAKCkNvcnJlY3QsIHRoZSB0ZW1wZXJhdHVyZSBpcyBleHBl Y3RlZCB0byBiZSByZXBvcnRlZCBpbiBtaWxsaWRlZ3JlZXMgQwpwZXIgaHdtb24gQUJJLiBFdmVy eXRoaW5nIGVsc2UgaXMgdW5hY2NlcHRhYmxlLiBUaGF0IG1ha2VzIG1lIHdvbmRlciB3aGF0CiJy YXciIGFuZCAiYWJzb2x1dGUiIG1lYW5zLiBOZWdhdGl2ZSBudW1iZXJzIHN1Z2dlc3QgdGhhdCwg d2hhdGV2ZXIgaXMKcmVwb3J0ZWQgdG9kYXksIGl0IGlzIG5vdCBtaWxsaWRlZ3JlZXMgQy4KCkd1 ZW50ZXIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwK