for a while now i've known that usb/ether runs slow for me. i thought it was something to do with the specific situation or hardware, and that, say, usb/disk would be alright. it isn't. and not just on the olpc. now, my machines are fairly slow as machines go... but 2.5MB/s reads are a far cry from 22MB/s (with the olpc on linux).
it turns out that _strayintr is taking up nearly all the time. cpu% kprof /n/9fat/9cpcpuf /dev/kpdata total: 24620 in kernel text: 23890 outside kernel text:730 RTZERO f0100000 PGSIZE 4Kb ms % sym 21840 91.3 _strayintr 290 1.2 memmove 290 1.2 iunlock 180 0.7 sched 160 0.6 memset 150 0.6 sleep ... my understanding is that _strayintr is glue between the interrupt vector table and trap. and presumably includes the time spent in trap. the short review of usbehci.c didn't provide any insight, so i guess i'm asking, is this expected behavior? and what can i do? enjoy, tristan -- All original matter is hereby placed immediately under the public domain.