Messages in this thread Patch in this message | | | From | "Zhang, Rui" <> | Subject | Re: [PATCH v2 2/4] thermal: intel: hfi: Shorten the thermal netlink event delay to 100ms | Date | Wed, 8 May 2024 04:45:59 +0000 |
| |
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)
| |