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, 2. Not sure if loader.conf(5) forced-quirks would show up here or not, 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!"). P.S. -- I know the printf() method with %b looks a weird, but it's easier than allocating some memory for a variable-length buffer and a case statement + strcat(), or risk calling printf() for each quirks repeatedly (re: interspersed kernel output). -- | Jeremy Chadwick jdc at koitsu.org | | UNIX Systems Administrator http://jdc.koitsu.org/ | | Mountain View, CA, US | | Making life hard for others since 1977. PGP 4BD6C0CB |
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. -- Alexander Motin
Am 23.04.2013 09:44, schrieb Alexander Motin:> 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.quirks print hardware shortcomings that FreeBSD is working around, it is useful both to reassure users that FreeBSD is aware of the issues as well as give them a hint not to buy the same hardware if the quirks have too severe an impact (like NCQ unusable).
> 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, > > 2. Not sure if loader.conf(5) forced-quirks would show up here or not, > > 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!"). > > P.S. -- I know the printf() method with %b looks a weird, but it's > easier than allocating some memory for a variable-length buffer and a > case statement + strcat(), or risk calling printf() for each quirks > repeatedly (re: interspersed kernel output).Follow-up to this: I've updated the patches on my site (ada(4) and ahci(4) do the same thing as before but I moved the quirk printing code into a subroutine), in addition to adding quirk printing bits for the following drivers: * cd(4) (SCSI CD/DVD drives) * ch(4) (SCSI tape/media changer/arms) * da(4) (SCSI disks, also includes USB disks but quirks here are separate from umass(4) quirks) * sa(4) (SCSI tape drives) da(4) was a request from another developer. I was able to test da(4) and cd(4), but not ch(4) and sa(4) due to lack of devices. (I do have a 2940UW SCSI controller and an AIT tape drive laying around to test sa(4) but I can't be bothered to find the box/unpack it and deal with all the cabling) If anyone has ch(4) or sa(4) devices that have quirks and can test the patches + provide feedback, I'd appreciate it. Remember: quirks are only printed if their are defined quirks for the device. -- | Jeremy Chadwick jdc at koitsu.org | | UNIX Systems Administrator http://jdc.koitsu.org/ | | Mountain View, CA, US | | Making life hard for others since 1977. PGP 4BD6C0CB |