DPDK patches and discussions
 help / color / mirror / Atom feed
From: Tyler Retzlaff <roretzla@linux.microsoft.com>
To: "lihuisong (C)" <lihuisong@huawei.com>
Cc: "Morten Brørup" <mb@smartsharesystems.com>,
	dev@dpdk.org, weh@microsoft.com,
	"longli@microsoft.com >> Long Li" <longli@microsoft.com>,
	alan.elder@microsoft.com, thomas@monjalon.net,
	ferruh.yigit@amd.com, anatoly.burakov@intel.com,
	david.hunt@intel.com, sivaprasad.tummala@amd.com,
	liuyonglong@huawei.com
Subject: Re: [PATCH 0/2] introduce PM QoS interface
Date: Tue, 26 Mar 2024 09:04:55 -0700	[thread overview]
Message-ID: <20240326160455.GA20977@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> (raw)
In-Reply-To: <78a24f93-0c11-04ca-0df0-f60ed466092a@huawei.com>

On Tue, Mar 26, 2024 at 10:20:45AM +0800, lihuisong (C) wrote:
> Hi Tyler,
> 
> 在 2024/3/23 1:55, Tyler Retzlaff 写道:
> >On Fri, Mar 22, 2024 at 04:54:01PM +0800, lihuisong (C) wrote:
> >>+Tyler, +Alan, +Wei, +Long for asking this similar feature on Windows.
> >>
> >>在 2024/3/21 21:30, Morten Brørup 写道:
> >>>>From: lihuisong (C) [mailto:lihuisong@huawei.com]
> >>>>Sent: Thursday, 21 March 2024 04.04
> >>>>
> >>>>Hi Moren,
> >>>>
> >>>>Thanks for your revew.
> >>>>
> >>>>在 2024/3/20 22:05, Morten Brørup 写道:
> >>>>>>From: Huisong Li [mailto:lihuisong@huawei.com]
> >>>>>>Sent: Wednesday, 20 March 2024 11.55
> >>>>>>
> >>>>>>The system-wide CPU latency QoS limit has a positive impact on the idle
> >>>>>>state selection in cpuidle governor.
> >>>>>>
> >>>>>>Linux creates a cpu_dma_latency device under '/dev' directory to obtain the
> >>>>>>CPU latency QoS limit on system and send the QoS request for userspace.
> >>>>>>Please see the PM QoS framework in the following link:
> >>>>>>https://docs.kernel.org/power/pm_qos_interface.html?highlight=qos
> >>>>>>This feature is supported by kernel-v2.6.25.
> >>>>>>
> >>>>>>The deeper the idle state, the lower the power consumption, but the longer
> >>>>>>the resume time. Some service are delay sensitive and very except the low
> >>>>>>resume time, like interrupt packet receiving mode.
> >>>>>>
> >>>>>>So this series introduce PM QoS interface.
> >>>>>This looks like a 1:1 wrapper for a Linux kernel feature.
> >>>>right
> >>>>>Does Windows or BSD offer something similar?
> >>>>How do we know Windows or BSD support this similar feature?
> >>>Ask Windows experts or research using Google.
> >>I download freebsd source code, I didn't find this similar feature.
> >>They don't even support cpuidle feature(this QoS feature affects cpuilde.).
> >>I don't find any useful about this on Windows from google.
> >>
> >>
> >>@Tyler, @Alan, @Wei and @Long
> >>
> >>Do you know windows support that userspace read and send CPU latency
> >>which has an impact on deep level of CPU idle?
> >it is unlikely you'll find an api that let's you manage things in terms
> >of raw latency values as the linux knobs here do. windows more often employs
> >policy centric schemes to permit the system to abstract implementation detail.
> >
> >powercfg is probably the closest thing you can use to tune the same
> >things on windows. where you select e.g. the 'performance' scheme but it
> >won't allow you to pick specific latency numbers.
> >
> >https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/powercfg-command-line-options
> 
> Thanks for your feedback. I will take a look at this tool.
> 
> >
> >>>>The DPDK power lib just work on Linux according to the meson.build under
> >>>>lib/power.
> >>>>If they support this features, they can open it.
> >>>The DPDK power lib currently only works on Linux, yes.
> >>>But its API should still be designed to be platform agnostic, so the functions can be implemented on other platforms in the future.
> >>>
> >>>DPDK is on track to work across multiple platforms, including Windows.
> >>>We must always consider other platforms, and not design DPDK APIs as if they are for Linux/BSD only.
> >>totally understand you.
> >since lib/power isn't built for windows at this time i don't think it's
> >appropriate to constrain your innovation. i do appreciate the engagement
> >though and would just offer general guidance that if you can design your
> >api with some kind of abstraction in mind that would be great and by all
> >means if you can figure out how to wrangle powercfg /Qh into satisfying the
> >api in a policy centric way it might be kind of nice.
> Testing this by using powercfg on Windows creates a very challenge for me.
> So I don't plan to do this on Windows. If you need, you can add it, ok?

