Skip site navigation (1)Skip section navigation (2)
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>