1 |
On Thursday 20 April 2006 8:12 am, Michael B. Trausch wrote: |
2 |
I got this all the time with ac97 chipset with older versions of arts. Maybee |
3 |
you are running a similar chipset? or an old driver or something? what kernel |
4 |
version do you run? |
5 |
|
6 |
From google with search on 'arts cpu overload' |
7 |
http://www.arts-project.org/doc/handbook/faq.html#id2805932 |
8 |
> |
9 |
>13.3 What is wrong in the driver if I get the cpu overload problem? |
10 |
> |
11 |
>Usually, artsd uses select() to find out when to write new data. Then, it |
12 |
>uses an ioctl(...GETOSPACE...) to find out how much data to write. Finally, |
13 |
>it writes this data. |
14 |
> |
15 |
>A problem occurs if artsd is woken up either always or if there are minimal |
16 |
>amounts of data to write. The OSS documentation specifies that select() only |
17 |
>wakes up a process if there is at least one fragment to write. However, if |
18 |
>artsd is woken up if there isn't data to write, or very little, for instance |
19 |
>one sample, then it will keep writing little pieces of audio data, which can |
20 |
>be very costly, and eventually overload the cpu. |
21 |
> |
22 |
>To fix this, the driver should wake up artsd only if there is a full fragment |
23 |
>to write. |
24 |
> |
25 |
|
26 |
That page is a little old but it sould give you an idea of where to start. |
27 |
-- |
28 |
It's not easy, being green. |
29 |
-- Kermit the Frog |