[PATCH 3/3] fix-stop-sitting-printing-in-time-critical-context.patch

Andy Green andy at openmoko.com
Tue Aug 26 20:48:14 CEST 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Somebody in the thread at some point said:
| On Fri, Aug 01, 2008 at 07:54:23AM +0100, Andy Green wrote:
|> Someone left us a big fat warning in USB device code
|>
|> 	/* Don't ever put [serial] debugging in non-error codepaths here, it
|> 	 * will violate the tight timing constraints of this USB Device
|> 	 * controller (and lead to bus enumeration failures) */
|
| just a minor sidenote: It was me who wrote that warning. I must have
literally
| lost a week in finding this out.  In the end I even found out that if
the CPU
| core clock is not running fast enough, the timing constraints are
violated and
| the enumeration fails.
|
| It's a problem that you usually just don't think would happen on a
| several-hundred-MHz core with something als comparatively slow as
11MHz USB
| behind a device controller that's supposed to handle the most critical
stuff
| and offer a FIFO-based interface.

I appreciated the warning because when I paid attention to it, it
aborted my would-have-been-week into a day.

No, one doesn't expect the hardware USB unit to go insane until the
device is reset because we were a little delayed servicing its
interrupt!  I guess the same can happen in Linux if there was ever long
service time ISR with higher priority that pushed out this one's latency.

- -Andy
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iEYEARECAAYFAki0T+4ACgkQOjLpvpq7dMoeywCdGkkTBdtjwwGcl0YD1bhJUI6I
gJAAn2g0Inrc0VKxlKmDsiOlsAwQv/IV
=uebq
-----END PGP SIGNATURE-----



More information about the openmoko-kernel mailing list