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 buglog
mailing list