From: Jarek Poplawski <jarkao2@gmail.com>
To: Patrick McHardy <kaber@trash.net>
Cc: David Miller <davem@davemloft.net>, Martin Devera <devik@cdi.cz>,
netdev@vger.kernel.org
Subject: Re: [PATCH 2/6] pkt_sched: sch_htb: Consider used jiffies in htb_dequeue()
Date: Tue, 9 Dec 2008 11:32:05 +0000 [thread overview]
Message-ID: <20081209113205.GA15353@ff.dom.local> (raw)
In-Reply-To: <493E485C.9090706@trash.net>
On Tue, Dec 09, 2008 at 11:28:44AM +0100, Patrick McHardy wrote:
> Jarek Poplawski wrote:
>> Next event time should consider jiffies used for recounting. Otherwise
>> qdisc_watchdog_schedule() triggers hrtimer immediately with the event
>> in the past, and may cause very high ksoftirqd cpu usage (if highres
>> is on). This patch charges jiffies globally, so we can skip this in
>> htb_do_events().
>>
>> Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
>> ---
>> net/sched/sch_htb.c | 14 ++++++++++++--
>> 1 files changed, 12 insertions(+), 2 deletions(-)
>>
>> diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
>> index d6eb4a7..102866d 100644
>> --- a/net/sched/sch_htb.c
>> +++ b/net/sched/sch_htb.c
>> @@ -685,8 +685,11 @@ static psched_time_t htb_do_events(struct htb_sched *q, int level)
>> if (cl->cmode != HTB_CAN_SEND)
>> htb_add_to_wait_tree(q, cl, diff);
>> }
>> - /* too much load - let's continue on next jiffie (including above) */
>> - return q->now + 2 * PSCHED_TICKS_PER_SEC / HZ;
>> + /*
>> + * Too much load - let's continue on next jiffie.
>> + * (Used jiffies are charged later.)
>> + */
>> + return q->now + 1;
>>
>
> This (including the last patch) is really confusing - q->now doesn't
> contain HZ values but psched ticks. Could you describe the overall
> algorithm you're trying to implement please?
The algorithm is we want to "continue on the next jiffie". We know
we've lost here a lot of time (~2 jiffies), and this will be added
later. Since these jiffies are not precise enough wrt. psched ticks
or ktime, and we will add around 2000 (for HZ 1000) psched ticks
anyway this +1 here simply doesn't matter and can mean "a bit after
q->now".
We can try to do this more precisely with additional psched_get_time(),
instead of jiffies, but my "tests" didn't show any advantage. What
matters is to avoid longer scheduling with the past time.
This case can probably happen only with very low rate limits for a
large number of classes, and I guess they simply need some spare time,
not necessarily at psched tick precision.
Jarek P.
next prev parent reply other threads:[~2008-12-09 11:32 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-09 10:21 [PATCH 2/6] pkt_sched: sch_htb: Consider used jiffies in htb_dequeue() Jarek Poplawski
2008-12-09 10:28 ` Patrick McHardy
2008-12-09 11:32 ` Jarek Poplawski [this message]
2008-12-09 12:25 ` Patrick McHardy
2008-12-09 13:08 ` Jarek Poplawski
2008-12-09 13:20 ` Patrick McHardy
2008-12-09 14:45 ` Jarek Poplawski
2008-12-09 14:56 ` Patrick McHardy
2008-12-10 10:52 ` [PATCH 8/6] " Jarek Poplawski
2009-01-12 10:17 ` [PATCH 8/6 resend] pkt_sched: sch_htb: Break all htb_do_events() after 2 jiffies Jarek Poplawski
2009-01-13 5:54 ` David Miller
2008-12-10 6:35 ` [PATCH 2/6] pkt_sched: sch_htb: Consider used jiffies in htb_dequeue() David Miller
2008-12-10 9:11 ` Jarek Poplawski
2008-12-10 9:14 ` David Miller
2008-12-10 9:35 ` [PATCH 7/6] " Jarek Poplawski
2008-12-10 14:38 ` Patrick McHardy
2008-12-16 23:57 ` David Miller
2008-12-17 7:03 ` Jarek Poplawski
2008-12-17 7:38 ` David Miller
2009-01-12 6:56 ` Patrick McHardy
2009-01-12 10:10 ` Jarek Poplawski
2009-01-12 10:22 ` Patrick McHardy
2009-01-12 11:08 ` Jarek Poplawski
2009-01-12 13:10 ` Patrick McHardy
2009-01-28 12:52 ` [PATCH net-next] pkt_sched: sch_htb: Warn on too many events Jarek Poplawski
2009-01-28 16:18 ` Patrick McHardy
2009-01-30 10:17 ` [PATCH 1/3 v2 " Jarek Poplawski
2009-02-01 9:13 ` David Miller
2009-01-30 10:17 ` [PATCH 2/3 " Jarek Poplawski
2009-02-01 9:13 ` David Miller
2009-01-30 10:17 ` [PATCH 3/3 " Jarek Poplawski
2009-02-01 9:13 ` David Miller
2009-01-28 13:23 ` [PATCH 7/6] Re: [PATCH 2/6] pkt_sched: sch_htb: Consider used jiffies in htb_dequeue() Jarek Poplawski
2009-01-28 16:20 ` Patrick McHardy
2009-01-12 10:29 ` Jarek Poplawski
2009-01-12 10:32 ` David Miller
2009-01-12 10:59 ` Jarek Poplawski
2009-01-12 11:04 ` David Miller
2009-01-12 10:16 ` [PATCH 7/6 resend] pkt_sched: sch_htb: Consider used jiffies in htb_do_events() Jarek Poplawski
2009-01-13 5:54 ` David Miller
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=20081209113205.GA15353@ff.dom.local \
--to=jarkao2@gmail.com \
--cc=davem@davemloft.net \
--cc=devik@cdi.cz \
--cc=kaber@trash.net \
--cc=netdev@vger.kernel.org \
/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).