ordinarily i would say it is appropriate to, however in this
circumstance i agree. there is quite possibly significant porting work
to be done so i would have to address it if we ever include it for
windows.

thanks

> >
> >i'll let other windows experts chime in here if they choose.
> >
> >thanks!
> >
> >>>>>Furthermore, any high-res timing should use nanoseconds, not microseconds or
> >>>>milliseconds.
> >>>>>I realize that the Linux kernel only uses microseconds for these APIs, but
> >>>>the DPDK API should use nanoseconds.
> >>>>Nanoseconds is more precise, it's good.
> >>>>But DPDK API how use nanoseconds as you said the the Linux kernel only
> >>>>uses microseconds for these APIs.
> >>>>Kernel interface just know an integer value with microseconds unit.
> >>>One solution is to expose nanoseconds in the DPDK API, and in the Linux specific implementation convert from/to microseconds.
> >>If so, we have to modify the implementation interface on Linux. This
> >>change the input/output unit about the interface.
> >>And DPDK also has to do this based on kernel version. It is not good.
> >>The cpuidle governor select which idle state based on the worst-case
> >>latency of idle state.
> >>These the worst-case latency of Cstate reported by ACPI table is in
> >>microseconds as the section 8.4.1.1. _CST (C States) and 8.4.3.3.
> >>_LPI (Low Power Idle States) in ACPI spec [1].
> >>So it is probably not meaning to change this interface implementation.
> >>
> >>For the case need PM QoS in DPDK, I think, it is better to set cpu
> >>latency to zero to prevent service thread from the deeper the idle
> >>state.
> >>>You might also want to add a note to the in-line documentation of the relevant functions that the Linux implementation only uses microsecond resolution.
> >>>
> >>[1] https://uefi.org/specs/ACPI/6.5/08_Processor_Configuration_and_Control.html
> >.

  reply	other threads:[~2024-03-26 16:04 UTC|newest]

