From: "Morten Brørup" <mb@smartsharesystems.com>
To: "lihuisong (C)" <lihuisong@huawei.com>, <dev@dpdk.org>
Cc: <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 13:46:14 +0100 [thread overview]
Message-ID: <98CBD80474FA8B44BF855DF32C47DC35E9F336@smartserver.smartshare.dk> (raw)
In-Reply-To: <1e227884-348c-25eb-24c5-8ce19137173d@huawei.com>
> From: lihuisong (C) [mailto:lihuisong@huawei.com]
> Sent: Tuesday, 26 March 2024 13.15
>
> 在 2024/3/26 16:27, Morten Brørup 写道:
> >> From: lihuisong (C) [mailto:lihuisong@huawei.com]
> >> Sent: Tuesday, 26 March 2024 03.12
> >>
> >> 在 2024/3/22 20:35, Morten Brørup 写道:
> >>>> From: lihuisong (C) [mailto:lihuisong@huawei.com]
> >>>> Sent: Friday, 22 March 2024 09.54
> > [...]
> >
> >>>> 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.
> >>> It would defeat the purpose (i.e. not saving sufficient amounts of
> >> power) if the CPU cannot enter a deeper idle state.
> >> Yes, it is not good for power.
> >> AFAIS, PM QoS is just to decrease the influence for performance.
> >> Anyway, if we set to zero, system can be into Cstates-0 at least.
> >>> Personally, I would think a wake-up latency of up to 10 microseconds
> >> should be fine for must purposes.
> >>> Default Linux timerslack is 50 microseconds, so you could also use
> >> that value.
> >> How much CPU latency is ok. Maybe, we can give the decision to the
> >> application.
> > Yes, the application should decide the acceptable worst-case latency.
> >
> >> Linux will collect all these QoS request and use the minimum latency.
> >> what do you think, Morten?
> > For the example application, you could use a value of 50 microseconds
> and refer to this value also being the default timerslack in Linux.
> There is a description for "/proc/<pid>/timerslack_ns" in Linux document
> [1]
> "
> This file provides the value of the task’s timerslack value in
> nanoseconds.
> This value specifies an amount of time that normal timers may be
> deferred in order to coalesce timers and avoid unnecessary wakeups.
> This allows a task’s interactivity vs power consumption tradeoff to be
> adjusted.
> "
> I cannot understand what the relationship is between the timerslack in
> Linux and cpu latency to wake up.
> It seems that timerslack is just to defer the timer in order to coalesce
> timers and avoid unnecessary wakeups.
> And it has not a lot to do with the CPU latency which is aimed to avoid
> task to enter deeper idle state and satify application request.
Correct. They control two different things.
However, both can cause latency for the application, so my rationale for the relationship was:
If the application accepts X us of latency caused by kernel scheduling delays (caused by timerslack), the application should accept the same amount of latency caused by CPU wake-up latency.
This also means that if you want lower latency than 50 us, you should not only set cpu wake-up latency, you should also set timerslack.
Obviously, if the application is only affected by one of the two, the application only needs to adjust that one of them.
As for the 50 us value, someone in the Linux kernel team decided that 50 us was an acceptable amount of latency for the kernel; we could use the same value, referring to that. Or we could choose some other value, and describe how we came up with our own value. And if necessary, also adjust timerslack accordingly.
next prev parent reply other threads:[~2024-03-26 12:46 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 [this message]
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
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=98CBD80474FA8B44BF855DF32C47DC35E9F336@smartserver.smartshare.dk \
--to=mb@smartsharesystems.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=sivaprasad.tummala@amd.com \
--cc=thomas@monjalon.net \
/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).