linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Lang <dlang@digitalinsight.com>
To: John Rigg <ad@sound-man.co.uk>
Cc: "René Rebe" <rene@exactcode.de>,
	"Hannu Savolainen" <hannu@opensound.com>,
	"Jaroslav Kysela" <perex@suse.cz>, "Takashi Iwai" <tiwai@suse.de>,
	linux-sound@vger.kernel.org,
	"ALSA development" <alsa-devel@alsa-project.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [Alsa-devel] Re: [OT] ALSA userspace API complexity
Date: Mon, 9 Jan 2006 15:21:21 -0800 (PST)	[thread overview]
Message-ID: <Pine.LNX.4.62.0601091515570.4005@qynat.qvtvafvgr.pbz> (raw)
In-Reply-To: <20060109232043.GA5013@localhost.localdomain>

On Mon, 9 Jan 2006, John Rigg wrote:

> On Mon, Jan 09, 2006 at 01:58:00PM -0800, David Lang wrote:
>> On Mon, 9 Jan 2006, René Rebe wrote:
>>>>>
>>>>> Also, when the data is already available as single streams in a
>>>>> user-space
>>>>> multi track application, why should it be forced interleaved, when the
>>>>> hardware
>>>>> could handle the format just fine?
>>>> Because the conversion doesn't cost anything. Trying to avoid it by
>>>> making the API more complicated (I would even say confusing) is extreme
>>>> overkill.
>>>
>>> Since when doesn't cost convesion anything? I'm able to count a lot of
>>> wasted
>>> CPU cycles in there ...
>>
>> if the data needed to be accessed by the CPU anyway it's free becouse
>> otherwise the CPU would stall waiting for the next chunk of memory. you
>> can do quite a bit of work on data in cache while you are waiting for the
>> next cache line to load.
>>
>> in this same way, checksumming a network packet is free if the CPU needs
>> to copy the data anway, it only costs something if the data could bypass
>> the CPU.
>
> Yes, but the CPU has plenty of other work to do. The sound cards that
> would be worst affected by this are the big RME cards (non-interleaved) and
> multiple ice1712 cards (non-interleaved blocks of interleaved data),
> which AFAIK are the only cards capable of handling serious professional audio.
> This could represent 48 or more channels of 96kHz audio, which
> doesn't leave a lot of spare CPU capacity for running X, for example.

does the CPU touch the data for these, or do you DMA directly from 
userspace (i.e. "zero-copy")?

