linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Davide Libenzi <davidel@xmailserver.org>
To: Daniel Phillips <phillips@arcor.de>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: 2.5.74-mm1
Date: Mon, 7 Jul 2003 15:03:42 -0700 (PDT)	[thread overview]
Message-ID: <Pine.LNX.4.55.0307071202450.4704@bigblue.dev.mcafeelabs.com> (raw)
In-Reply-To: <200307072107.09855.phillips@arcor.de>

[ trimmed cc ]

On Mon, 7 Jul 2003, Daniel Phillips wrote:

> > I'm just trying to figure out why :
> >
> > 1) RealPlayer does not skip on my 2.4.20
>                                     ^^^^^^
> We're talking about 2.5.

This is exactly my point. It seems that all I'm earing here is that the OS
cannot do the right thing alone. I'm asking you why other apps/OS/kernels
can make it work just fine ? And I am not running RealPlay as superuser.



> Partly.  We've been through that in pretty good detail.  There are
> combinations of hardware and kernel versions that happen to be pretty good at
> running sound, that doesn't mean the problem is dealt with so that corner
> cases don't come up.  A 99% solution is not good enough, that still will
> leave 10,000's of Linux users with poor sound performance.
>
> Zinf does things correctly: it has a big buffer and it tries to set an
> elevated priority for its sound servicing thread.  With 2.5, that isn't
> enough, and Con's tweaking isn't enough.  And that's not wrong, because the
> kernel *should not* try to identify realtime threads automagically.

If a big buffer is for example 32kb, this will give you about 350ms of
sustainable CPU blackout. That is pretty much difficult to hit. Having a
blackout of more than 300-400ms means that either the load is not
realistic or that the timeslice policy has to be tuned. Has anyone tried
to lower the maximum timeslice and to assign it in an exponential fashion ?
Example, maximum timeslice = 100-120ms with :

  ts
    ^
120 |                            .
    |                           .
    |                          .
    |                         .
    |                        .
    |                      .
    |                    .
    |                .
    |           .
 10 | .  .
    |
    ------------------------------------->
      |min                    max|        prio

In a scheduling model that is timeslice driven, two factors influence the
maximum CPU blackout time. One is the number of TASK_RUNNING tasks and the
other one is the timeslice avg length. Interactivity is ruled by the
ratio between the lo-priority timeslice and the hi-priority one. If we
lower the maximum timeslice and we assign it in an exponential way, we can
lower the avg timeslice by keeping "almost" intact the ratio (interactivity).
In this way you basically maintain timeslice ratios (interactivity) while
lowering the cycle time it takes to the scheduler to exhaust the active
array. And this time is basically our maximum blackout time.



> Zinf could go further and try to set a posix realtime scheduling mode, but
> that attempt would be blocked by the root requirement for realtime
> scheduling, which is ihmo due to braindamage in the definition of the posix
> realtime scheduling modes.  This last we *can* fix in the kernel, by creating
> a new realtime scheduling mode that is sane enough to be used by normal
> users.  Then sound applications would need to be changed to use it, which
> really is no big deal.

Again, while I see one application that survives skips, this makes me
think that other apps do not have the correct timing code.



> > Try to play with SNDCTL_DSP_SETFRAGMENT. Last time I checked the kernel
> > let you set a dma buf for 0.5 up to 1 sec of play (upper limited by 64Kb).
> > Feeding the sound card with 4Kb writes will make you skip after about 50ms
> > CPU blackout at 44KHz 16 bit. RealPlayer uses 16Kb feeding chunks that
> > makes it able to sustain up to 200ms of blackout.
>
> That's just fiddling, it doesn't deal with the basic problem.  Anyway, big
> buffers have their own annoyances.  Have you tried the graphic equalizer in
> xmms lately?  A one second lag on slider adjustment is not nice.

That's not fiddling. It is tuning your app so that it won't require
realtime when it is not needed. This is design in my books.



- Davide


  reply	other threads:[~2003-07-07 21:56 UTC|newest]

