From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: [PATCH] Kernel crash Date: Fri, 17 Sep 2004 12:32:44 +0200 Sender: alsa-devel-admin@lists.sourceforge.net Message-ID: References: <20040911210212.317d930b.pochini@shiny.it> <20040913220729.466531ce.pochini@shiny.it> <20040915195008.33713acb.pochini@shiny.it> Mime-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII Return-path: In-Reply-To: Errors-To: alsa-devel-admin@lists.sourceforge.net List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , List-Archive: To: Jaroslav Kysela Cc: Giuliano Pochini , alsa-devel@lists.sourceforge.net List-Id: alsa-devel@alsa-project.org At Fri, 17 Sep 2004 12:22:07 +0200, I wrote: > > > The linking makes sense for hardware that support that. Otherwise, we can > > start streams in most close time, but draining and dropping doesn't make > > much sense, because different clocking sources for different cards will > > produce jitter, thus there is no real sync and application must care. > > Agreed. I've assumed that drain/drop are supposed to be synchronous, > but they should not. I just noticed that pcm_multi.c _assumes_ indeed that linked draining/dropping works as synchronized. So, the current semantics is correct. If snd_pcm_drain() affects only the given stream, then it's difficult to get sync among all streams, because basically draining consists of two phases: - trigger DRAIN state to all streams - wait until all streams get drained We cannot do the procedure above in the serialized manner. Also, another question is how to handle XRUN state. When one of the linked streams gets XRUN, should all streams be stopped and marked as XRUN? I think yes. Takashi ------------------------------------------------------- This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170 Project Admins to receive an Apple iPod Mini FREE for your judgement on who ports your project to Linux PPC the best. Sponsored by IBM. Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php