[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#336688: yaird also add [permanent] ide-generic



On Wed, Nov 23, 2005 at 12:02:17AM +0100, Mau wrote:
> Frederik Schueler wrote:

> >On other boxes, notably amd74xx and piix based ones I have access to, 
> >this was not needed.
> >  
> >
> Probably it wasn't needed because in those setups the piix module was
> correctly detected as "needed for access to the root device": in my case
> piix is not strictly "needed", as my root partition resides on an hard
> disk connected to a HPT-370 pci add-on card.

> I think that the problem is only related with the mandatory presence of
> the generic module. Sorry about via troubles but, in my opinion, if a
> way to load an "emergency module" can't be found here (i.e., loading
> ide-generic as the last chance when the root device is not accessible
> after loading the specific module), we'd have to resolve the issues
> related with yaird. The via issue is probably a kernel related issue, as
> probably is the choice to mark a module as "permanent"... but yaird
> shouldn't add unnecessary modules to initrd or, if this is not possible,
> it should include the specific modules too.
> 
> Erik, you asked 'yaird -v' output: did you mean 'yaird -v --test
> [version]'? The output is about 163kB, should I attach it here?

Please don't.  Your & Frederik's input plus a bit of testing here give a fairly
complete picture of what happens.

Consider kernel 2.6.14, hdc connected over a via chipset, and two different
initial boot images.  One loads via first, the other binds ide-generic first.

If via82cxxx is loaded first, that will manage the disk, and /sys/block/hdc/device
is a symlink to ../../devices/pci...../ide1/1.0.  In this situation, if you run
yaird, it can recognise the pci device as something that needs a via driver:
run yaird again & you get an image that does not need ide-generic to boot.

If ide-generic is loaded first, that will manage the disk, and /sys/block/hdc/device
is a symlink to ../../devices/ide1/1.0.  Note the absence of pci in the devices
tree.  In this situation, if you run yaird, it has no way of knowing a via driver
would be any good.  However, since together with ide-disk we'll always load
ide-generic, the image generated by yaird will still boot.

I still need to check whether the same behaviour happens with 2.6.12.

The story then becomes "ide-generic posts misleading info in /sys,
so we need ide-generic to boot" and the idea that via82cxxx needs ide-generic
to boot is wrong, a misunderstanding based on my sloppy testing ...

The [permanent] stuff is probably not related.  If I'm correct it has to do with
via82cxxx being a driver that cannot cleanly deallocate all of its resources,
so it can't be removed; that's an interesting issue, but separate from the device
recognition stuff we have here.

An improvement to yaird would be to load ide-generic if we encounter
/sys/devices/ide1/1.0  (without pci) but not for devices like /sys/device/pci.../ide1/1.0.

This would mean ide-generic is not loaded for configurations with hpt+piix,
if yaird is being executed while the correct drivers are loaded.

That still leaves the issue of recognising those cases where ide-generic
is used while another driver could also have been used.  Figuring that one out is
a next step; for now I'll look at a patch to load ide-generic only if no other PCI
driver is found.

Regards,
Erik



Reply to: