LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* UDP packets scheduling
@ 2007-03-20 0:52 Lukas Hejtmanek
2007-03-20 2:37 ` David Schwartz
2007-03-20 17:52 ` Andi Kleen
0 siblings, 2 replies; 7+ messages in thread
From: Lukas Hejtmanek @ 2007-03-20 0:52 UTC (permalink / raw)
To: linux-kernel
Hello,
can anyone suggest me a proper way how to schedule UDP packets to transmit at
some given rate?
E.g., I have two boxes both having 10 GE interfaces. One box is able to
transmit at 9.9Gbps, the other one is able to receive only at about 5.5Gbps.
Flow control must be turned off for some other reason.
How can I put delay between subsequent msg sends to achieve desired
packet rate without loses, e.g., 3.5Gbps without bursts? Even nanosleep()
with the lowest possible delay seems to be too much delay. Busy loop with
clock_gettime(3) works OK on SMP boxes, but on UP it causes problems.
--
Lukáš Hejtmánek
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: UDP packets scheduling
2007-03-20 0:52 UDP packets scheduling Lukas Hejtmanek
@ 2007-03-20 2:37 ` David Schwartz
2007-03-20 9:38 ` Re: ex-upload Lukas Hejtmanek
2007-03-20 16:31 ` UDP packets scheduling Stephen Hemminger
2007-03-20 17:52 ` Andi Kleen
1 sibling, 2 replies; 7+ messages in thread
From: David Schwartz @ 2007-03-20 2:37 UTC (permalink / raw)
To: linux-kernel
> can anyone suggest me a proper way how to schedule UDP packets to
> transmit at
> some given rate?
>
> E.g., I have two boxes both having 10 GE interfaces. One box is able to
> transmit at 9.9Gbps, the other one is able to receive only at
> about 5.5Gbps.
> Flow control must be turned off for some other reason.
UDP is not a very good choice of protocol for this purpose. UDP pushes the
transmit timing job into user-space, where it cannot be done particularly
well.
> How can I put delay between subsequent msg sends to achieve desired
> packet rate without loses, e.g., 3.5Gbps without bursts? Even nanosleep()
> with the lowest possible delay seems to be too much delay. Busy loop with
> clock_gettime(3) works OK on SMP boxes, but on UP it causes problems.
Why do you want to avoid bursts? You're going to be bursting between 10Gb/s
and 0 anyway.
It sounds like you're deliberately putting impossible requirements on
yourself choosing the worst possible protocol and demanding the pacing be
perfect. I don't think the technology to do that is here yet, but why would
you possibly need it?
10GE cards tend to have large buffers precisely because it's not possible to
get the timing even. Why is burstiness a problem?
DS
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Re: ex-upload
2007-03-20 2:37 ` David Schwartz
@ 2007-03-20 9:38 ` Lukas Hejtmanek
2007-03-20 16:31 ` UDP packets scheduling Stephen Hemminger
1 sibling, 0 replies; 7+ messages in thread
From: Lukas Hejtmanek @ 2007-03-20 9:38 UTC (permalink / raw)
To: David Schwartz; +Cc: linux-kernel
Hello,
>> How can I put delay between subsequent msg sends to achieve desired
>> packet rate without loses, e.g., 3.5Gbps without bursts? Even nanosleep()
>> with the lowest possible delay seems to be too much delay. Busy loop with
>> clock_gettime(3) works OK on SMP boxes, but on UP it causes problems.
>
> Why do you want to avoid bursts? You're going to be bursting between 10Gb/s
> and 0 anyway.
It is because bursts above 5.5Gbps cannot be received by the peer. The peer is
only able to receive bursts up to 5.5Gbps whereas the sender is able to burst
up to 9.9Gbps.
> It sounds like you're deliberately putting impossible requirements on
> yourself choosing the worst possible protocol and demanding the pacing be
> perfect. I don't think the technology to do that is here yet, but why would
> you possibly need it?
it is video transmission encapsulated in RTP over UDP. I do not know whether
there are any other possibilities that would work also on Mac OS or FreeBSD.
(Please Cc me)
--
Lukáš Hejtmánek
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: UDP packets scheduling
2007-03-20 2:37 ` David Schwartz
2007-03-20 9:38 ` Re: ex-upload Lukas Hejtmanek
@ 2007-03-20 16:31 ` Stephen Hemminger
2007-03-20 16:42 ` Jan Engelhardt
1 sibling, 1 reply; 7+ messages in thread
From: Stephen Hemminger @ 2007-03-20 16:31 UTC (permalink / raw)
To: linux-kernel
On Mon, 19 Mar 2007 19:37:58 -0700
"David Schwartz" <davids@webmaster.com> wrote:
>
> > can anyone suggest me a proper way how to schedule UDP packets to
> > transmit at
> > some given rate?
> >
> > E.g., I have two boxes both having 10 GE interfaces. One box is able to
> > transmit at 9.9Gbps, the other one is able to receive only at
> > about 5.5Gbps.
> > Flow control must be turned off for some other reason.
"Those who do not understand TCP are condemned to reinvent it, poorly."
--
Stephen Hemminger <shemminger@linux-foundation.org>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: UDP packets scheduling
2007-03-20 16:31 ` UDP packets scheduling Stephen Hemminger
@ 2007-03-20 16:42 ` Jan Engelhardt
0 siblings, 0 replies; 7+ messages in thread
From: Jan Engelhardt @ 2007-03-20 16:42 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: linux-kernel
On Mar 20 2007 09:31, Stephen Hemminger wrote:
>> > can anyone suggest me a proper way how to schedule UDP packets to
>> > transmit at
>> > some given rate?
>> >
>> > E.g., I have two boxes both having 10 GE interfaces. One box is able to
>> > transmit at 9.9Gbps, the other one is able to receive only at
>> > about 5.5Gbps.
>> > Flow control must be turned off for some other reason.
>
> "Those who do not understand TCP are condemned to reinvent it, poorly."
So perhaps, might want to use SCTP?
Jan
--
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: UDP packets scheduling
2007-03-20 17:52 ` Andi Kleen
@ 2007-03-20 17:21 ` Lukas Hejtmanek
0 siblings, 0 replies; 7+ messages in thread
From: Lukas Hejtmanek @ 2007-03-20 17:21 UTC (permalink / raw)
To: Andi Kleen; +Cc: linux-kernel
On Tue, Mar 20, 2007 at 06:52:51PM +0100, Andi Kleen wrote:
> > Flow control must be turned off for some other reason.
>
> That's your fundamental problem. Fix that.
>
> Even if you get the rate right there can be many reasons why timing
> gets disrupted temporarily and to recover from any of this you need
> working flow control.
How do you want to enable wire/fibre flow control, e.g., from Europe to USA?
You are not guaranteed any hardware based flow control.
And as of software flow control, you need precise timing of UDP packets to
keep desired packet rate. How to do it at speeds about 5.5Gbps, that is my
question.
--
Lukáš Hejtmánek
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: UDP packets scheduling
2007-03-20 0:52 UDP packets scheduling Lukas Hejtmanek
2007-03-20 2:37 ` David Schwartz
@ 2007-03-20 17:52 ` Andi Kleen
2007-03-20 17:21 ` Lukas Hejtmanek
1 sibling, 1 reply; 7+ messages in thread
From: Andi Kleen @ 2007-03-20 17:52 UTC (permalink / raw)
To: Lukas Hejtmanek; +Cc: linux-kernel
Lukas Hejtmanek <xhejtman@mail.muni.cz> writes:
> Flow control must be turned off for some other reason.
That's your fundamental problem. Fix that.
Even if you get the rate right there can be many reasons why timing
gets disrupted temporarily and to recover from any of this you need
working flow control.
-Andi
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-03-20 17:19 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-03-20 0:52 UDP packets scheduling Lukas Hejtmanek
2007-03-20 2:37 ` David Schwartz
2007-03-20 9:38 ` Re: ex-upload Lukas Hejtmanek
2007-03-20 16:31 ` UDP packets scheduling Stephen Hemminger
2007-03-20 16:42 ` Jan Engelhardt
2007-03-20 17:52 ` Andi Kleen
2007-03-20 17:21 ` Lukas Hejtmanek
[not found] <20070318015323.GH12382@kraken.fi.muni.cz>
[not found] ` <20070319135100.GH22880@mail.muni.cz>
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).