[alsa-devel] [alsa-cvslog] alsa-lib: pcm - Limit the avail_min minimum size

Jaroslav Kysela perex at perex.cz
Tue Nov 20 20:36:16 CET 2007


On Tue, 20 Nov 2007, Takashi Iwai wrote:

> changeset:   2352:39d34d6a4587
> tag:         tip
> user:        tiwai
> date:        Tue Nov 20 15:29:10 2007 +0100
> files:       src/pcm/pcm.c
> description:
> pcm - Limit the avail_min minimum size
> 
> Fix avail_min if it's less than period_size.  The too small avail_min
> is simply useless and the cause of CPU hog with rate plugin.
> 
> 
> diff -r b1d1733e52f8 -r 39d34d6a4587 src/pcm/pcm.c
> --- a/src/pcm/pcm.c	Mon Nov 19 08:07:19 2007 +0100
> +++ b/src/pcm/pcm.c	Tue Nov 20 15:29:10 2007 +0100
> @@ -5577,6 +5577,12 @@ int snd_pcm_sw_params_set_avail_min(snd_
>  #endif
>  {
>  	assert(pcm && params);
> +	/* Fix avail_min if it's below period size.  The period_size
> +	 * defines the minimal wake-up timing accuracy, so it doesn't
> +	 * make sense to set below that.
> +	 */
> +	if (val < pcm->period_size)
> +		val = pcm->period_size;
>  	params->avail_min = val;
>  	return 0;
>  }

I think that this patch is wrong. We may use system timers to increase 
(fine-tune) "interrupt" latencies for pcm streams - see tick time in 
driver and library.

						Jaroslav

-----
Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project


More information about the Alsa-devel mailing list