Date: Mon, 03 Aug 2009 01:22:06 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: hselasky@c2i.net Cc: src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, alfred@FreeBSD.org, rwatson@FreeBSD.org, nparhar@gmail.com, svn-src-head@FreeBSD.org Subject: Re: svn commit: r195960 - in head/sys/dev/usb: . controller input Message-ID: <20090803.012206.1492586399.imp@bsdimp.com> In-Reply-To: <200908030827.21108.hselasky@c2i.net> References: <20090802192902.GS47463@elvis.mu.org> <134A728D-F2F4-4951-81D8-704CC2DB6F9F@FreeBSD.org> <200908030827.21108.hselasky@c2i.net>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <200908030827.21108.hselasky@c2i.net> Hans Petter Selasky <hselasky@c2i.net> writes: : On Sunday 02 August 2009 21:58:14 Robert N. M. Watson wrote: : > On 2 Aug 2009, at 20:29, Alfred Perlstein wrote: : > > * Robert Watson <rwatson@FreeBSD.org> [090801 15:15] wrote: : > >> On Sat, 1 Aug 2009, Hans Petter Selasky wrote: : > >>>>> This has slowed down core dumps very significantly. What used : > >>>>> to take : > >>>>> 10-15s on my system now takes around 3 minutes. A simple test : > >>>>> is to : > >>>>> break into ddb and "call doadump" with or without this rev. I : > >>>>> have a : > >>>>> serial console on this machine and so I can use ddb whether the : > >>>>> attached : > >>>>> USB keyboard works or not. : > >>> : > >>> It's because there is a DELAY(1000) in the UKBD's polling routine : > >>> so that : > >>> key- repeating will work, no magic. : > >> : > >> Given a choice between dumping 10x faster and having automatic key : > >> repeat : > >> in DDB, I'd lean towards the former. :-) : > > : > > Robert, and *@freebsd.org, : > > : > > Hans should be back in a day or so to address this. If critical I can : > > probably back out the offending code, but I think it makes sense to : > > wait a few days more for a more comprehensive fix. : > : > That's my feeling too -- however, I think it would be useful to : > generate a small concept test patch that disables the key repeat : > behavior and see if it restores some/all performance. Scott's argument : > suggests only some, but perhaps we'd get quite a bit, which is what : > we're looking for. We wouldn't commit the patch but it would let us : > know we're on the right track. : : Hi, : : I'm back. : : I see two solutions: : : 1) Disable the timekeeping if no keys are pressed. : : 2) Second option is to use getmicrotime. Actually what I need is just a : millisecond time reference so I know when to repeat the last key. : : Any opinions? DELAY() or getmicrotime() ? I'd note the state at each poll, and if > 1ms has passed since the down event, I'd repeat. I wouldn't use DELAY at all to see if you needed to repeat: I'd let the clocking of the polling drive you here (eg, you know that someone else will call it a lot, so leverage that to avoid the delay). Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090803.012206.1492586399.imp>