[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <32ff72ce3207460a993008d10730d077ee14969f.camel@intel.com>
Date: Wed, 8 May 2024 04:45:59 +0000
From: "Zhang, Rui" <rui.zhang@...el.com>
To: "ricardo.neri-calderon@...ux.intel.com"
<ricardo.neri-calderon@...ux.intel.com>, "Wysocki, Rafael J"
<rafael.j.wysocki@...el.com>
CC: "srinivas.pandruvada@...ux.intel.com"
<srinivas.pandruvada@...ux.intel.com>, "Brown, Len" <len.brown@...el.com>,
"stanislaw.gruszka@...ux.intel.com" <stanislaw.gruszka@...ux.intel.com>,
"linux-pm@...r.kernel.org" <linux-pm@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, "Neri,
Ricardo" <ricardo.neri@...el.com>
Subject: Re: [PATCH v2 2/4] thermal: intel: hfi: Shorten the thermal netlink
event delay to 100ms
On Tue, 2024-05-07 at 20:43 -0700, Ricardo Neri wrote:
> The delay between an HFI interrupt and its corresponding thermal
> netlink
> event has so far been hard-coded to CONFIG_HZ jiffies (1 second).
> This
> delay is too long for hardware that generates updates every tens of
> milliseconds.
>
> The HFI driver uses a delayed workqueue to send thermal netlink
> events. No
> subsequent events will be sent if there is pending work.
>
> As a result, much of the information of consecutive hardware updates
> will
> be lost if the workqueue delay is too long. User space entities may
> act on
> obsolete data. If the delay is too short, multiple events may
> overwhelm
> listeners.
>
> Set the delay to 100ms to strike a balance between too many and too
> few
> events. Use milliseconds instead of jiffies to improve readability.
>
> Signed-off-by: Ricardo Neri <ricardo.neri-calderon@...ux.intel.com>
Acked-by: Zhang Rui <rui.zhang@...el.com>
-rui
> ---
> Cc: Len Brown <len.brown@...el.com>
> Cc: Srinivas Pandruvada <srinivas.pandruvada@...ux.intel.com>
> Cc: Stanislaw Gruszka <stanislaw.gruszka@...ux.intel.com>
> Cc: Zhang Rui <rui.zhang@...el.com>
> Cc: linux-pm@...r.kernel.org
> Cc: linux-kernel@...r.kernel.org
> ---
> Changes since v1:
> * Dropped the debugfs interface. Instead, updated the delay from 1s
> to
> 100ms.
> ---
> drivers/thermal/intel/intel_hfi.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/thermal/intel/intel_hfi.c
> b/drivers/thermal/intel/intel_hfi.c
> index e2b82d71ab6b..d82b8788b0f8 100644
> --- a/drivers/thermal/intel/intel_hfi.c
> +++ b/drivers/thermal/intel/intel_hfi.c
> @@ -166,7 +166,7 @@ static struct hfi_features hfi_features;
> static DEFINE_MUTEX(hfi_instance_lock);
>
> static struct workqueue_struct *hfi_updates_wq;
> -#define HFI_UPDATE_DELAY HZ
> +#define HFI_UPDATE_DELAY_MS 100
> #define HFI_MAX_THERM_NOTIFY_COUNT 16
>
> static void get_hfi_caps(struct hfi_instance *hfi_instance,
> @@ -322,7 +322,7 @@ void intel_hfi_process_event(__u64
> pkg_therm_status_msr_val)
> raw_spin_unlock(&hfi_instance->event_lock);
>
> queue_delayed_work(hfi_updates_wq, &hfi_instance-
> >update_work,
> - HFI_UPDATE_DELAY);
> + msecs_to_jiffies(HFI_UPDATE_DELAY_MS));
> }
>
> static void init_hfi_cpu_index(struct hfi_cpu_info *info)
Powered by blists - more mailing lists