lkml.org 
[lkml]   [2024]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRe: [PATCH v2 2/4] thermal: intel: hfi: Shorten the thermal netlink event delay to 100ms
Date
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@linux.intel.com>

Acked-by: Zhang Rui <rui.zhang@intel.com>

-rui
> ---
> Cc: Len Brown <len.brown@intel.com>
> Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> Cc: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
> Cc: Zhang Rui <rui.zhang@intel.com>
> Cc: linux-pm@vger.kernel.org
> Cc: linux-kernel@vger.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)

\
 
 \ /
  Last update: 2024-05-08 06:46    [W:0.077 / U:0.488 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site