Re: Why SCSI module needed for PCI-IDE ATA only disks ?

From: Ed Sweetman
Date: Tue Dec 05 2006 - 21:08:53 EST


Robert Hancock wrote:
Ed Sweetman wrote:
Jeff Garzik wrote:
Bernard Pidoux wrote:
I am asking why need to compile the following modules while I do not
have any SCSI device ?

libata uses SCSI to provide a lot of infrastructure that it would otherwise have to recreate. Also, using SCSI meant that it automatically worked in existing installers.

Jeff

This confusion could easily be remedied by explaining the requirement in the Help output for libata drivers/section. Also, making a dependency in the menu (since there is one) or automatically selecting the required scsi items when you select a libata driver would seem logical. As it is, nothing is said of scsi requirements in menuconfig. Trying to boot a machine without compiling the scsi drivers (something you're allowed to do) results in a system that boots and initializes the ata busses but can't communicate to any of the drives on them, (useless).

You can't select libata drivers without the SCSI core. However, you can select libata drivers without the SCSI disk (sd) or the SCSI CD (sr) drivers. However, that's a legitimate configuration as you may have only hard disks, only CD drives, etc. and there would be no need to build the other module. This isn't a major problem for most standard configurations as those drivers are needed to handle things like USB and FireWire flash drives, external HDs/optical drives, etc. anyway.

What's not a legitimate configuration is libata drivers, no low level scsi drivers, no ide drivers and no sd,sr,sg drivers. Yet, that is the configuration the kernel currently gives you. How is that more correct than any of the 3 solutions I have suggested?

The point is there is nothing in the help section in libata to tell you that these "scsi" drivers are needed for disk / cdrom / generic device access in libata. Indeed, there is no obvious connection to the two.

Either configuration options need to be put in the libata directory that would just select the drivers (libata disk, cdrom, generic configuration options which would just enable the appropriate config variable, in other words in the menu config have two config directives which would enable the same drivers but be under different submenus to avoid confusion), or a short description in the help dialog to tell users that they have to enable those scsi drivers under the scsi section to use their drivers under the libata section.

It's not safe to assume people will have those drivers compiled because of usb or firewire or flash drives. Assuming that situation is 10 times more problematic than any possible argument against just selecting those scsi drivers automatically and letting the user deselect them as needed when they select a libata driver.


Personaly, I prefer a help dialog blurb explaining that the user has to enable certain scsi drivers to actually use their libata driven devices. That, at the very least, I believe is necessary and not asking much.

I've made patches before that impliment these trivial features in menuconfig. In the grand scheme of things this isn't that important to kernel development, but it's going to get more and more feedback as more people move to libata and eventually it will be fixed in some manner similar to those i've mentioned, I think it would just be better to do it now than wait until the mailing list is filled with end users asking why they need scsi when they obviously only have sata/ide and want to use libata.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/