Date: Tue, 23 Apr 2013 04:47:22 -0700 From: Jeremy Chadwick <jdc@koitsu.org> To: Steven Hartland <killing@multiplay.co.uk> Cc: Kenneth Merry <ken@freebsd.org>, Alexander Motin <mav@FreeBSD.org>, freebsd-stable@freebsd.org Subject: Re: ada(4) and ahci(4) quirk printing Message-ID: <20130423114722.GA61919@icarus.home.lan> In-Reply-To: <4D28DBAE46424C268AA22FCDD8657946@multiplay.co.uk> References: <20130422051452.GA2148@icarus.home.lan> <51763BF9.2000506@FreeBSD.org> <20130423092602.GA58831@icarus.home.lan> <51765466.4040209@FreeBSD.org> <4D28DBAE46424C268AA22FCDD8657946@multiplay.co.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Apr 23, 2013 at 12:33:09PM +0100, Steven Hartland wrote: > > ----- Original Message ----- From: "Alexander Motin" > <mav@FreeBSD.org> > To: "Jeremy Chadwick" <jdc@koitsu.org> > Cc: "Kenneth Merry" <ken@freebsd.org>; <freebsd-stable@freebsd.org> > Sent: Tuesday, April 23, 2013 10:29 AM > Subject: Re: ada(4) and ahci(4) quirk printing > > > >On 23.04.2013 12:26, Jeremy Chadwick wrote: > >>On Tue, Apr 23, 2013 at 10:44:57AM +0300, Alexander Motin wrote: > >>>On 22.04.2013 08:14, Jeremy Chadwick wrote: > >>>>I've written the following patches and done the following testing (see > >>>>the results.*.txt files): > >>>> > >>>>http://jdc.koitsu.org/freebsd/quirk_printing/ > >>>> > >>>>Important: these are against stable/9 r249715. > >>>> > >>>>Folks are welcome to try these; I've tested about as best as I can. > >>>> > >>>>Questions/comments for Alexander and Kenneth: > >>>> > >>>>1. I'm not sure if the location of where I added the printf() code is > >>>>correct or not, > >>> > >>>It seems fine for me. > >>> > >>>>2. Not sure if loader.conf(5) forced-quirks would show up here or not, > >>> > >>>As I see, they will. > >>> > >>>>3. It would be nice to have the same for SCSI da(4). I took a stab at > >>>>this but the printing code I wrote never got called (or the quirks entry > >>>>I added wasn't right, not sure which), > >>>> > >>>>4. I strongly believe quirk printing should be shown *without* verbose > >>>>booting. I say this because I noticed some of the CAPAB printf()s only > >>>>get shown if bootverbose is true. In fact, it's what prompted me to > >>>>open PR 178040 ("My Intel 320 and 510-series SSDs don't show 4K quirks, > >>>>yet advertise 512 logical and physical in IDENTIFY?! PR time!"). > >>> > >>>Let me disagree. bootverbose keeps dmesg readable for average user, > >>>while quirks are specific driver workarounds and their names may > >>>confuse more then really help. If every driver print its quirks, > >>>dmesg would be two times bigger. There is bootverbose for it. > >> > >>I'm willing to bend on this assuming that userland has a way to display > >>the quirks. I've already had one user contact me off-list stating that > >>displaying of quirks is useful to them, but *without* bootverbose > >>(because bootverbose shows too much information for them to have to sift > >>through). And display of quirks (or in this case) was what prompted me > >>to create PR 178040, since I had just *assumed* FreeBSD had 4K quirks in > >>place for both models of SSDs. > >> > >>I think sysctl would be an ideal place for this. Is it possible to > >>export active device quirks to sysctl (say kern.cam.ada.X.quirks), > >>read-only, and preferably as a string (same printf() style used)? Or > >>does that introduce complexities? > >> > >>If we can't reach an agreement, I'm happy to wrap the relevant bits with > >>an "if (bootverbose)", but I really feel users should have some way to > >>see this information outside of bootverbose. > > > >Both da and ada drivers already have sysctl's. It should be > >trivial to add one more, especially if just numeric. > > Wouldn't camcontrol be a better place for this? 1) Not possible at this time -- the ADA_Q_* quirks are not exported to userland (i.e. /usr/include), only the kernel. camcontrol's source only relies on things in userland. 2) Assuming #1 is addressed: where would it go? You can't put it under "camcontrol identify" because all (I repeat: ALL) that information comes from ATA IDENTIFY and thus would be extremely misleading. (Same goes for SCSI's INQUIRY stuff). Which leads me to... 3) I'm never thrilled about adding new commands to camcontrol given how enormous that thing is to begin with. :-) I also imagine something like "camcontrol quirks" might lead people to think it lets you adjust quirks in real-time (nope -- read-only, tunable-only). And that leads me to... 4) camcontrol wouldn't address the need/interest for ahci(4) quirks to be made available. All of these things combined do lead me to believe sysctl is the better place for this. P.S. -- I just noticed that our USB layer prints device quirks regardless of bootverbose -- instead it's based on kernel option USB_DEBUG, which is enabled in GENERIC. Hooray for inconsistency. -- | Jeremy Chadwick jdc@koitsu.org | | UNIX Systems Administrator http://jdc.koitsu.org/ | | Mountain View, CA, US | | Making life hard for others since 1977. PGP 4BD6C0CB |
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130423114722.GA61919>