Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp1678583pxb; Thu, 7 Oct 2021 12:42:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzud0kTnf6CwXhRu5TCukqjBTD9ip6mYi4CEx5J77QdWbhpDuCSb0bVpaiM4orTC9e04m7Y X-Received: by 2002:a17:90a:39c5:: with SMTP id k5mr7571612pjf.211.1633635719843; Thu, 07 Oct 2021 12:41:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633635719; cv=none; d=google.com; s=arc-20160816; b=QzBzzsqRK/fnon/sZp/DXEetoX6ZU4wDUsk0mepv/OouCI6QhVFs2lTcIgH3lzevFI JSJlwlV2RYv/PUNIhHEe87JPdrR68CpaquqhV/Dqte6agH5DRdq9tdw+HyZ+fD4k4g48 w6rG+zWH3XqG/kM1pJgqhzkSEMf0D8ZxRp6EOkyQ8XONSiDlJlmRaVqWmQNUDNfDy6T8 +6Mp79Q5x2mnIOshQc2DXuEJG0n7yjU8FfabqcDfHW45CSsWWfsjwX77eesuwVA65WYF WeNReNHE9fTnSqqLmbp9tHWhaBk9n8xtpgfYpqkKtHWmqW6wlLsdevFcnjxjkNLE8olL laSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version; bh=EfXeZGQr+Z7P1Q1REsqqjibRh5MmP3NHSRT3oSww/k0=; b=IWBU8SLvE8ZZFjrG6YYGgZU+jaBxxgdDBAFuhm1fckIaZaY2zA9WHy9Bm/owkkTDN0 wk9DMNtKqB68e6ZS2GpcMKXdsPnyrbM9dzmWbhYc9NtYov1xgyfVvZ3wtDpI9pmy9+O7 MyboxHWiUmmppnY+MIUMsSqB1GvvzcCqJ4A9v5LzxN12T0eb14klPdh5JWZYxLFhx9p2 6bg71iOfMDrm1Xz2+si+zt+pEBEOnxespK3zufR+Rx2MchiZE4EXD+0SxefwfxLFvXFf TswsWg5E/qn2QNgah0D+xa2g+qAjd4psOfmV3r3oXeGUY71o0CKT9VF0ODixtM8GuD7F CtdQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x33si242699pgl.277.2021.10.07.12.41.46; Thu, 07 Oct 2021 12:41:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242752AbhJGQmG (ORCPT + 99 others); Thu, 7 Oct 2021 12:42:06 -0400 Received: from mail-ot1-f47.google.com ([209.85.210.47]:42808 "EHLO mail-ot1-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242297AbhJGQmE (ORCPT ); Thu, 7 Oct 2021 12:42:04 -0400 Received: by mail-ot1-f47.google.com with SMTP id c26-20020a056830349a00b0054d96d25c1eso8165845otu.9; Thu, 07 Oct 2021 09:40:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=EfXeZGQr+Z7P1Q1REsqqjibRh5MmP3NHSRT3oSww/k0=; b=Xn/ApHWbR2EEzuwwCYIpgAPSi2hPCBRqosTCxgCkfF7MypgrYSXJUDuUVUANPtsZ7p tJ9fxfy56G6L8mpz66TDmejufqqgfJ35B7b4QNUUbaGsUtSQCx7ebmvgbODVz3QMqTBs J2cR19vpNTk9jJXfyWYXO8jWIawDegc0ggH4GpVMfdy+RkNM9ZSevQKg+9uujob2jVwz fE1UBZRQxQ+SqWdoGprdsRyrx3ed4T1jIb32ZAqwxSJVUS8RmAO5piLCBboWkro82ep+ gXjZDoL6FXP9JCODGmNq/U4OiCgPYpPuchE/Mhu6MS1Fsve+PuxdvqRNF7qAWL8KzZ6l CwEQ== X-Gm-Message-State: AOAM531Sqk7rqGtNKV3lVKVrjTpXaX/JgICJ2Up4uBcn4UqwulqCzdfE HE9p0Hf2YEQleIG0quIKr0jFV5m+/tGYhif2cpAOa61T X-Received: by 2002:a9d:2f24:: with SMTP id h33mr4632216otb.254.1633624810423; Thu, 07 Oct 2021 09:40:10 -0700 (PDT) MIME-Version: 1.0 References: <864dd17a1bff58770b1c1dc0b430bd26b6d7fa01.1633595141.git.mchehab+huawei@kernel.org> In-Reply-To: <864dd17a1bff58770b1c1dc0b430bd26b6d7fa01.1633595141.git.mchehab+huawei@kernel.org> From: "Rafael J. Wysocki" Date: Thu, 7 Oct 2021 18:39:59 +0200 Message-ID: Subject: Re: [PATCH v2] thermal: Move ABI documentation do Documentation/ABI To: Mauro Carvalho Chehab , Daniel Lezcano Cc: Linux Doc Mailing List , "Rafael J. Wysocki" , Greg Kroah-Hartman , Jonathan Corbet , Amit Kucheria , Zhang Rui , Linux Kernel Mailing List , Linux PM Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Oct 7, 2021 at 10:25 AM Mauro Carvalho Chehab wrote: > > The thermal ABI is described, together with the internal > development details at: > > Documentation/driver-api/thermal/sysfs-api.rst > > Move the sysfs API description to Documentation/ABI, > ensuring that scripts/get_abi.pl will properly parse it. > > While here, also update MAINTAINERS for it to point to > the documentation. > > Signed-off-by: Mauro Carvalho Chehab There is a typo in the subject, but I can fix it up. Daniel, would you mind if I applied this? > --- > Documentation/ABI/testing/sysfs-class-thermal | 259 ++++++++++++++++++ > .../driver-api/thermal/sysfs-api.rst | 225 +-------------- > MAINTAINERS | 2 + > 3 files changed, 264 insertions(+), 222 deletions(-) > create mode 100644 Documentation/ABI/testing/sysfs-class-thermal > > diff --git a/Documentation/ABI/testing/sysfs-class-thermal b/Documentation/ABI/testing/sysfs-class-thermal > new file mode 100644 > index 000000000000..2c52bb1f864c > --- /dev/null > +++ b/Documentation/ABI/testing/sysfs-class-thermal > @@ -0,0 +1,259 @@ > +What: /sys/class/thermal/thermal_zoneX/type > +Description: > + Strings which represent the thermal zone type. > + This is given by thermal zone driver as part of registration. > + E.g: "acpitz" indicates it's an ACPI thermal device. > + In order to keep it consistent with hwmon sys attribute; this > + shouldbe a short, lowercase string, not containing spaces nor > + dashes. > + > + RO, Required > + > +What: /sys/class/thermal/thermal_zoneX/temp > +Description: > + Current temperature as reported by thermal zone (sensor). > + > + Unit: millidegree Celsius > + > + RO, Required > + > +What: /sys/class/thermal/thermal_zoneX/mode > +Description: > + One of the predefined values in [enabled, disabled]. > + This file gives information about the algorithm that is > + currently managing the thermal zone. It can be either default > + kernel based algorithm or user space application. > + > + enabled > + enable Kernel Thermal management. > + disabled > + Preventing kernel thermal zone driver actions upon > + trip points so that user application can take full > + charge of the thermal management. > + > + RW, Optional > + > +What: /sys/class/thermal/thermal_zoneX/policy > +Description: > + One of the various thermal governors used for a particular zone. > + > + RW, Required > + > +What: /sys/class/thermal/thermal_zoneX/available_policies > +Description: > + Available thermal governors which can be used for a > + particular zone. > + > + RO, Required > + > +What: /sys/class/thermal/thermal_zoneX/trip_point_Y_temp > +Description: > + The temperature above which trip point will be fired. > + > + Unit: millidegree Celsius > + > + RO, Optional > + > +What: /sys/class/thermal/thermal_zoneX/trip_point_Y_type > +Description: > + Strings which indicate the type of the trip point. > + > + E.g. it can be one of critical, hot, passive, `active[0-*]` > + for ACPI thermal zone. > + > + RO, Optional > + > +What: /sys/class/thermal/thermal_zoneX/trip_point_Y_hyst > +Description: > + The hysteresis value for a trip point, represented as an > + integer. > + > + Unit: Celsius > + > + RW, Optional > + > +What: /sys/class/thermal/thermal_zoneX/cdevY > +Description: > + Sysfs link to the thermal cooling device node where the sys I/F > + for cooling device throttling control represents. > + > + RO, Optional > + > +What: /sys/class/thermal/thermal_zoneX/cdevY_trip_point > +Description: > + The trip point in this thermal zone which `cdev[0-*]` is > + associated with; -1 means the cooling device is not > + associated with any trip point. > + > + RO, Optional > + > +What: /sys/class/thermal/thermal_zoneX/cdevY_weight > +Description: > + The influence of `cdev[0-*]` in this thermal zone. This value > + is relative to the rest of cooling devices in the thermal > + zone. For example, if a cooling device has a weight double > + than that of other, it's twice as effective in cooling the > + thermal zone. > + > + RW, Optional > + > +What: /sys/class/thermal/thermal_zoneX/emul_temp > +Description: > + Interface to set the emulated temperature method in thermal zone > + (sensor). After setting this temperature, the thermal zone may > + pass this temperature to platform emulation function if > + registered or cache it locally. This is useful in debugging > + different temperature threshold and its associated cooling > + action. This is write only node and writing 0 on this node > + should disable emulation. > + > + Unit: millidegree Celsius > + > + WO, Optional > + > + WARNING: > + Be careful while enabling this option on production systems, > + because userland can easily disable the thermal policy by simply > + flooding this sysfs node with low temperature values. > + > + > +What: /sys/class/thermal/thermal_zoneX/k_d > +Description: > + The derivative term of the power allocator governor's PID > + controller. For more information see > + Documentation/driver-api/thermal/power_allocator.rst > + > + RW, Optional > + > +What: /sys/class/thermal/thermal_zoneX/k_i > +Description: > + The integral term of the power allocator governor's PID > + controller. This term allows the PID controller to compensate > + for long term drift. For more information see > + Documentation/driver-api/thermal/power_allocator.rst > + > + RW, Optional > + > +What: /sys/class/thermal/thermal_zoneX/k_po > +Description: > + The proportional term of the power allocator governor's PID > + controller during temperature overshoot. Temperature overshoot > + is when the current temperature is above the "desired > + temperature" trip point. For more information see > + Documentation/driver-api/thermal/power_allocator.rst > + > + RW, Optional > + > +What: /sys/class/thermal/thermal_zoneX/k_pu > +Description: > + The proportional term of the power allocator governor's PID > + controller during temperature undershoot. Temperature undershoot > + is when the current temperature is below the "desired > + temperature" trip point. For more information see > + Documentation/driver-api/thermal/power_allocator.rst > + > + RW, Optional > + > +What: /sys/class/thermal/thermal_zoneX/integral_cutoff > +Description: > + Temperature offset from the desired temperature trip point > + above which the integral term of the power allocator > + governor's PID controller starts accumulating errors. For > + example, if integral_cutoff is 0, then the integral term only > + accumulates error when temperature is above the desired > + temperature trip point. For more information see > + Documentation/driver-api/thermal/power_allocator.rst > + > + Unit: millidegree Celsius > + > + RW, Optional > + > +What: /sys/class/thermal/thermal_zoneX/slope > +Description: > + The slope constant used in a linear extrapolation model > + to determine a hotspot temperature based off the sensor's > + raw readings. It is up to the device driver to determine > + the usage of these values. > + > + RW, Optional > + > +What: /sys/class/thermal/thermal_zoneX/offset > +Description: > + The offset constant used in a linear extrapolation model > + to determine a hotspot temperature based off the sensor's > + raw readings. It is up to the device driver to determine > + the usage of these values. > + > + RW, Optional > + > +What: /sys/class/thermal/thermal_zoneX/sustainable_power > +Description: > + An estimate of the sustained power that can be dissipated by > + the thermal zone. Used by the power allocator governor. For > + more information see > + Documentation/driver-api/thermal/power_allocator.rst > + > + Unit: milliwatts > + > + RW, Optional > + > +What: /sys/class/thermal/cooling_deviceX/type > +Description: > + String which represents the type of device, e.g: > + > + - for generic ACPI: should be "Fan", "Processor" or "LCD" > + - for memory controller device on intel_menlow platform: > + should be "Memory controller". > + > + RO, Required > + > +What: /sys/class/thermal/cooling_deviceX/max_state > +Description: > + The maximum permissible cooling state of this cooling device. > + > + RO, Required > + > +What: /sys/class/thermal/cooling_deviceX/cur_state > +Description: > + The current cooling state of this cooling device. > + The value can any integer numbers between 0 and max_state: > + > + - cur_state == 0 means no cooling > + - cur_state == max_state means the maximum cooling. > + > + RW, Required > + > +What: /sys/class/thermal/cooling_deviceX/stats/reset > +Description: > + Writing any value resets the cooling device's statistics. > + > + WO, Required > + > +What: /sys/class/thermal/cooling_deviceX/stats/time_in_state_ms: > +Description: > + The amount of time spent by the cooling device in various > + cooling states. The output will have "