public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: i810 kernel driver vs 7012
       [not found]                                         ` <86vgeckrg4.fsf@notus.ireton.fremlin.de>
@ 2002-01-09  9:27                                           ` Doug Ledford
  2002-01-09 17:17                                             ` John Fremlin
  0 siblings, 1 reply; 2+ messages in thread
From: Doug Ledford @ 2002-01-09  9:27 UTC (permalink / raw)
  To: John Fremlin; +Cc: linux-kernel

John Fremlin wrote:

> Doug Ledford <dledford@redhat.com> writes:
> 
> 
>>I think we are chasing one last bit of "flaky" behaviour on the SiS
>>chipset. 
>>
> 
> To my untutored eye it looks like some sort of timing issue. I had
> more trouble getting hold of a dma overrun with debugging compiled
> in. My IRQ is shared with eth0 but I once ifdowned eth0 and got
> broadly similar sound effects and problems
> 
> 
>>Tomorrow, can you rerun this same test 
>>
> 
> You might say today is already tomorrow <groan>
> 
>>with debug interrupts enabled and send me the output.  All I need is
>>one dma overrun to be able to track it I think.  The other thing
>>that might be helpful is debug2.  A run with both interrupt and
>>debug2 enabled would probably pinpoint the real problem.
>>
>>BTW, I don't get *any* overruns here doing anything with xmms, artsd,
>>esd, or using sox or cat to play a wav file.
>>
> 
> I had to play my beetle file a few times to get one this time :-( This
> trace is just of the beetle file being played. For your enjoyment I
> also attach the beetle file


Problem identified.  It was a combination of two things.  In drain_dac() we 
were calling update_ptr() *after* setting our task state to 
TASK_INTERRUPTIBLE.  Well, the way that wait queues work is that when 
update_ptr() kept calling wake_up() because we had more than 1 userfragsize 
of space available to write it would clear our task state back to 
TASK_RUNNING before we would ever call schedule_timeout().  The result is 
that in drain_dac() we would go into a very tight loop of never sleeping and 
always updating things waiting for the dma to finish.  That was problem 1. 
Problem 2 was that in get_hardware_addr() we were finding a bug the SiS 
hardware.  Basically on the SiS stuff we were catching the hardware in 
updates to the sg segment it was dma'ing.  With a slight change to the 
routine to cause it to delay slightly and then recheck the hardware to make 
sure that what it reads is consistent, the problem should be solved. 
Anyway, a new 0.18 version of the driver is up on my site.  It should solve 
*all* of the particular problems you were seeing.  Let me know how it works.

Also, thanks for spending soooo much time getting me the traces and stuff 
you did John.  It was what allowed me to find these two issues.

(For the people on linux-kernel's benefit, the site again is 
http://people.redhat.com/dledford/i810_audio.c.gz)

 



-- 

  Doug Ledford <dledford@redhat.com>  http://people.redhat.com/dledford
       Please check my web site for aic7xxx updates/answers before
                       e-mailing me about problems


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: i810 kernel driver vs 7012
  2002-01-09  9:27                                           ` i810 kernel driver vs 7012 Doug Ledford
@ 2002-01-09 17:17                                             ` John Fremlin
  0 siblings, 0 replies; 2+ messages in thread
From: John Fremlin @ 2002-01-09 17:17 UTC (permalink / raw)
  To: Doug Ledford; +Cc: linux-kernel, tom

Doug Ledford <dledford@redhat.com> writes:

[...]

> Problem identified.  It was a combination of two things.  In
[...]
> solved. Anyway, a new 0.18 version of the driver is up on my site.
> It should solve *all* of the particular problems you were seeing.
> Let me know how it works.

Works just super. Not an overrun in sight anywhere! Please submit it
for the kernel(s) so I don't have to apply yet another patch :-)

Thanks for nailing the problems, Doug! You must have put in a lot of
time on this yesterday and it was almost a pleasure to run those tests
because of the speed with which you came up with patches. Thanks once
again!

[Of course also qudos and thanks to Thomas Gschwind who got the SiS
7012 going in the first place!]

[...]
-- 

	http://john.fremlin.de


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2002-01-09 17:16 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <86k7ut5qb2.fsf@notus.ireton.fremlin.de>
     [not found] ` <861yh0lczs.fsf_-_@notus.ireton.fremlin.de>
     [not found]   ` <3C3B6D67.6050409@redhat.com>
     [not found]     ` <86itach48q.fsf@notus.ireton.fremlin.de>
     [not found]       ` <3C3B72EE.8010803@redhat.com>
     [not found]         ` <864rlwh328.fsf@notus.ireton.fremlin.de>
     [not found]           ` <3C3B79BB.6090601@redhat.com>
     [not found]             ` <86vgecfnec.fsf@notus.ireton.fremlin.de>
     [not found]               ` <3C3B8C14.60508@redhat.com>
     [not found]                 ` <86u1twe3sw.fsf@notus.ireton.fremlin.de>
     [not found]                   ` <3C3B9B60.4010308@redhat.com>
     [not found]                     ` <86ofk4e2gz.fsf@notus.ireton.fremlin.de>
     [not found]                       ` <3C3BA00D.7020203@redhat.com>
     [not found]                         ` <86d70ke0rs.fsf@notus.ireton.fremlin.de>
     [not found]                           ` <3C3BA5E2.7050703@redhat.com>
     [not found]                             ` <861yh0dzlc.fsf@notus.ireton.fremlin.de>
     [not found]                               ` <3C3BB0B6.2070401@redhat.com>
     [not found]                                 ` <867kqsmd05.fsf@notus.ireton.fremlin.de>
     [not found]                                   ` <3C3BCAAD.50308@redhat.com>
     [not found]                                     ` <861yh0m7ic.fsf@notus.ireton.fremlin.de>
     [not found]                                       ` <3C3BD44A.4080008@redhat.com>
     [not found]                                         ` <86vgeckrg4.fsf@notus.ireton.fremlin.de>
2002-01-09  9:27                                           ` i810 kernel driver vs 7012 Doug Ledford
2002-01-09 17:17                                             ` John Fremlin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox