Message ID | 20240212161615.161935-1-stanislaw.gruszka@linux.intel.com (mailing list archive) |
---|---|
Headers | show |
Series | thermal/netlink/intel_hfi: Enable HFI feature only when required | expand |
On Mon, 12 Feb 2024 17:16:12 +0100 Stanislaw Gruszka wrote:
> genetlink: Add per family bind/unbind callbacks
genetlink patch is now in net-next, and pushed to a 6.8-rc4-based
branch at:
https://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux.git
for-thermal-genetlink-family-bind-unbind-callbacks
for anyone to pull.
Hello: This series was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Mon, 12 Feb 2024 17:16:12 +0100 you wrote: > The patchset introduces a new genetlink family bind/unbind callbacks > and thermal/netlink notifications, which allow drivers to send netlink > multicast events based on the presence of actual user-space consumers. > This functionality optimizes resource usage by allowing disabling > of features when not needed. > > Then implement the notification mechanism in the intel_hif driver, > it is utilized to disable the Hardware Feedback Interface (HFI) > dynamically. By implementing a thermal genl notify callback, the driver > can now enable or disable the HFI based on actual demand, particularly > when user-space applications like intel-speed-select or Intel Low Power > daemon utilize events related to performance and energy efficiency > capabilities. > > [...] Here is the summary with links: - [v4,1/3] genetlink: Add per family bind/unbind callbacks https://git.kernel.org/netdev/net-next/c/3de21a8990d3 - [v4,2/3] thermal: netlink: Add genetlink bind/unbind notifications (no matching commit) - [v4,3/3] thermal: intel: hfi: Enable interface only when required (no matching commit) You are awesome, thank you!
On Thu, Feb 15, 2024 at 09:29:46PM -0800, Jakub Kicinski wrote: > On Mon, 12 Feb 2024 17:16:12 +0100 Stanislaw Gruszka wrote: > > genetlink: Add per family bind/unbind callbacks > > genetlink patch is now in net-next, and pushed to a 6.8-rc4-based > branch at: > > https://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux.git > for-thermal-genetlink-family-bind-unbind-callbacks > > for anyone to pull. Thanks! I'll post next version of this set just to linux-pm since remaining patches are thermal specific. If they will be ready to apply the above dependency can be pulled by Rafael - I assume this will not create any marge conflict. Regards Stanislaw
On Mon, Feb 12, 2024 at 5:16 PM Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com> wrote: > > The patchset introduces a new genetlink family bind/unbind callbacks > and thermal/netlink notifications, which allow drivers to send netlink > multicast events based on the presence of actual user-space consumers. > This functionality optimizes resource usage by allowing disabling > of features when not needed. > > Then implement the notification mechanism in the intel_hif driver, > it is utilized to disable the Hardware Feedback Interface (HFI) > dynamically. By implementing a thermal genl notify callback, the driver > can now enable or disable the HFI based on actual demand, particularly > when user-space applications like intel-speed-select or Intel Low Power > daemon utilize events related to performance and energy efficiency > capabilities. > > On machines where Intel HFI is present, but there are no user-space > components installed, we can save tons of CPU cycles. > > Changes v3 -> v4: > > - Add 'static inline' in patch2 > > Changes v2 -> v3: > > - Fix unused variable compilation warning > - Add missed Suggested by tag to patch2 > > Changes v1 -> v2: > > - Rewrite using netlink_bind/netlink_unbind callbacks. > > - Minor changelog tweaks. > > - Add missing check in intel hfi syscore resume (had it on my testing, > but somehow missed in post). > > - Do not use netlink_has_listeners() any longer, use custom counter instead. > To keep using netlink_has_listners() would be required to rearrange > netlink_setsockopt() and possibly netlink_bind() functions, to call > nlk->netlink_bind() after listeners are updated. So I decided to custom > counter. This have potential issue as thermal netlink registers before > intel_hif, so theoretically intel_hif can miss events. But since both > are required to be kernel build-in (if CONFIG_INTEL_HFI_THERMAL is > configured), they start before any user-space. > > v1: https://lore.kernel.org/linux-pm/20240131120535.933424-1-stanislaw.gruszka@linux.intel.com// > v2: https://lore.kernel.org/linux-pm/20240206133605.1518373-1-stanislaw.gruszka@linux.intel.com/ > v3: https://lore.kernel.org/linux-pm/20240209120625.1775017-1-stanislaw.gruszka@linux.intel.com/ > > Stanislaw Gruszka (3): > genetlink: Add per family bind/unbind callbacks > thermal: netlink: Add genetlink bind/unbind notifications > thermal: intel: hfi: Enable interface only when required > > drivers/thermal/intel/intel_hfi.c | 95 +++++++++++++++++++++++++++---- > drivers/thermal/thermal_netlink.c | 40 +++++++++++-- > drivers/thermal/thermal_netlink.h | 26 +++++++++ > include/net/genetlink.h | 4 ++ > net/netlink/genetlink.c | 30 ++++++++++ > 5 files changed, 180 insertions(+), 15 deletions(-) > > -- What tree is this based on?
On Thu, Feb 29, 2024 at 04:18:50PM +0100, Rafael J. Wysocki wrote: > On Mon, Feb 12, 2024 at 5:16 PM Stanislaw Gruszka > <stanislaw.gruszka@linux.intel.com> wrote: > > > > The patchset introduces a new genetlink family bind/unbind callbacks > > and thermal/netlink notifications, which allow drivers to send netlink > > multicast events based on the presence of actual user-space consumers. > > This functionality optimizes resource usage by allowing disabling > > of features when not needed. > > > > Then implement the notification mechanism in the intel_hif driver, > > it is utilized to disable the Hardware Feedback Interface (HFI) > > dynamically. By implementing a thermal genl notify callback, the driver > > can now enable or disable the HFI based on actual demand, particularly > > when user-space applications like intel-speed-select or Intel Low Power > > daemon utilize events related to performance and energy efficiency > > capabilities. > > > > On machines where Intel HFI is present, but there are no user-space > > components installed, we can save tons of CPU cycles. > > > > Changes v3 -> v4: > > > > - Add 'static inline' in patch2 > > > > Changes v2 -> v3: > > > > - Fix unused variable compilation warning > > - Add missed Suggested by tag to patch2 > > > > Changes v1 -> v2: > > > > - Rewrite using netlink_bind/netlink_unbind callbacks. > > > > - Minor changelog tweaks. > > > > - Add missing check in intel hfi syscore resume (had it on my testing, > > but somehow missed in post). > > > > - Do not use netlink_has_listeners() any longer, use custom counter instead. > > To keep using netlink_has_listners() would be required to rearrange > > netlink_setsockopt() and possibly netlink_bind() functions, to call > > nlk->netlink_bind() after listeners are updated. So I decided to custom > > counter. This have potential issue as thermal netlink registers before > > intel_hif, so theoretically intel_hif can miss events. But since both > > are required to be kernel build-in (if CONFIG_INTEL_HFI_THERMAL is > > configured), they start before any user-space. > > > > v1: https://lore.kernel.org/linux-pm/20240131120535.933424-1-stanislaw.gruszka@linux.intel.com// > > v2: https://lore.kernel.org/linux-pm/20240206133605.1518373-1-stanislaw.gruszka@linux.intel.com/ > > v3: https://lore.kernel.org/linux-pm/20240209120625.1775017-1-stanislaw.gruszka@linux.intel.com/ > > > > Stanislaw Gruszka (3): > > genetlink: Add per family bind/unbind callbacks > > thermal: netlink: Add genetlink bind/unbind notifications > > thermal: intel: hfi: Enable interface only when required > > > > drivers/thermal/intel/intel_hfi.c | 95 +++++++++++++++++++++++++++---- > > drivers/thermal/thermal_netlink.c | 40 +++++++++++-- > > drivers/thermal/thermal_netlink.h | 26 +++++++++ > > include/net/genetlink.h | 4 ++ > > net/netlink/genetlink.c | 30 ++++++++++ > > 5 files changed, 180 insertions(+), 15 deletions(-) > > > > -- > > What tree is this based on? v5: https://patchwork.kernel.org/project/linux-pm/list/?series=829159 it's on top of linux-pm master, but require additional net dependency, which can be added by: git fetch https://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux.git for-thermal-genetlink-family-bind-unbind-callbacks git merge FETCH_HEAD and will be merged mainline in the next merge window. So at this point would be probably better just wait for 6.9-rc1 when the dependency will be in the mainline, before applying this set. Regards Stanislaw
On Thu, Feb 29, 2024 at 5:13 PM Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com> wrote: > > On Thu, Feb 29, 2024 at 04:18:50PM +0100, Rafael J. Wysocki wrote: > > On Mon, Feb 12, 2024 at 5:16 PM Stanislaw Gruszka > > <stanislaw.gruszka@linux.intel.com> wrote: > > > > > > The patchset introduces a new genetlink family bind/unbind callbacks > > > and thermal/netlink notifications, which allow drivers to send netlink > > > multicast events based on the presence of actual user-space consumers. > > > This functionality optimizes resource usage by allowing disabling > > > of features when not needed. > > > > > > Then implement the notification mechanism in the intel_hif driver, > > > it is utilized to disable the Hardware Feedback Interface (HFI) > > > dynamically. By implementing a thermal genl notify callback, the driver > > > can now enable or disable the HFI based on actual demand, particularly > > > when user-space applications like intel-speed-select or Intel Low Power > > > daemon utilize events related to performance and energy efficiency > > > capabilities. > > > > > > On machines where Intel HFI is present, but there are no user-space > > > components installed, we can save tons of CPU cycles. > > > > > > Changes v3 -> v4: > > > > > > - Add 'static inline' in patch2 > > > > > > Changes v2 -> v3: > > > > > > - Fix unused variable compilation warning > > > - Add missed Suggested by tag to patch2 > > > > > > Changes v1 -> v2: > > > > > > - Rewrite using netlink_bind/netlink_unbind callbacks. > > > > > > - Minor changelog tweaks. > > > > > > - Add missing check in intel hfi syscore resume (had it on my testing, > > > but somehow missed in post). > > > > > > - Do not use netlink_has_listeners() any longer, use custom counter instead. > > > To keep using netlink_has_listners() would be required to rearrange > > > netlink_setsockopt() and possibly netlink_bind() functions, to call > > > nlk->netlink_bind() after listeners are updated. So I decided to custom > > > counter. This have potential issue as thermal netlink registers before > > > intel_hif, so theoretically intel_hif can miss events. But since both > > > are required to be kernel build-in (if CONFIG_INTEL_HFI_THERMAL is > > > configured), they start before any user-space. > > > > > > v1: https://lore.kernel.org/linux-pm/20240131120535.933424-1-stanislaw.gruszka@linux.intel.com// > > > v2: https://lore.kernel.org/linux-pm/20240206133605.1518373-1-stanislaw.gruszka@linux.intel.com/ > > > v3: https://lore.kernel.org/linux-pm/20240209120625.1775017-1-stanislaw.gruszka@linux.intel.com/ > > > > > > Stanislaw Gruszka (3): > > > genetlink: Add per family bind/unbind callbacks > > > thermal: netlink: Add genetlink bind/unbind notifications > > > thermal: intel: hfi: Enable interface only when required > > > > > > drivers/thermal/intel/intel_hfi.c | 95 +++++++++++++++++++++++++++---- > > > drivers/thermal/thermal_netlink.c | 40 +++++++++++-- > > > drivers/thermal/thermal_netlink.h | 26 +++++++++ > > > include/net/genetlink.h | 4 ++ > > > net/netlink/genetlink.c | 30 ++++++++++ > > > 5 files changed, 180 insertions(+), 15 deletions(-) > > > > > > -- > > > > What tree is this based on? > > v5: https://patchwork.kernel.org/project/linux-pm/list/?series=829159 > it's on top of linux-pm master, but require additional net dependency, > which can be added by: > > git fetch https://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux.git for-thermal-genetlink-family-bind-unbind-callbacks > git merge FETCH_HEAD > > and will be merged mainline in the next merge window. > So at this point would be probably better just wait for 6.9-rc1 > when the dependency will be in the mainline, before applying this set. And that's what's going to happen, unless I have any additional comments on the patches. Thanks!
On Thu, Feb 29, 2024 at 5:24 PM Rafael J. Wysocki <rafael@kernel.org> wrote: > > On Thu, Feb 29, 2024 at 5:13 PM Stanislaw Gruszka > <stanislaw.gruszka@linux.intel.com> wrote: > > > > On Thu, Feb 29, 2024 at 04:18:50PM +0100, Rafael J. Wysocki wrote: > > > On Mon, Feb 12, 2024 at 5:16 PM Stanislaw Gruszka > > > <stanislaw.gruszka@linux.intel.com> wrote: > > > > > > > > The patchset introduces a new genetlink family bind/unbind callbacks > > > > and thermal/netlink notifications, which allow drivers to send netlink > > > > multicast events based on the presence of actual user-space consumers. > > > > This functionality optimizes resource usage by allowing disabling > > > > of features when not needed. > > > > > > > > Then implement the notification mechanism in the intel_hif driver, > > > > it is utilized to disable the Hardware Feedback Interface (HFI) > > > > dynamically. By implementing a thermal genl notify callback, the driver > > > > can now enable or disable the HFI based on actual demand, particularly > > > > when user-space applications like intel-speed-select or Intel Low Power > > > > daemon utilize events related to performance and energy efficiency > > > > capabilities. > > > > > > > > On machines where Intel HFI is present, but there are no user-space > > > > components installed, we can save tons of CPU cycles. > > > > > > > > Changes v3 -> v4: > > > > > > > > - Add 'static inline' in patch2 > > > > > > > > Changes v2 -> v3: > > > > > > > > - Fix unused variable compilation warning > > > > - Add missed Suggested by tag to patch2 > > > > > > > > Changes v1 -> v2: > > > > > > > > - Rewrite using netlink_bind/netlink_unbind callbacks. > > > > > > > > - Minor changelog tweaks. > > > > > > > > - Add missing check in intel hfi syscore resume (had it on my testing, > > > > but somehow missed in post). > > > > > > > > - Do not use netlink_has_listeners() any longer, use custom counter instead. > > > > To keep using netlink_has_listners() would be required to rearrange > > > > netlink_setsockopt() and possibly netlink_bind() functions, to call > > > > nlk->netlink_bind() after listeners are updated. So I decided to custom > > > > counter. This have potential issue as thermal netlink registers before > > > > intel_hif, so theoretically intel_hif can miss events. But since both > > > > are required to be kernel build-in (if CONFIG_INTEL_HFI_THERMAL is > > > > configured), they start before any user-space. > > > > > > > > v1: https://lore.kernel.org/linux-pm/20240131120535.933424-1-stanislaw.gruszka@linux.intel.com// > > > > v2: https://lore.kernel.org/linux-pm/20240206133605.1518373-1-stanislaw.gruszka@linux.intel.com/ > > > > v3: https://lore.kernel.org/linux-pm/20240209120625.1775017-1-stanislaw.gruszka@linux.intel.com/ > > > > > > > > Stanislaw Gruszka (3): > > > > genetlink: Add per family bind/unbind callbacks > > > > thermal: netlink: Add genetlink bind/unbind notifications > > > > thermal: intel: hfi: Enable interface only when required > > > > > > > > drivers/thermal/intel/intel_hfi.c | 95 +++++++++++++++++++++++++++---- > > > > drivers/thermal/thermal_netlink.c | 40 +++++++++++-- > > > > drivers/thermal/thermal_netlink.h | 26 +++++++++ > > > > include/net/genetlink.h | 4 ++ > > > > net/netlink/genetlink.c | 30 ++++++++++ > > > > 5 files changed, 180 insertions(+), 15 deletions(-) > > > > > > > > -- > > > > > > What tree is this based on? > > > > v5: https://patchwork.kernel.org/project/linux-pm/list/?series=829159 > > it's on top of linux-pm master, but require additional net dependency, > > which can be added by: > > > > git fetch https://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux.git for-thermal-genetlink-family-bind-unbind-callbacks > > git merge FETCH_HEAD > > > > and will be merged mainline in the next merge window. > > So at this point would be probably better just wait for 6.9-rc1 > > when the dependency will be in the mainline, before applying this set. > > And that's what's going to happen, unless I have any additional > comments on the patches. Now applied as 6.10 material (with a minor change in the subject of the last patch) and I'm assuming that Srinivas likes this.