Openmoko Bug #2180: stable-tracking: 'rxserr' UART messages

Openmoko Public Trac bugs at docs.openmoko.org
Sun Feb 15 18:59:09 CET 2009


#2180: stable-tracking: 'rxserr' UART messages
-----------------------------+----------------------------------------------
 Reporter:  laforge          |          Owner:  openmoko-kernel         
     Type:  defect           |         Status:  new                     
 Priority:  high             |      Milestone:  FSO                     
Component:  System Software  |        Version:                          
 Severity:  major            |       Keywords:  gps s3x24xx_serial rxerr
 Haspatch:  0                |      Blockedby:                          
Estimated:                   |    Patchreview:                          
 Blocking:                   |   Reproducible:                          
-----------------------------+----------------------------------------------

Comment(by Sascha):

 I found that the delay is introduced by a busy wait in
 glamo_mci_send_request. The call graph looks like this:
 {{{
 arch/arm/kernel/irq.c           asm_do_IRQ(21)
 include/linux/irq.h             generic_handle_irq(21)
 arch/arm/plat-s3c24xx/irq.c     s3c_irq_demux_extint8(21, desc)
 include/linux/irq.h             generic_handle_irq(56)
 drivers/mfd/glamo/glamo-core.c  glamo_irq_demux_handler(56, desc)
 arch/arm/include/asm/hw_irq.h   desc_handle_irq(92, desc)
 drivers/mfd/glamo/glamo-mci.c   glamo_mci_irq(92, desc)
 drivers/mfd/glamo/glamo-mci.c   glamo_mci_irq_host(host)
 drivers/mfd/glamo/glamo-mci.c   glamo_mci_send_request(mmc)
 }}}

 {{{
 Feb 15 18:20:28 gta02 kernel: [21474811.755000] glamo_mci_send_request:
 5874 us - 22770 polls
 Feb 15 18:20:28 gta02 kernel: [21474811.755000] asm_do_IRQ(21): 6170 us
 Feb 15 18:20:34 gta02 kernel: [21474817.000000] glamo_mci_send_request:
 6195 us - 24007 polls
 Feb 15 18:20:34 gta02 kernel: [21474817.000000] asm_do_IRQ(21): 6509 us
 Feb 15 18:20:34 gta02 kernel: [21474817.015000] glamo_mci_send_request:
 6354 us - 24627 polls
 Feb 15 18:20:34 gta02 kernel: [21474817.015000] asm_do_IRQ(21): 6646 us

 Feb 15 18:22:33 gta02 kernel: [   99.735000] glamo_mci_send_request: 5109
 us - 58541 polls
 Feb 15 18:22:33 gta02 kernel: [   99.735000] asm_do_IRQ(21): 5433 us
 Feb 15 18:22:49 gta02 kernel: [  115.380000] glamo_mci_send_request: 7170
 us - 376570 polls
 Feb 15 18:22:49 gta02 kernel: [  115.380000] asm_do_IRQ(21): 7492 us
 Feb 15 18:22:49 gta02 kernel: [  115.385000] rxerr: port=1 ch=0x00,
 rxs=0x00000001

 Feb 15 18:28:24 gta02 kernel: [  450.320000] glamo_mci_send_request: 6284
 us - 276284 polls
 Feb 15 18:28:24 gta02 kernel: [  450.320000] asm_do_IRQ(21): 6557 us
 Feb 15 18:28:24 gta02 kernel: [  450.335000] glamo_mci_send_request: 6225
 us - 334202 polls
 Feb 15 18:28:24 gta02 kernel: [  450.335000] asm_do_IRQ(21): 6507 us
 Feb 15 18:28:24 gta02 kernel: [  450.355000] rxerr: port=1 ch=0x04,
 rxs=0x00000001
 Feb 15 18:28:29 gta02 kernel: [  455.275000] glamo_mci_send_request: 8298
 us - 303475 polls
 Feb 15 18:28:29 gta02 kernel: [  455.275000] asm_do_IRQ(21): 8624 us
 }}}

 The number of polls suggests that we lose timer interrupts (at 200 Hz we
 can only measure 2 * 5 ms)...
 Can we really have a delay of ~ 1 second here? This would explain why a 64
 byte fifo can overrun at 9600 baud.

-- 
Ticket URL: <https://docs.openmoko.org/trac/ticket/2180#comment:23>
docs.openmoko.org <http://docs.openmoko.org/trac/>
openmoko trac


More information about the openmoko-kernel mailing list