Date: Mon, 08 May 2017 21:58:27 +0300 From: Vladimir Kondratyev <vladimir@kondratyev.su> To: Warner Losh <imp@bsdimp.com> Cc: freebsd-arch@freebsd.org, owner-freebsd-arch@freebsd.org Subject: Re: psm(4) & atkbdc(4) locking Message-ID: <80600e8d3da7725a66e2a1e24cbfd916@kondratyev.su> In-Reply-To: <CANCZdfrvZ0OuQhRhcpMhxFphMjBuR22HJQTNyL=NDLb1VihJRQ@mail.gmail.com> References: <a50871663d281c388e16b146496ed035@kondratyev.su> <CANCZdfrvZ0OuQhRhcpMhxFphMjBuR22HJQTNyL=NDLb1VihJRQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2017-05-08 21:39, Warner Losh wrote: > On Mon, May 8, 2017 at 12:33 PM, Vladimir Kondratyev > <vladimir@kondratyev.su> wrote: >> Hi All >> >> In order to implement evdev support in psm(4) driver I`m going to add >> mutexes to psm and atkbdc drivers and mark psm interrupt and cdev >> handlers >> MPSAFE. >> Atkbd(4) is depending on Giant like before. >> >> Locking of these drivers seems to be low-hanging fruit as spl() calls >> are >> still in place but it has not occurred. >> >> Does someone know why it is not done yet? For reasons other than >> "Nobody >> took care of it"? >> Any hidden traps? > > Working rock-solid reliably in ddb(4) is what tripped me up when I > started down this path 10 years ago. I tried to avoid atkbd changes as much as possible. Patch adds atkbdc mutex acquisition before each hardware access and nothing more. I think mutexes should be ignored in ddb mode. > Understanding all the rules for > that was a bridge too far for me given the time I had for the project > then. If you have that covered (I haven't looked at the diffs yet), > you're golden. I`m not familiar with ddb internals, that is why i wrote first mail. > > Warner >> Patches can be found here: >> https://reviews.freebsd.org/D10263 (atkbdc, serialize hw registers >> access) >> https://reviews.freebsd.org/D10264 (psm, serialize softc access, mark >> interrupt and cdev handlers MPSAFE) >> -- WBR Vladimir Kondratyev
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?80600e8d3da7725a66e2a1e24cbfd916>