Date: Sun, 18 Dec 2011 12:58:57 +0200 From: Andriy Gapon <avg@FreeBSD.org> To: Hans Petter Selasky <hselasky@c2i.net> Cc: usb@FreeBSD.org, freebsd-hackers@FreeBSD.org, John Baldwin <jhb@FreeBSD.org>, mdf@FreeBSD.org Subject: Re: kern_yield vs ukbd_yield Message-ID: <4EEDC771.800@FreeBSD.org> In-Reply-To: <201112171806.43764.hselasky@c2i.net> References: <4EE51CB5.1060505@FreeBSD.org> <201112160016.33776.hselasky@c2i.net> <4EECADD4.9040509@FreeBSD.org> <201112171806.43764.hselasky@c2i.net>
next in thread | previous in thread | raw e-mail | index | archive | help
on 17/12/2011 19:06 Hans Petter Selasky said the following: > If the problem is only in UKBD driver, I don't think this is a big problem to > solve. The reason for the auto-magic locking, is that I've sometimes seen > callers in non-polling mode call into UKBD without Giant locked. And this > causes a panic when starting USB transfers, because the code expects Giant to > be locked. Hmm, do you have an example of such a panic? I couldn't find how this could be possible in my examination of non-polling entry points into syscons and kbd drives. > Requirement: I would say that to use UKBD polling mode, the scheduler must be > stopped. Else you should not use polling mode at all. I think that mountroot > is getting characters the wrong way in this regard. I think that this is a too strong / unnecessary requirement. I think that now (after my recent syscons commits) ukbd should work correctly and optimally in this context. I have written a small article about my analysis of locking in syscons, underlying kbd drivers and ukbd in particular: http://wiki.freebsd.org/AvgSyscons I could have misunderstood or missed things, so I will appreciate a review and discussion of my observations. Thank you! -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4EEDC771.800>