Thread overview: 147+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-03  9:37 2.5.74-mm1 Andrew Morton
2003-07-03 10:37 ` 2.5.74-mm1 Wiktor Wodecki
2003-07-03 11:06   ` 2.5.74-mm1 Russell King
2003-07-03 14:15     ` 2.5.74-mm1 Russell King
2003-07-03 16:05       ` 2.5.74-mm1 Patrick Mochel
2003-07-03 16:19         ` 2.5.74-mm1 Russell King
2003-07-03 16:24           ` 2.5.74-mm1 Patrick Mochel
2003-07-03 16:47       ` 2.5.74-mm1 Wiktor Wodecki
2003-07-03 18:43       ` 2.5.74-mm1 Serge Eric Thiam
2003-07-03 21:49       ` 2.5.74-mm1 Wiktor Wodecki
2003-07-03 21:53         ` 2.5.74-mm1 Russell King
2003-07-03 22:12           ` 2.5.74-mm1 Patrick Mochel
2003-07-03 22:14         ` 2.5.74-mm1 Russell King
2003-07-04  8:00           ` 2.5.74-mm1 Wiktor Wodecki
2003-07-03 11:27   ` pcmcia problem [was: Re: 2.5.74-mm1] Wiktor Wodecki
2003-07-03 10:45 ` 2.5.74-mm1 (p4-clockmod does not compile) Dumitru Ciobarcianu
2003-07-03 11:07   ` William Lee Irwin III
2003-07-03 11:17     ` Dumitru Ciobarcianu
2003-07-03 11:20       ` William Lee Irwin III
2003-07-03 11:32         ` 2.5.74-mm1 (p4-clockmod does not compile) PATCH Dumitru Ciobarcianu
2003-07-07  5:24         ` 2.5.74-mm1 (p4-clockmod does not compile) Zwane Mwaikambo
2003-07-07  5:47           ` William Lee Irwin III
2003-07-03 13:15 ` o1-interactivity.patch (was Re: 2.5.74-mm1) Sean Neakums
2003-07-03 13:30   ` Con Kolivas
2003-07-03 16:02 ` 2.5.74-mm1 Felipe Alfaro Solana
2003-07-03 18:11 ` 2.5.74-mm1 Pasi Savolainen
2003-07-03 20:25 ` 2.5.74-mm1 William Lee Irwin III
2003-07-03 20:48   ` 2.5.74-mm1 William Lee Irwin III
2003-07-04  8:55 ` 2.5.74-mm1 fails to boot due to APIC trouble, 2.5.73mm3 works Helge Hafting
2003-07-04  8:53   ` William Lee Irwin III
2003-07-04  9:35   ` William Lee Irwin III
2003-07-04  9:50     ` William Lee Irwin III
2003-07-04 10:02       ` William Lee Irwin III
2003-07-04 10:07         ` William Lee Irwin III
2003-07-04 11:12           ` Helge Hafting
2003-07-04 11:10             ` William Lee Irwin III
2003-07-04 12:50             ` Vincent Hanquez
2003-07-04 15:41       ` Martin J. Bligh
2003-07-04 15:47         ` Zwane Mwaikambo
2003-07-04 16:18           ` Martin J. Bligh
2003-07-04 16:16             ` Zwane Mwaikambo
2003-07-04 18:31             ` William Lee Irwin III
2003-07-04 19:20               ` Martin J. Bligh
2003-07-04 19:31                 ` William Lee Irwin III
2003-07-04 19:53                   ` Martin J. Bligh
2003-07-04 20:17                     ` William Lee Irwin III
2003-07-04 18:32             ` William Lee Irwin III
2003-07-04 18:36             ` William Lee Irwin III
2003-07-04 18:29           ` William Lee Irwin III
2003-07-04 18:26         ` William Lee Irwin III
2003-07-04 19:38           ` Martin J. Bligh
2003-07-04 20:07             ` William Lee Irwin III
2003-07-04 20:37               ` Martin J. Bligh
2003-07-04 21:07 ` 2.5.74-mm1 William Lee Irwin III
2003-07-05  1:15   ` 2.5.74-mm1 Andrew Morton
2003-07-05  5:21     ` 2.5.74-mm1 Anton Blanchard
2003-07-05 11:18       ` 2.5.74-mm1 William Lee Irwin III
2003-07-05 11:46         ` 2.5.74-mm1 William Lee Irwin III
2003-07-05 10:44     ` 2.5.74-mm1 William Lee Irwin III
2003-07-05 18:43       ` 2.5.74-mm1 Andrew Morton
2003-07-05 21:17         ` 2.5.74-mm1 William Lee Irwin III
2003-07-05 21:27           ` 2.5.74-mm1 Andrew Morton
2003-07-05 22:03             ` 2.5.74-mm1 William Lee Irwin III
2003-07-05  0:16 ` 2.5.74-mm1 Daniel Phillips
2003-07-05 15:28   ` 2.5.74-mm1 Daniel Phillips
2003-07-05 16:01     ` 2.5.74-mm1 Con Kolivas
2003-07-05 17:47       ` 2.5.74-mm1 Daniel Phillips
2003-07-06  3:41         ` 2.5.74-mm1 Con Kolivas
2003-07-06 18:50           ` 2.5.74-mm1 Daniel Phillips
2003-07-05 19:14     ` 2.5.74-mm1 Andrew Morton
2003-07-05 21:09       ` 2.5.74-mm1 Daniel Phillips
2003-07-05 21:44         ` 2.5.74-mm1 Jamie Lokier
2003-07-05 22:10           ` 2.5.74-mm1 Daniel Phillips
2003-07-06  1:28             ` 2.5.74-mm1 Jamie Lokier
2003-07-06  2:14               ` 2.5.74-mm1 Daniel Phillips
2003-07-06  2:21                 ` 2.5.74-mm1 Davide Libenzi
2003-07-06 13:54                   ` 2.5.74-mm1 Daniel Phillips
2003-07-07 10:00                 ` 2.5.74-mm1 Mel Gorman
2003-07-07 12:24                   ` 2.5.74-mm1 Daniel Phillips
2003-07-07 13:09                     ` 2.5.74-mm1 Alex Riesen
2003-07-07 14:33                       ` 2.5.74-mm1 Daniel Phillips
2003-07-07 14:34                         ` 2.5.74-mm1 Alex Riesen
2003-07-07 13:16                     ` 2.5.74-mm1 Mel Gorman
2003-07-07 14:47                       ` 2.5.74-mm1 Davide Libenzi
2003-07-07 15:23                         ` 2.5.74-mm1 Jamie Lokier
2003-07-07 17:25                           ` 2.5.74-mm1 Davide Libenzi
2003-07-07 17:55                             ` 2.5.74-mm1 Daniel Phillips
2003-07-07 18:36                               ` 2.5.74-mm1 Davide Libenzi
2003-07-07 19:07                                 ` 2.5.74-mm1 Daniel Phillips
2003-07-07 22:03                                   ` Davide Libenzi [this message]
2003-07-08  0:13                                     ` 2.5.74-mm1 Daniel Phillips
2003-07-08  0:29                                       ` 2.5.74-mm1 Davide Libenzi
2003-07-08  1:07                                         ` 2.5.74-mm1 Daniel Phillips
2003-07-08  7:48                                           ` 2.5.74-mm1 Davide Libenzi
2003-07-08  9:18                                             ` 2.5.74-mm1 Nick Piggin
2003-07-08 15:24                                               ` 2.5.74-mm1 Davide Libenzi
2003-07-09  0:36                                                 ` 2.5.74-mm1 Nick Piggin
2003-07-08 11:09                                             ` 2.5.74-mm1 Daniel Phillips
2003-07-08 18:19                                               ` 2.5.74-mm1 Davide Libenzi
2003-07-08 19:12                                                 ` 2.5.74-mm1 Davide Libenzi
2003-07-07 19:39                                 ` 2.5.74-mm1 Jamie Lokier
2003-07-07 19:36                             ` 2.5.74-mm1 Jamie Lokier
2003-07-09 22:17                               ` 2.5.74-mm1 Daniel Phillips
2003-07-09 22:24                                 ` 2.5.74-mm1 Jamie Lokier
2003-07-09 22:29                                   ` 2.5.74-mm1 Davide Libenzi
2003-07-09 23:15                                     ` 2.5.74-mm1 Daniel Phillips
2003-07-09 23:19                                       ` 2.5.74-mm1 Jamie Lokier
2003-07-09 22:59                                   ` 2.5.74-mm1 Daniel Phillips
2003-07-10  2:01                                     ` 2.5.74-mm1 Peter Chubb
2003-07-11  1:04                                       ` 2.5.74-mm1 Daniel Phillips
2003-07-11  1:08                                         ` 2.5.74-mm1 William Lee Irwin III
2003-07-11  5:44                                         ` 2.5.74-mm1 Davide Libenzi
2003-07-11  8:07                                           ` 2.5.74-mm1 Daniel Phillips
2003-07-07 15:28                         ` 2.5.74-mm1 Daniel Phillips
2003-07-07 17:58                           ` 2.5.74-mm1 Davide Libenzi
     [not found]                     ` <Pine.LNX.4.55.0307070745250.4428@bigblue.dev.mcafeelabs.co m>
2003-07-07 17:15                       ` 2.5.74-mm1 Mike Galbraith
2003-07-05 22:11         ` 2.5.74-mm1 Diego Calleja García
2003-07-05 23:31           ` 2.5.74-mm1 Daniel Phillips
2003-07-06  0:23             ` 2.5.74-mm1 Diego Calleja García
2003-07-06 22:59               ` 2.5.74-mm1 Jamie Lokier
2003-07-06  2:29           ` 2.5.74-mm1 Davide Libenzi
2003-07-06  0:10       ` 2.5.74-mm1 Daniel Phillips
2003-07-06  0:10         ` 2.5.74-mm1 Davide Libenzi
2003-07-05 19:40     ` 2.5.74-mm1 Diego Calleja García
2003-07-05 19:48       ` 2.5.74-mm1 Davide Libenzi
2003-07-05 21:22       ` 2.5.74-mm1 Daniel Phillips
2003-07-07 13:38 ` OOPS: 2.5.74-mm2 Maciej Soltysiak
2003-07-03 10:39 2.5.74-mm1 Boszormenyi Zoltan
2003-07-03 13:09 ` 2.5.74-mm1 Boszormenyi Zoltan
2003-07-03 19:22   ` 2.5.74-mm1 Andrew Morton
2003-07-03 20:08     ` 2.5.74-mm1 Helge Hafting
2003-07-03 21:15       ` 2.5.74-mm1 Andrew Morton
2003-07-04  5:53         ` 2.5.74-mm1 William Lee Irwin III
2003-07-04  7:12           ` 2.5.74-mm1 Boszormenyi Zoltan
2003-07-04  7:16             ` 2.5.74-mm1 Zwane Mwaikambo
2003-07-04  7:15           ` 2.5.74-mm1 Zwane Mwaikambo
2003-07-04  7:50             ` 2.5.74-mm1 Zwane Mwaikambo
2003-07-04  8:27             ` 2.5.74-mm1 Andrew Morton
2003-07-04  8:37               ` 2.5.74-mm1 Zwane Mwaikambo
2003-07-04  8:56                 ` 2.5.74-mm1 Andrew Morton
2003-07-04  8:57                   ` 2.5.74-mm1 William Lee Irwin III
2003-07-04  8:52               ` 2.5.74-mm1 William Lee Irwin III
2003-07-04 20:00         ` 2.5.74-mm1 Helge Hafting
2003-07-04 20:08           ` 2.5.74-mm1 William Lee Irwin III
2003-07-03 22:26       ` 2.5.74-mm1 William Lee Irwin III
2003-07-03 23:01         ` 2.5.74-mm1 Zwane Mwaikambo
2003-07-03 23:16     ` 2.5.74-mm1 William Lee Irwin III

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=Pine.LNX.4.55.0307071202450.4704@bigblue.dev.mcafeelabs.com \
    --to=davidel@xmailserver.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=phillips@arcor.de \
    /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).