if the cpu touches this data on it's way in and out of the system then you 
are going to have a time period where you are maxing out the memory bus of 
your CPU (this may be a short time, but since the bus is either active or 
not there will be a time when it's active transfering audio data :-). 
while the memory bus is busy transfering the audio data your cpu can only 
work on data that's in the cache.

remember that as you keep reading the data from memory it will push other 
stuff out of your cache.

what magic do you pull to have the CPU busy on other things while the 
cache (and memory bus) is being occupied by the audio data transfers?

David Lang

-- 
There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies.
  -- C.A.R. Hoare


  reply	other threads:[~2006-01-09 23:25 UTC|newest]

Thread overview: 270+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-26 15:08 [2.6 patch] schedule obsolete OSS drivers for removal Adrian Bunk
2005-07-26 15:41 ` Jesper Juhl
2005-07-26 15:46   ` Adrian Bunk
2005-07-26 15:41 ` Thomas Sailer
2005-07-26 15:48 ` Jeff Garzik
2005-07-26 16:04   ` Adrian Bunk
2005-07-26 16:49   ` Lee Revell
2005-07-26 17:49     ` John W. Linville
2005-07-26 17:03   ` Gene Heskett
2005-07-26 18:13     ` Adrian Bunk
2005-07-27  3:19       ` Gene Heskett
2005-07-26 15:51 ` Lee Revell
2005-07-26 15:57   ` Jeff Garzik
2005-07-26 16:02     ` Lee Revell
2005-07-27 18:24     ` Adrian Bunk
2005-07-27 20:31       ` John W. Linville
2005-07-27 20:43         ` Jeff Garzik
2005-07-28 14:00           ` Alan Cox
2005-07-28 13:43             ` Jaroslav Kysela
2005-07-28 14:15               ` Adrian Bunk
2006-01-03 13:14               ` Adrian Bunk
2005-07-26 16:30   ` Adrian Bunk
2005-07-26 16:17 ` Andrew Haninger
2005-07-31 19:29   ` Adrian Bunk
2005-07-26 16:27 ` Zach Brown
2005-07-26 21:41   ` Krzysztof Halasa
2005-07-26 23:38   ` Zoran Dzelajlija
2005-07-27 23:28     ` Lee Revell
2005-07-27 23:58       ` Rogério Brito
2005-07-28  8:09     ` Takashi Iwai
2005-07-31 19:36     ` Adrian Bunk
2005-07-27 18:39 ` Kyle McMartin
2005-07-28  3:01   ` [parisc-linux] " Randolph Chung
2005-07-28 14:14   ` Adrian Bunk
2005-07-28 15:04 ` Thorsten Knabe
2005-07-28 15:46   ` Adrian Bunk
2005-07-28 18:33   ` [Alsa-devel] " Lee Revell
2005-07-29  6:52   ` Jaroslav Kysela
2005-07-29 15:16     ` Adrian Bunk
2005-07-29 15:58     ` Thorsten Knabe
2005-07-31 19:39       ` Adrian Bunk
2005-08-01 14:26         ` Andrew Haninger
2005-08-02  0:13           ` Thorsten Knabe
2005-08-02  5:05             ` Lee Revell
2005-08-02 12:59             ` James Courtier-Dutton
2005-08-02 15:55             ` Thorsten Knabe
2005-07-31 13:38 ` James Courtier-Dutton
2006-01-03 13:21 ` Andi Kleen
2006-01-03 13:47   ` Alistair John Strachan
2006-01-03 13:52     ` Andi Kleen
2006-01-03 13:58       ` David Lang
2006-01-03 14:33         ` Alistair John Strachan
2006-01-03 14:34           ` Alistair John Strachan
2006-01-03 14:01       ` Alistair John Strachan
2006-01-03 18:24       ` Lee Revell
     [not found]       ` <mailman.1136300646.6679.linux-kernel2news@redhat.com>
2006-01-04 11:13         ` Pete Zaitcev
2006-01-04 11:16           ` Jaroslav Kysela
2006-01-03 14:38     ` Jan Engelhardt
2006-01-03 14:41       ` Alistair John Strachan
2006-01-03 14:50         ` Jan Engelhardt
2006-01-03 15:22           ` Alistair John Strachan
2006-01-03 16:05             ` Tomasz Torcz
2006-01-03 16:29               ` Alistair John Strachan
2006-01-03 17:03                 ` Olivier Galibert
2006-01-03 17:16                   ` Alistair John Strachan
2006-01-03 19:24                     ` Olivier Galibert
2006-01-03 19:37                       ` Adrian Bunk
2006-01-03 21:40                         ` Olivier Galibert
2006-01-03 23:10                         ` Tomasz Kłoczko
2006-01-04  0:33                           ` Thomas Sailer
2006-01-04  1:48                             ` Olivier Galibert
2006-01-04  9:03                           ` Jan Engelhardt
2006-01-04  9:37                           ` [OT] ALSA userspace API complexity Alistair John Strachan
     [not found]                           ` <mailman.1136368805.14661.linux-kernel2news@redhat.com>
2006-01-04 11:00                             ` Pete Zaitcev
2006-01-04 11:35                               ` Jaroslav Kysela
2006-01-04 11:47                                 ` Pete Zaitcev
2006-01-04 14:23                                 ` Alistair John Strachan
2006-01-05 11:41                                   ` Olivier Galibert
2006-01-05 12:01                                 ` Tomasz Kłoczko
2006-01-05 12:23                                   ` Jaroslav Kysela
2006-01-05 14:21                                     ` Olivier Galibert
2006-01-05 14:56                                       ` [parisc-linux] " Alan Cox
2006-01-05 21:14                                         ` Jan Engelhardt
2006-01-05 15:07                                     ` Tomasz Kłoczko
2006-01-05 16:14                                       ` Takashi Iwai
2006-01-05 17:19                                         ` Marcin Dalecki
2006-01-05 20:13                                         ` Tomasz Kłoczko
2006-01-07 14:32                                           ` Takashi Iwai
2006-01-08  2:03                                             ` Olivier Galibert
2006-01-08  2:26                                               ` Martin Drab
2006-01-08 13:21                                                 ` Olivier Galibert
2006-01-08 13:32                                                   ` Jaroslav Kysela
2006-01-08 23:18                                                     ` Pavel Machek
2006-01-09  0:33                                                     ` [Alsa-devel] " Hannu Savolainen
2006-01-09 12:24                                                       ` Takashi Iwai
2006-01-09 17:49                                                   ` Thierry Vignaud
2006-01-08  9:42                                               ` Jaroslav Kysela
2006-01-08 13:04                                                 ` Olivier Galibert
2006-01-08 13:23                                                   ` Jaroslav Kysela
2006-01-08 13:38                                                 ` Marcin Dalecki
2006-01-09  0:30                                                 ` [Alsa-devel] " Hannu Savolainen
2006-01-05 23:06                                         ` Hannu Savolainen
2006-01-05 23:39                                           ` Lee Revell
2006-01-05 23:56                                             ` Hannu Savolainen
2006-01-06  0:03                                               ` Lee Revell
2006-01-05 23:40                                           ` Lee Revell
2006-01-05 23:59                                             ` Hannu Savolainen
2006-01-06 15:03                                               ` Stefan Smietanowski
2006-01-06 15:48                                                 ` Erik Mouw
2006-01-06 18:37                                                 ` Lee Revell
2006-01-10  9:43                                               ` Jaroslav Kysela
2006-01-10 13:42                                                 ` Hannu Savolainen
2006-01-10 14:08                                                   ` Jaroslav Kysela
2006-01-10 14:17                                                     ` Hannu Savolainen
2006-01-10 20:13                                                     ` Marcin Dalecki
2006-01-06  0:14                                             ` Marcin Dalecki
2006-01-06  0:29                                               ` Martin Drab
2006-01-06  0:57                                                 ` Marcin Dalecki
2006-01-06  1:49                                                   ` Martin Drab
2006-01-06  1:21                                               ` Zan Lynx
2006-01-06 15:17                                                 ` Stefan Smietanowski
2006-01-09 23:55                                                   ` jerome lacoste
2006-01-10  2:29                                                     ` Stefan Smietanowski
2006-01-06  3:14                                           ` Edgar Toernig
2006-01-06  3:33                                             ` Hannu Savolainen
2006-01-06 11:34                                               ` Florian Schmidt
2006-01-06  7:47                                           ` Jan Engelhardt
2006-01-07 14:45                                           ` Takashi Iwai
     [not found]                                             ` <Pine.LNX.4.61.0601080225500.17252@zeus.compusonic.fi>
2006-01-08  9:24                                               ` [Alsa-devel] " Jaroslav Kysela
2006-01-09 13:05                                                 ` René Rebe
2006-01-09 15:10                                                   ` Hannu Savolainen
2006-01-09 17:12                                                     ` René Rebe
2006-01-09 21:58                                                       ` David Lang
2006-01-09 23:20                                                         ` John Rigg
2006-01-09 23:21                                                           ` David Lang [this message]
2006-01-10  0:16                                                             ` John Rigg
2006-01-10  0:29                                                               ` David Lang
2006-01-10  0:44                                                                 ` Alan Cox
2006-01-10  1:56                                                                   ` Lee Revell
2006-01-10  1:27                                                                 ` John Rigg
2006-01-10  1:02                                                               ` John Rigg
2006-01-10  0:48                                                           ` Hannu Savolainen
2006-01-10  2:00                                                             ` John Rigg
2006-01-10  2:17                                                               ` Hannu Savolainen
     [not found]                                                 ` <Pine.LNX.4.61.0601090010090.31763@zeus.compusonic.fi>
2006-01-10 10:51                                                   ` Jaroslav Kysela
     [not found]                                                     ` <Pine.LNX.4.61.0601101550390.24146@zeus.compusonic.fi>
2006-01-10 14:17                                                       ` Jaroslav Kysela
2006-01-10 14:39                                                         ` Adam Tlałka
2006-01-05 18:56                                       ` Lee Revell
2006-01-05 22:39                                       ` Joern Nettingsmeier
2006-01-05 23:44                                         ` Tomasz Kłoczko
2006-01-05 23:49                                         ` Olivier Galibert
2006-01-06  0:22                                           ` Joern Nettingsmeier
2006-01-06  1:30                                             ` Olivier Galibert
2006-01-06  2:20                                             ` Hannu Savolainen
2006-01-10  9:54                                               ` Jaroslav Kysela
2006-01-10 13:50                                                 ` Hannu Savolainen
2006-01-06  0:00                                         ` Marcin Dalecki
2006-01-05 12:47                                   ` Leonard Milcin Jr.
2006-01-04 12:13                           ` [2.6 patch] schedule obsolete OSS drivers for removal Joern Nettingsmeier
2006-01-04 12:35                             ` Andi Kleen
2006-01-04 12:41                               ` Jaroslav Kysela
2006-01-04 17:31                                 ` Alistair John Strachan
2006-01-04 17:48                                   ` Takashi Iwai
2006-01-05  6:42                       ` Lee Revell
2006-01-03 18:28                   ` Lee Revell
2006-01-03 19:30                     ` Thomas Sailer
2006-01-03 19:37                       ` Jaroslav Kysela
2006-01-03 19:56                         ` Thomas Sailer
2006-01-03 20:06                           ` Jaroslav Kysela
2006-01-04  0:23                             ` Thomas Sailer
2006-01-03 22:39                           ` James Courtier-Dutton
2006-01-03 20:22                   ` Takashi Iwai
2006-01-03 20:37                     ` Tomasz Torcz
2006-01-03 20:44                       ` Takashi Iwai
2006-01-03 20:56                         ` Jesper Juhl
2006-01-03 21:56                           ` Adrian Bunk
2006-01-03 22:11                             ` Jesper Juhl
2006-01-04 11:46                               ` Takashi Iwai
2006-01-04 14:46                                 ` Jan Engelhardt
2006-01-04 16:43                                   ` Marcin Dalecki
2006-01-05 10:57                                     ` Jan Engelhardt
2006-01-05 12:44                                       ` Marcin Dalecki
2006-01-05 18:33                                         ` Lee Revell
2006-01-05 20:03                                           ` Marcin Dalecki
2006-01-05 20:05                                             ` Lee Revell
2006-01-05 20:18                                               ` Marcin Dalecki
2006-01-05 20:28                                                 ` Lee Revell
2006-01-05 20:32                                                   ` Marcin Dalecki
2006-01-05 20:39                                                     ` Lee Revell
2006-01-05 20:32                                                 ` Lee Revell
2006-01-05 20:54                                                   ` Marcin Dalecki
2006-01-05 21:01                                                     ` Lee Revell
2006-01-05 21:43                                                       ` Marcin Dalecki
2006-01-05 21:47                                                         ` Lee Revell
2006-01-05 23:35                                                     ` Jesper Juhl
2006-01-06  0:04                                                       ` Marcin Dalecki
2006-01-06  0:08                                                         ` Jesper Juhl
2006-01-06  1:36                                                         ` Hannu Savolainen
2006-01-06  9:54                                                           ` James Courtier-Dutton
2006-01-06 13:37                                                             ` Hannu Savolainen
2006-01-06 10:34                                                           ` Gabor Gombas
2006-01-06 12:48                                                             ` Hannu Savolainen
2006-01-07 14:09                                                           ` Takashi Iwai
2006-01-07 14:57                                                             ` Marcin Dalecki
2006-01-08  0:21                                                             ` Hannu Savolainen
2006-01-06  2:40                                             ` Diego Calleja
2006-01-06 14:57                                               ` Olivier Galibert
2006-01-06 20:26                                                 ` Jaroslav Kysela
2006-01-07  0:40                                                   ` Marcin Dalecki
2006-01-07  0:56                                                   ` Olivier Galibert
2006-01-05 23:19                                           ` Hannu Savolainen
2006-01-05 23:33                                             ` Lee Revell
2006-01-06 13:20                                               ` caszonyi
2006-01-06 13:43                                                 ` James Courtier-Dutton
2006-01-06 18:24                                                 ` Lee Revell
2006-01-06 18:27                                                 ` Lee Revell
2006-01-04 20:12                                   ` Kyle Moffett
2006-01-04 22:25                                     ` Olivier Galibert
2006-01-03 22:13                             ` Tomasz Torcz
2006-01-03 23:10                               ` Adrian Bunk
2006-01-03 23:51                                 ` Tomasz Kłoczko
2006-01-04  0:03                                   ` Adrian Bunk
2006-01-04  0:46                                     ` Tomasz Kłoczko
2006-01-04  1:01                                       ` Adrian Bunk
2006-01-04  2:51                                         ` Tomasz Kłoczko
2006-01-04  8:50                                           ` Alan Cox
2006-01-04 13:21                                             ` Greg Louis
2006-01-04 14:41                                               ` Adrian Bunk
2006-01-04 10:37                                           ` tapas
2006-01-04 17:28                                             ` Alistair John Strachan
2006-01-05  7:14                                               ` Jan Engelhardt
2006-01-04 17:54                                             ` Takashi Iwai
2006-01-04 18:17                                               ` Florian Schmidt
2006-01-04 19:28                                                 ` Marcin Dalecki
2006-01-04 19:52                                                   ` Florian Schmidt
2006-01-05  7:11                                                     ` Jan Engelhardt
2006-01-05 11:15                                                     ` Takashi Iwai
2006-01-05 21:20                                                   ` Jim Crilly
2006-01-05  7:11                                                 ` Lee Revell
2006-01-05 19:09                                                   ` Edgar Toernig
2006-01-05 19:29                                                     ` Lee Revell
2006-01-05 20:19                                                       ` Lee Revell
2006-01-05 21:05                                                         ` Edgar Toernig
2006-01-05 21:10                                                           ` Lee Revell
2006-01-05 20:24                                                       ` Edgar Toernig
2006-01-05 20:29                                                         ` Lee Revell
2006-01-05  7:16                                             ` Lee Revell
2006-01-05 11:43                                               ` Florian Schmidt
2006-01-05 17:48                                                 ` Lee Revell
2006-01-08 21:07                                                   ` Ville Herva
2006-01-08 21:44                                                     ` Lee Revell
2006-01-09  8:16                                                       ` Ville Herva
2006-01-09 13:52                                                         ` Lee Revell
2006-01-09 14:22                                                           ` Ville Herva
2006-01-09 15:18                                                             ` Lee Revell
2006-01-09 16:21                                                               ` Ville Herva
2006-01-09 16:22                                                                 ` Lee Revell
2006-01-05 18:36                                                 ` Lee Revell
2006-01-05 18:47                                                   ` Tomasz Torcz
2006-01-05 19:10                                                     ` Lee Revell
2006-01-05 19:15                                                   ` Florian Schmidt
2006-01-04  0:28                                   ` Stefan Smietanowski
2006-01-04  1:38                                     ` Tomasz Kłoczko
2006-01-04  9:48                                       ` Stefan Smietanowski
2006-01-05  3:03                                         ` Peter Bortas
2006-01-05  7:13                                           ` Jan Engelhardt
2006-01-05  7:19                                             ` Lee Revell
2006-01-05  8:41                                               ` Stefan Smietanowski
2006-01-05  9:57                                             ` Peter Bortas
2006-01-03 17:09             ` Jan Engelhardt

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.62.0601091515570.4005@qynat.qvtvafvgr.pbz \
    --to=dlang@digitalinsight.com \
    --cc=ad@sound-man.co.uk \
    --cc=alsa-devel@alsa-project.org \
    --cc=hannu@opensound.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=perex@suse.cz \
    --cc=rene@exactcode.de \
    --cc=tiwai@suse.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).