From: kuznet@ms2.inr.ac.ru
To: mingo@elte.hu
Cc: torvalds@transmeta.com, linux-kernel@vger.kernel.org,
alan@lxorguk.ukuu.org.uk, bcrl@redhat.com, andrea@suse.de
Subject: Re: [patch] softirq performance fixes, cleanups, 2.4.10.
Date: Fri, 28 Sep 2001 23:23:49 +0400 (MSK DST) [thread overview]
Message-ID: <200109281923.XAA05208@ms2.inr.ac.ru> (raw)
In-Reply-To: <Pine.LNX.4.33.0109281956200.9978-100000@localhost.localdomain> from "Ingo Molnar" at Sep 28, 1 08:28:59 pm
Hello!
> this problem has not been solved. hardirqs have properties unlike to
> softirqs that make it harder to overload them.
What properties do you mean? I see the only property, they are "hard",
and hence they should be harder to tame. :-) :-)
[ No matter. It is out of topic, but it were you who said about this.
Did you ever hear about "interrupt mitigation", "hw flowcontrol",
"polling" eventually? All the schemes work.
]
> they are *not*. The old code deliberately ignores newly pending softirqs.
I tell you that net_rx_action() already LOOPs so much that it is silly
to loop even more. You multiplied an infinity with 10 and dare to state
that this infinity became larger. I am sorry, it is not.
> net_rx_action is 'small' in code, but not small in terms of cachemisses
> and other, unavoidable overhead. It goes over device-side skbs which can
> and will take several microseconds per packet.
Big news for me. :-) And how is it related to the issue?
> > If this logic is wrong, you should explain why it is wrong. Looping
> > dozen of times may look like cure, but for me it still looks rather
> > like steroids.
>
> the fundamental issue here that makes looping inevitable is the following
> one. (not that looping itself is anything bad.) We enable hardirqs during
> the processing of softirqs. We also guarantee exclusivity of softirq
> processing. We also have multiple 'queues of work'. Ie. if a hardirq adds
> some new work while we were off doing other work, then we have no choice
> but look at this other work as well. Ie. we have to loop. q.e.d.
If irq adds new work it is processed immedately without any new hacks.
Look into net_rx_action().
> - do not use split softirqs, use one global (but per-cpu) 'work to be
> done' queue, that lists multiple things. The downside: no 'priority'
> between softirqs.
>
> (sidenote: i do think that priority of softirqs is overdesign
Where did you find priority there? As soon as you see something is enumerated,
it still does not mean that low numbers have some priority.
Argh... I see, what you mean. It is not priority, it is bug introduced
in 2.4.7. (By you? :-)) It was not present before, all the softirq
were processed each round.
Well, just restore old net_rx_action() from 2.4.6.
OK, now I understand your point. You mean that net_rx_action()
is not started immediately, when irq arrives while net_tx_action()
or a timer or something is running. Yes, it is really bad.
But it still does not allow you to restart net_rx_action() 10 times in row.
> unless you have strong arguments against this approach, i will start
> coding this.
I am sorry, I do not find anything new in this approach.
Seems, all that you propose is to replace single bit in single word
to some struct. It will take sense when we have more than one real
softirq. :-)
> queued. This has to be embedded into skbs and bh-handling structs. What do
> you think?
I think that you should change subject to discuss this. :-)
It is not related to the problem.
Alexey
next prev parent reply other threads:[~2001-09-28 19:23 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-09-26 16:44 Ingo Molnar
2001-09-26 17:48 ` Mike Kravetz
2001-09-26 18:48 ` Ingo Molnar
2001-09-26 18:55 ` Russell King
2001-09-26 19:14 ` Ingo Molnar
2001-09-27 23:31 ` Andrea Arcangeli
2001-09-28 3:20 ` Andrea Arcangeli
2001-09-28 7:34 ` Ingo Molnar
2001-09-28 15:17 ` Andrea Arcangeli
2001-09-28 7:18 ` [patch] softirq-2.4.10-B2 Ingo Molnar
2001-09-28 15:58 ` Andrea Arcangeli
2001-09-28 18:36 ` Simon Kirby
2001-09-28 18:47 ` Ingo Molnar
2001-09-28 19:31 ` kuznet
2001-09-28 16:18 ` [patch] softirq performance fixes, cleanups, 2.4.10 kuznet
2001-09-28 16:31 ` Ingo Molnar
2001-09-28 17:04 ` kuznet
2001-09-28 17:21 ` Rik van Riel
2001-09-28 17:31 ` Andrea Arcangeli
2001-09-28 17:41 ` kuznet
2001-09-28 17:46 ` Ingo Molnar
2001-09-28 18:39 ` Josh MacDonald
2001-09-28 17:31 ` Ingo Molnar
2001-09-28 17:56 ` kuznet
2001-09-28 18:28 ` Ingo Molnar
2001-09-28 19:23 ` kuznet [this message]
2001-09-28 19:48 ` Ingo Molnar
2001-09-29 16:35 ` kuznet
2001-09-30 9:37 ` Kai Henningsen
2001-09-30 9:01 ` Ingo Molnar
2001-09-28 19:39 ` kuznet
2001-09-28 20:03 ` Ingo Molnar
2001-09-28 18:51 ` Benjamin LaHaise
2001-09-28 16:32 ` Andrea Arcangeli
2001-09-28 16:46 ` Ingo Molnar
2001-09-28 16:58 ` Andrea Arcangeli
2001-09-28 16:35 ` [patch] softirq-2.4.10-B3 Ingo Molnar
2001-09-29 0:40 ` J . A . Magallon
2001-09-29 11:03 ` [patch] softirq performance fixes, cleanups, 2.4.10 Rusty Russell
2001-09-27 23:29 Oleg Nesterov
2001-09-28 0:03 ` Andrea Arcangeli
2001-09-28 6:57 ` Ingo Molnar
2001-09-28 2:50 Oleg Nesterov
2001-09-28 7:56 ` Ingo Molnar
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=200109281923.XAA05208@ms2.inr.ac.ru \
--to=kuznet@ms2.inr.ac.ru \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=andrea@suse.de \
--cc=bcrl@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=torvalds@transmeta.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
all inboxes | Powered by JetHome®