Thread overview: 125+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-20 10:55 Huisong Li
2024-03-20 10:55 ` [PATCH 1/2] power: " Huisong Li
2024-03-20 10:55 ` [PATCH 2/2] examples/l3fwd-power: add PM QoS request configuration Huisong Li
2024-03-20 14:05 ` [PATCH 0/2] introduce PM QoS interface Morten Brørup
2024-03-21  3:04   ` lihuisong (C)
2024-03-21 13:30     ` Morten Brørup
2024-03-22  8:54       ` lihuisong (C)
2024-03-22 12:35         ` Morten Brørup
2024-03-26  2:11           ` lihuisong (C)
2024-03-26  8:27             ` Morten Brørup
2024-03-26 12:15               ` lihuisong (C)
2024-03-26 12:46                 ` Morten Brørup
2024-03-29  1:59                   ` lihuisong (C)
2024-03-22 17:55         ` Tyler Retzlaff
2024-03-26  2:20           ` lihuisong (C)
2024-03-26 16:04             ` Tyler Retzlaff [this message]
2024-06-13 11:20 ` [PATCH v2 0/2] power: " Huisong Li
2024-06-13 11:20   ` [PATCH v2 1/2] power: introduce PM QoS API on CPU wide Huisong Li
2024-06-14  8:04     ` Morten Brørup
2024-06-18 12:19       ` lihuisong (C)
2024-06-18 12:53         ` Morten Brørup
2024-06-13 11:20   ` [PATCH v2 2/2] examples/l3fwd-power: add PM QoS configuration Huisong Li
2024-06-19  6:31 ` [PATCH v3 0/2] power: introduce PM QoS interface Huisong Li
2024-06-19  6:31   ` [PATCH v3 1/2] power: introduce PM QoS API on CPU wide Huisong Li
2024-06-19 14:56     ` Stephen Hemminger
2024-06-20  2:22       ` lihuisong (C)
2024-06-19 15:32     ` Thomas Monjalon
2024-06-20  2:32       ` lihuisong (C)
2024-06-19  6:31   ` [PATCH v3 2/2] examples/l3fwd-power: add PM QoS configuration Huisong Li
2024-06-19 14:54     ` Stephen Hemminger
2024-06-20  2:24       ` lihuisong (C)
2024-06-19  6:59   ` [PATCH v3 0/2] power: introduce PM QoS interface Morten Brørup
2024-06-27  6:00 ` [PATCH v4 " Huisong Li
2024-06-27  6:00   ` [PATCH v4 1/2] power: introduce PM QoS API on CPU wide Huisong Li
2024-06-27 15:06     ` Stephen Hemminger
2024-06-28  4:07       ` lihuisong (C)
2024-06-27  6:00   ` [PATCH v4 2/2] examples/l3fwd-power: add PM QoS configuration Huisong Li
2024-07-02  3:50 ` [PATCH v5 0/2] power: introduce PM QoS interface Huisong Li
2024-07-02  3:50   ` [PATCH v5 1/2] power: introduce PM QoS API on CPU wide Huisong Li
2024-07-03  1:32     ` zhoumin
2024-07-03  2:52       ` lihuisong (C)
2024-07-02  3:50   ` [PATCH v5 2/2] examples/l3fwd-power: add PM QoS configuration Huisong Li
2024-07-09  2:29 ` [PATCH v6 0/2] power: introduce PM QoS interface Huisong Li
2024-07-09  2:29   ` [PATCH v6 1/2] power: introduce PM QoS API on CPU wide Huisong Li
2024-07-09  2:29   ` [PATCH v6 2/2] examples/l3fwd-power: add PM QoS configuration Huisong Li
2024-07-09  3:07     ` Stephen Hemminger
2024-07-09  3:18       ` lihuisong (C)
2024-07-09  6:31 ` [PATCH v7 0/2] power: introduce PM QoS interface Huisong Li
2024-07-09  6:31   ` [PATCH v7 1/2] power: introduce PM QoS API on CPU wide Huisong Li
2024-07-09  6:31   ` [PATCH v7 2/2] examples/l3fwd-power: add PM QoS configuration Huisong Li
2024-07-09  7:25 ` [PATCH v8 0/2] power: introduce PM QoS interface Huisong Li
2024-07-09  7:25   ` [PATCH v8 1/2] power: introduce PM QoS API on CPU wide Huisong Li
2024-07-09  7:25   ` [PATCH v8 2/2] examples/l3fwd-power: add PM QoS configuration Huisong Li
2024-08-09  9:50 ` [PATCH v9 0/2] power: introduce PM QoS interface Huisong Li
2024-08-09  9:50   ` [PATCH v9 1/2] power: introduce PM QoS API on CPU wide Huisong Li
2024-09-10  2:00     ` fengchengwen
2024-09-10  9:32       ` lihuisong (C)
2024-09-12  1:14         ` fengchengwen
2024-08-09  9:50   ` [PATCH v9 2/2] examples/l3fwd-power: add PM QoS configuration Huisong Li
2024-09-10  2:26     ` fengchengwen
2024-09-10 12:07       ` lihuisong (C)
2024-09-12  1:15         ` fengchengwen
2024-09-12  2:38 ` [PATCH v10 0/2] power: introduce PM QoS interface Huisong Li
2024-09-12  2:38   ` [PATCH v10 1/2] power: introduce PM QoS API on CPU wide Huisong Li
2024-10-13  1:10     ` Stephen Hemminger
2024-10-14 12:19       ` lihuisong (C)
2024-10-15  9:41         ` lihuisong (C)
2024-10-15 15:45           ` Stephen Hemminger
2024-10-17  2:11             ` lihuisong (C)
2024-10-17  3:20               ` Stephen Hemminger
2024-10-17  8:37                 ` lihuisong (C)
2024-10-22  3:10             ` lihuisong (C)
2024-10-14  8:29     ` Konstantin Ananyev
2024-10-15  7:47       ` lihuisong (C)
2024-09-12  2:38   ` [PATCH v10 2/2] examples/l3fwd-power: add PM QoS configuration Huisong Li
2024-10-14  8:24     ` Konstantin Ananyev
2024-10-14  8:46       ` Konstantin Ananyev
2024-10-15  7:32       ` lihuisong (C)
2024-10-16  0:24         ` Konstantin Ananyev
2024-10-17  2:25           ` lihuisong (C)
2024-10-17 11:14             ` Konstantin Ananyev
2024-09-12  3:07   ` [PATCH v10 0/2] power: introduce PM QoS interface fengchengwen
2024-10-12  2:07     ` lihuisong (C)
2024-10-14 15:27   ` Stephen Hemminger
2024-10-15  9:30     ` lihuisong (C)
2024-10-21 11:42 ` [PATCH v11 " Huisong Li
2024-10-21 11:42   ` [PATCH v11 1/2] power: introduce PM QoS API on CPU wide Huisong Li
2024-10-22  9:08     ` Konstantin Ananyev
2024-10-22  9:41       ` lihuisong (C)
2024-10-21 11:42   ` [PATCH v11 2/2] examples/l3fwd-power: add PM QoS configuration Huisong Li
2024-10-22  9:10     ` Konstantin Ananyev
2024-10-22  9:44       ` lihuisong (C)
2024-10-22 12:15         ` Konstantin Ananyev
2024-10-23  6:27       ` lihuisong (C)
2024-10-23  4:09 ` [PATCH v12 0/3] power: introduce PM QoS interface Huisong Li
2024-10-23  4:09   ` [PATCH v12 1/3] power: introduce PM QoS API on CPU wide Huisong Li
2024-10-23  4:09   ` [PATCH v12 2/3] examples/l3fwd-power: fix data overflow when parse command line Huisong Li
2024-10-24 16:34     ` Konstantin Ananyev
2024-10-23  4:09   ` [PATCH v12 3/3] examples/l3fwd-power: add PM QoS configuration Huisong Li
2024-10-24 16:44     ` Konstantin Ananyev
2024-10-25  3:35       ` lihuisong (C)
2024-10-25  9:18 ` [PATCH v13 0/3] power: introduce PM QoS interface Huisong Li
2024-10-25  9:18   ` [PATCH v13 1/3] power: introduce PM QoS API on CPU wide Huisong Li
2024-10-25 12:08     ` Tummala, Sivaprasad
2024-10-25  9:18   ` [PATCH v13 2/3] examples/l3fwd-power: fix data overflow when parse command line Huisong Li
2024-10-25 11:27     ` fengchengwen
2024-10-29  5:48     ` Tummala, Sivaprasad
2024-10-25  9:18   ` [PATCH v13 3/3] examples/l3fwd-power: add PM QoS configuration Huisong Li
2024-10-29 13:28 ` [PATCH v14 0/3] power: introduce PM QoS interface Huisong Li
2024-10-29 13:28   ` [PATCH v14 1/3] power: introduce PM QoS API on CPU wide Huisong Li
2024-10-29 13:28   ` [PATCH v14 2/3] examples/l3fwd-power: fix data overflow when parse command line Huisong Li
2024-10-29 13:28   ` [PATCH v14 3/3] examples/l3fwd-power: add PM QoS configuration Huisong Li
2024-10-29 13:45     ` Konstantin Ananyev
2024-11-04  9:13   ` [PATCH v14 0/3] power: introduce PM QoS interface lihuisong (C)
2024-11-11  2:25 ` [PATCH v15 " Huisong Li
2024-11-11  2:25   ` [PATCH v15 1/3] power: introduce PM QoS API on CPU wide Huisong Li
2024-11-11 10:18     ` Thomas Monjalon
2024-11-11 12:47       ` lihuisong (C)
2024-11-11  2:25   ` [PATCH v15 2/3] examples/l3fwd-power: fix data overflow when parse command line Huisong Li
2024-11-11  2:25   ` [PATCH v15 3/3] examples/l3fwd-power: add PM QoS configuration Huisong Li
2024-11-11 10:29   ` [PATCH v15 0/3] power: introduce PM QoS interface Thomas Monjalon
2024-11-11  9:14 ` [RESEND PATCH " Huisong Li
2024-11-11  9:14   ` [RESEND PATCH v15 1/3] power: introduce PM QoS API on CPU wide Huisong Li
2024-11-11  9:14   ` [RESEND PATCH v15 2/3] examples/l3fwd-power: fix data overflow when parse command line Huisong Li
2024-11-11  9:14   ` [RESEND PATCH v15 3/3] examples/l3fwd-power: add PM QoS configuration Huisong Li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240326160455.GA20977@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net \
    --to=roretzla@linux.microsoft.com \
    --cc=alan.elder@microsoft.com \
    --cc=anatoly.burakov@intel.com \
    --cc=david.hunt@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@amd.com \
    --cc=lihuisong@huawei.com \
    --cc=liuyonglong@huawei.com \
    --cc=longli@microsoft.com \
    --cc=mb@smartsharesystems.com \
    --cc=sivaprasad.tummala@amd.com \
    --cc=thomas@monjalon.net \
    --cc=weh@microsoft.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).