Skip to contentSkip to conversation

2.6.30-rc8 Oops whilst booting

DISCUSSION Chris Clayton 6 participants 28 messages Jun 6, 2009 – Jun 8, 2009 SCSI

lore
Share & tools
lore
#0 lore raw

Hi,

After a git pull earlier today, I've had oopsen whilst booting the system twice today:
A photo of the oops message can be viewed at:

http://img231.imageshack.us/img231/8931/dscn0610.jpg

I haven't used the 2.6.30-rc kernels very much, so I don't have a clue when the problem was introduced. I have no problems at all with 2.6.29.4.

Happy to help solve this - just let me know what else I can do.

Thanks

Signature · 2 lines
No, Sir; there is nothing which has yet been contrived by man, by which so much happiness is 
produced as by a good tavern or inn - Doctor Samuel Johnson
#1 lore raw

Sorry, I've just realised what a poor report my earlier email was. I should also have said that the kernel has booted succesfully. At the time of reporting I had had two panics. I've just done another git pull, so the kernel is bang up to date with kernel.org, but after building and installing, a reboot resulted in another panic. The system then booted OK after switch off and on again.

Please cc me to any reply, I'm not subscribed.

Quoted 13 lines · Chris Clayton

Hi,

After a git pull earlier today, I've had oopsen whilst booting the system twice today: A photo of the oops message can be viewed at:

http://img231.imageshack.us/img231/8931/dscn0610.jpg

I haven't used the 2.6.30-rc kernels very much, so I don't have a clue when the problem was introduced. I have no problems at all with 2.6.29.4.

Happy to help solve this - just let me know what else I can do.

Thanks

Signature · 3 lines
No, Sir; there is nothing which has yet been contrived by man, by which
so much happiness is produced as by a good tavern or inn - Doctor Samuel
Johnson
#2 lore raw

Hello Chris,

Quoted 6 lines · Chris Clayton

Sorry, I've just realised what a poor report my earlier email was. I should also have said that the kernel has booted succesfully. At the time of reporting I had had two panics. I've just done another git pull, so the kernel is bang up to date with kernel.org, but after building and installing, a reboot resulted in another panic. The system then booted OK after switch off and on again.

Quoted 14 lines

Please cc me to any reply, I'm not subscribed.

Quoted 10 lines · Chris Clayton

Hi,

After a git pull earlier today, I've had oopsen whilst booting the system twice today: A photo of the oops message can be viewed at:

http://img231.imageshack.us/img231/8931/dscn0610.jpg

I haven't used the 2.6.30-rc kernels very much, so I don't have a clue when the problem was introduced. I have no problems at all with 2.6.29.4.

Can you provide your .config and dmesg of working and non-working kernel.

Thanks,
--
JSR

#3 lore raw

2009/6/7 Jaswinder Singh Rajput <[email protected]>:

Quoted 2 lines

Hello Chris,

Hello Jaswinder

and thanks for the reply.

Quoted 22 lines · Chris Clayton
Quoted 6 lines

Sorry, I've just realised what a poor report my earlier email was. I should also have said that the kernel has booted succesfully. At the time of reporting I had had two panics. I've just done another git pull, so the kernel is bang up to date with kernel.org, but after building and installing, a reboot resulted in another panic. The system then booted OK after switch off and on again.

Quoted 14 lines

Please cc me to any reply, I'm not subscribed.

Quoted 10 lines · Chris Clayton

Hi,

After a git pull earlier today, I've had oopsen whilst booting the system twice today: A photo of the oops message can be viewed at:

http://img231.imageshack.us/img231/8931/dscn0610.jpg

I haven't used the 2.6.30-rc kernels very much, so I don't have a clue when the problem was introduced. I have no problems at all with 2.6.29.4.

Quoted 8 lines

Can you provide your .config and dmesg of working and non-working kernel.

Thanks,
--
JSR

Sorry for delay in replying - I've been bisecting but ended up with:

commit 60a0cd528d761c50d3a0a49e8fbaf6a87e64254a
Merge: e25e092 8e35961
Author: Linus Torvalds <[email protected]>
Commit: Linus Torvalds <[email protected]>

Merge branch 'merge' of
git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
powerpc/mm: Fix broken MMU PID stealing on !SMP

which seems wrong given I have and x86 machine. I guess I didn't try enough reboots before reporting a kernel as good.

However, I did get two bad boots. The dmesg for a good boot and config are attached. As I don't get to user space on a bad boot, I can't provide a dmesg, but a photograph of the panic can be viewed at
http://img99.imageshack.us/my.php?image=dscn0617b.jpg

I'll start bisecting again, but allow may more reboots before deciding a kernel is good.

Let me know if I can provide any additional information.

Thanks

Signature · 3 lines
No, Sir; there is nothing which has yet been contrived by man, by
which so much happiness is produced as by a good tavern or inn -
Doctor Samuel Johnson
#4 lore raw
Quoted 46 lines · Chris Clayton

2009/6/7 Jaswinder Singh Rajput <[email protected]>:

Quoted 2 lines

Hello Chris,

Hello Jaswinder

and thanks for the reply.

Quoted 22 lines · Chris Clayton
Quoted 6 lines

Sorry, I've just realised what a poor report my earlier email was. I should also have said that the kernel has booted succesfully. At the time of reporting I had had two panics. I've just done another git pull, so the kernel is bang up to date with kernel.org, but after building and installing, a reboot resulted in another panic. The system then booted OK after switch off and on again.

Quoted 14 lines

Please cc me to any reply, I'm not subscribed.

Quoted 10 lines · Chris Clayton

Hi,

After a git pull earlier today, I've had oopsen whilst booting the system twice today: A photo of the oops message can be viewed at:

http://img231.imageshack.us/img231/8931/dscn0610.jpg

I haven't used the 2.6.30-rc kernels very much, so I don't have a clue when the problem was introduced. I have no problems at all with 2.6.29.4.

Quoted 8 lines

Can you provide your .config and dmesg of working and non-working kernel.

Thanks,
--
JSR

Sorry for delay in replying - I've been bisecting but ended up with:

commit 60a0cd528d761c50d3a0a49e8fbaf6a87e64254a
Merge: e25e092 8e35961
Author: Linus Torvalds <[email protected]>
Commit: Linus Torvalds <[email protected]>

Quoted 6 lines

Merge branch 'merge' of
git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
powerpc/mm: Fix broken MMU PID stealing on !SMP

Based on this I added some CCs.

Quoted 8 lines

which seems wrong given I have and x86 machine. I guess I didn't try enough reboots before reporting a kernel as good.

However, I did get two bad boots. The dmesg for a good boot and config are attached. As I don't get to user space on a bad boot, I can't provide a dmesg, but a photograph of the panic can be viewed at
http://img99.imageshack.us/my.php?image=dscn0617b.jpg

Error message will be in previous screen, can you do some page up and capture the output.

And .config is same for Good and Bad.

--
JSR

#5 lore raw
Quoted 3 lines · Jaswinder Singh Rajput
Quoted 2 lines · Chris Clayton

2009/6/7 Jaswinder Singh Ra

Quoted 1 line
Quoted 1 line
Quoted 1 line

http://img231.imageshack.us/img231/8931/dscn0610.jpg

This message says that it found a vfat filesystem on 8:3x (I cannot see what digit should be 'x'). That is probably sdc1 or sdc2. Maybe even sdc6 or sdc7.
However the vfat filesystem didn't have /sbin/init.

Quoted 1 line
Quoted 1 line

http://img99.imageshack.us/my.php?image=dscn0617b.jpg

This one says it couldn't find anything at 8,22, which I think should be sdb6.
It also shows that you have and sdc6, but sdb only goes up to sdb3.

So it seems that your disk drives have changed name - not a wholely unexpected event these days.

We now need answers to questions like:
- what device do you expect the root filesystem to be on
- how is the kernel being told this? Maybe it is hard coded into your initrd. Knowing which distro and what /etc/fstab says might help (though it wouldn't help me, I'm just about out of my depth at this point)
Maybe if you changed /etc/fstab to mount by uuid instead of hardcoding e.g. /etc/sdb3, and then run "mkinitramfs" or whatever, it might work.

Good luck,
NeilBrown

#6 lore raw

Hi Neil,

Thanks for the reply.

2009/6/7 NeilBrown <[email protected]>:

Quoted 20 lines · Jaswinder Singh Rajput
Quoted 3 lines · Chris Clayton
Quoted 2 lines

2009/6/7 Jaswinder Singh Ra

Quoted 1 line
Quoted 1 line
Quoted 1 line

http://img231.imageshack.us/img231/8931/dscn0610.jpg

This message says that it found a vfat filesystem on 8:3x (I cannot see what digit should be 'x').  That is probably sdc1 or sdc2. Maybe even sdc6 or sdc7.
However the vfat filesystem didn't have /sbin/init.

Quoted 1 line
Quoted 1 line

http://img99.imageshack.us/my.php?image=dscn0617b.jpg

This one says it couldn't find anything at 8,22, which I think should be sdb6.
It also shows that you have and sdc6, but sdb only goes up to sdb3.

So it seems that your disk drives have changed name - not a wholely unexpected event these days.

Quoted 9 lines

We now need answers to questions like:
 - what device do you expect the root filesystem to be on
 - how is the kernel being told this?  Maybe it is hard coded into your initrd.  Knowing which distro and what /etc/fstab says might help (though it wouldn't help me, I'm just about out of my depth at this point)
Maybe if you changed /etc/fstab to mount by uuid instead of hardcoding e.g. /etc/sdb3, and then run "mkinitramfs" or whatever, it might work.

Yes, I've just been looking at the photographs of the panics again and I've noticed that two of my discs are being detected in the "wrong order". There are three HDDS. The first, /dev/sda, is the master on the first IDE port and contains sda1..sda7. The second, normally /dev/sdb, is the slave on that port and contains sdb1..sdb6. The third, normally /dev/sdc, is attached to the first SATA port and contains sdc1..sdc3. The second photograph I posted shows that sdb and sdc have been reversed. The first partition on the disc that is normally /dev/sdb does indeed have a FAT32 filesystem in the first partition.

By the way, I should have said that in between the panics that the two photographs show, I copied contents of /dev/sdc1, which I normally boot from, to /dev/sdb6, so that I minimised the risk to sdc1 in the reboot festival that bisecting would involve. I also, of course, changed the name of the root partition that is passed to the kernel by GRUB and amended /etc/fstab on /dev/sdb6. That's why the partitions shown in the photographs seem inconsistent. Sorry I forgot to mention that - I really shouldn't do these things late at night :-).

As I indicate above, when booting the partition I have set up to do this bisecting, I expect the root filesystem to be on /dev/hdb6. As I also indicate, this information is passed to the kernel through GRUB's /boot/grub/menu.lst. The kernel is configured specifically for my system and the drivers needed to boot the system are built in to the kernel, so I don't use an initrd. IIRC, that's the way Slackware is installed today, except, of course, it's a big fat kernel with all drivers needed to boot any system built in. I could be wrong on that though, it's a while since I installed

As to the distro, it used to be (the now defunct) Peanut Linux, which was derived from Slackware. However, it's years since I installed it and I have upgraded just about everything in user space and added many other things (udev, dbus...). I don't think that makes any difference here, though, because we don't get as far as user space. On a successful boot, the system is stable and runs trouble-free for several hours a day, every day.

Hope this helps.

I'm a good way through bisecting again and this time the system has to boot without a panic 100 times before I mark a kernel as good. I'll post the result later.

Thanks

Quoted 4 lines

Good luck,
NeilBrown

Signature · 7 lines
No, Sir; there is nothing which has yet been contrived by man, by which
so much happiness is produced as by a good tavern or inn - Doctor Samuel
Johnson
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#7 lore raw

2009/6/8 Chris Clayton <[email protected]>:

Quoted 73 lines

Hi Neil,

Thanks for the reply.

2009/6/7 NeilBrown <[email protected]>:

Quoted 20 lines · Jaswinder Singh Rajput
Quoted 3 lines · Chris Clayton
Quoted 2 lines

2009/6/7 Jaswinder Singh Ra

Quoted 1 line
Quoted 1 line
Quoted 1 line

http://img231.imageshack.us/img231/8931/dscn0610.jpg

This message says that it found a vfat filesystem on 8:3x (I cannot see what digit should be 'x').  That is probably sdc1 or sdc2. Maybe even sdc6 or sdc7.
However the vfat filesystem didn't have /sbin/init.

Quoted 1 line
Quoted 1 line

http://img99.imageshack.us/my.php?image=dscn0617b.jpg

This one says it couldn't find anything at 8,22, which I think should be sdb6.
It also shows that you have and sdc6, but sdb only goes up to sdb3.

So it seems that your disk drives have changed name - not a wholely unexpected event these days.

Quoted 9 lines

We now need answers to questions like:
 - what device do you expect the root filesystem to be on
 - how is the kernel being told this?  Maybe it is hard coded into your initrd.  Knowing which distro and what /etc/fstab says might help (though it wouldn't help me, I'm just about out of my depth at this point)
Maybe if you changed /etc/fstab to mount by uuid instead of hardcoding e.g. /etc/sdb3, and then run "mkinitramfs" or whatever, it might work.

Yes, I've just been looking at the photographs of the panics again and I've noticed that two of my discs are being detected in the "wrong order". There are three HDDS. The first, /dev/sda, is the master on the first IDE port and contains sda1..sda7. The second, normally /dev/sdb, is the slave on that port and contains sdb1..sdb6. The third, normally /dev/sdc, is attached to the first SATA port and contains sdc1..sdc3. The second photograph I posted shows that sdb and sdc have been reversed. The first partition on the disc that is normally /dev/sdb does indeed have a FAT32 filesystem in the first partition.

By the way, I should have said that in between the panics that the two photographs show, I copied contents of /dev/sdc1, which I normally boot from, to /dev/sdb6, so that I minimised the risk to sdc1 in the reboot festival that bisecting would involve. I also, of course, changed the name of the root partition that is passed to the kernel by GRUB and amended /etc/fstab on /dev/sdb6. That's why the partitions shown in the photographs seem inconsistent. Sorry I forgot to mention that - I really shouldn't do these things late at night :-).

As I indicate above, when booting the partition I have set up to do this bisecting,  I expect the root filesystem to be on /dev/hdb6. As I also indicate, this information is passed to the kernel through GRUB's /boot/grub/menu.lst. The kernel is configured specifically for my system and the drivers needed to boot the system are built in to the kernel, so I don't use an initrd. IIRC, that's the way Slackware is installed today, except, of course, it's a big fat kernel with all drivers needed to boot any system built in. I could be wrong on that though, it's a while since I installed

As to the distro, it used to be (the now defunct) Peanut Linux, which was derived from Slackware. However, it's years since I installed it and I have upgraded just about everything in user space and added many other things (udev, dbus...). I don't think that makes any difference here, though, because we don't get as far as user space. On a successful boot, the system is stable and runs trouble-free for several hours a day, every day.

Quoted 6 lines

Hope this helps.

I'm a good way through bisecting again and this time the system has to boot without a panic 100 times before I mark a kernel as good. I'll post the result later.

Finally got to the end of the bisection/reboot festival. I ended up here:

[chris:~/kernel/linux-2.6]$ git bisect good
d5a877e8dd409d8c702986d06485c374b705d340 is first bad commit
commit d5a877e8dd409d8c702986d06485c374b705d340
Author: James Bottomley <[email protected]>
Date:   Sun May 24 13:03:43 2009 -0700

async: make sure independent async domains can't accidentally entangle

The problem occurs when async_synchronize_full_domain() is called when the async_pending list is not empty. This will cause lowest_running() to return the cookie of the first entry on the async_pending list, which might be nothing at all to do with the domain being asked for and thus
cause the domain synchronization to wait for an unrelated domain. This
can cause a deadlock if domain synchronization is used from one domain to wait for another.

Fix by running over the async_pending list to see if any pending items actually belong to our domain (and return their cookies if they do).

:040000 040000 fab1e0c06572605a7015061db4a7e0a77c04fa91
34252dbb7fed3942f5952c25639564bbd77357da M kernel

I can't claim to know what the change actually means, but the change seems to be a much better candidate than my previous bisection outcome where I required only 20 "panicless" boots to regard the kernel as good. As I said earlier today, this time I required 100 such boots.

I'll revert that change, give the new kernel the reboot treatment :-) and report back later.

Chris

Quoted 15 lines

Thanks

Quoted 4 lines

Good luck,
NeilBrown

--
No, Sir; there is nothing which has yet been contrived by man, by which so much happiness is produced as by a good tavern or inn - Doctor Samuel Johnson

Signature · 7 lines
No, Sir; there is nothing which has yet been contrived by man, by which
so much happiness is produced as by a good tavern or inn - Doctor Samuel
Johnson
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#8 lore raw

Hello Chris,

Quoted 109 lines · Chris Clayton

2009/6/8 Chris Clayton <[email protected]>:

Quoted 73 lines

Hi Neil,

Thanks for the reply.

2009/6/7 NeilBrown <[email protected]>:

Quoted 20 lines · Jaswinder Singh Rajput
Quoted 3 lines · Chris Clayton
Quoted 2 lines

2009/6/7 Jaswinder Singh Ra

Quoted 1 line
Quoted 1 line
Quoted 1 line

http://img231.imageshack.us/img231/8931/dscn0610.jpg

This message says that it found a vfat filesystem on 8:3x (I cannot see what digit should be 'x'). That is probably sdc1 or sdc2. Maybe even sdc6 or sdc7.
However the vfat filesystem didn't have /sbin/init.

Quoted 1 line
Quoted 1 line

http://img99.imageshack.us/my.php?image=dscn0617b.jpg

This one says it couldn't find anything at 8,22, which I think should be sdb6.
It also shows that you have and sdc6, but sdb only goes up to sdb3.

So it seems that your disk drives have changed name - not a wholely unexpected event these days.

Quoted 9 lines

We now need answers to questions like:
- what device do you expect the root filesystem to be on
- how is the kernel being told this? Maybe it is hard coded into your initrd. Knowing which distro and what /etc/fstab says might help (though it wouldn't help me, I'm just about out of my depth at this point)
Maybe if you changed /etc/fstab to mount by uuid instead of hardcoding e.g. /etc/sdb3, and then run "mkinitramfs" or whatever, it might work.

Yes, I've just been looking at the photographs of the panics again and I've noticed that two of my discs are being detected in the "wrong order". There are three HDDS. The first, /dev/sda, is the master on the first IDE port and contains sda1..sda7. The second, normally /dev/sdb, is the slave on that port and contains sdb1..sdb6. The third, normally /dev/sdc, is attached to the first SATA port and contains sdc1..sdc3. The second photograph I posted shows that sdb and sdc have been reversed. The first partition on the disc that is normally /dev/sdb does indeed have a FAT32 filesystem in the first partition.

By the way, I should have said that in between the panics that the two photographs show, I copied contents of /dev/sdc1, which I normally boot from, to /dev/sdb6, so that I minimised the risk to sdc1 in the reboot festival that bisecting would involve. I also, of course, changed the name of the root partition that is passed to the kernel by GRUB and amended /etc/fstab on /dev/sdb6. That's why the partitions shown in the photographs seem inconsistent. Sorry I forgot to mention that - I really shouldn't do these things late at night :-).

As I indicate above, when booting the partition I have set up to do this bisecting, I expect the root filesystem to be on /dev/hdb6. As I also indicate, this information is passed to the kernel through GRUB's /boot/grub/menu.lst. The kernel is configured specifically for my system and the drivers needed to boot the system are built in to the kernel, so I don't use an initrd. IIRC, that's the way Slackware is installed today, except, of course, it's a big fat kernel with all drivers needed to boot any system built in. I could be wrong on that though, it's a while since I installed

As to the distro, it used to be (the now defunct) Peanut Linux, which was derived from Slackware. However, it's years since I installed it and I have upgraded just about everything in user space and added many other things (udev, dbus...). I don't think that makes any difference here, though, because we don't get as far as user space. On a successful boot, the system is stable and runs trouble-free for several hours a day, every day.

Quoted 6 lines

Hope this helps.

I'm a good way through bisecting again and this time the system has to boot without a panic 100 times before I mark a kernel as good. I'll post the result later.

Finally got to the end of the bisection/reboot festival. I ended up here:

[chris:~/kernel/linux-2.6]$ git bisect good
d5a877e8dd409d8c702986d06485c374b705d340 is first bad commit
commit d5a877e8dd409d8c702986d06485c374b705d340
Author: James Bottomley <[email protected]>
Date:   Sun May 24 13:03:43 2009 -0700

async: make sure independent async domains can't accidentally entangle

The problem occurs when async_synchronize_full_domain() is called when the async_pending list is not empty. This will cause lowest_running() to return the cookie of the first entry on the async_pending list, which might be nothing at all to do with the domain being asked for and thus
cause the domain synchronization to wait for an unrelated domain. This
can cause a deadlock if domain synchronization is used from one domain to wait for another.

Fix by running over the async_pending list to see if any pending items actually belong to our domain (and return their cookies if they do).

:040000 040000 fab1e0c06572605a7015061db4a7e0a77c04fa91
34252dbb7fed3942f5952c25639564bbd77357da M kernel

Quoted 8 lines

I can't claim to know what the change actually means, but the change seems to be a much better candidate than my previous bisection outcome where I required only 20 "panicless" boots to regard the kernel as good. As I said earlier today, this time I required 100 such boots.

I'll revert that change, give the new kernel the reboot treatment :-) and report back later.

Good work. Please also share this info with other signed-off members, So adding CC.

Thanks,
--
JSR

#9 lore raw

2009/6/8 Jaswinder Singh Rajput <[email protected]>:

Quoted 117 lines

Hello Chris,

Quoted 114 lines · Chris Clayton

2009/6/8 Chris Clayton <[email protected]>:

Quoted 73 lines

Hi Neil,

Thanks for the reply.

2009/6/7 NeilBrown <[email protected]>:

Quoted 20 lines · Jaswinder Singh Rajput
Quoted 3 lines · Chris Clayton
Quoted 2 lines

2009/6/7 Jaswinder Singh Ra

Quoted 1 line
Quoted 1 line
Quoted 1 line

http://img231.imageshack.us/img231/8931/dscn0610.jpg

This message says that it found a vfat filesystem on 8:3x (I cannot see what digit should be 'x').  That is probably sdc1 or sdc2. Maybe even sdc6 or sdc7.
However the vfat filesystem didn't have /sbin/init.

Quoted 1 line
Quoted 1 line

http://img99.imageshack.us/my.php?image=dscn0617b.jpg

This one says it couldn't find anything at 8,22, which I think should be sdb6.
It also shows that you have and sdc6, but sdb only goes up to sdb3.

So it seems that your disk drives have changed name - not a wholely unexpected event these days.

Quoted 9 lines

We now need answers to questions like:
 - what device do you expect the root filesystem to be on
 - how is the kernel being told this?  Maybe it is hard coded into your initrd.  Knowing which distro and what /etc/fstab says might help (though it wouldn't help me, I'm just about out of my depth at this point)
Maybe if you changed /etc/fstab to mount by uuid instead of hardcoding e.g. /etc/sdb3, and then run "mkinitramfs" or whatever, it might work.

Yes, I've just been looking at the photographs of the panics again and I've noticed that two of my discs are being detected in the "wrong order". There are three HDDS. The first, /dev/sda, is the master on the first IDE port and contains sda1..sda7. The second, normally /dev/sdb, is the slave on that port and contains sdb1..sdb6. The third, normally /dev/sdc, is attached to the first SATA port and contains sdc1..sdc3. The second photograph I posted shows that sdb and sdc have been reversed. The first partition on the disc that is normally /dev/sdb does indeed have a FAT32 filesystem in the first partition.

By the way, I should have said that in between the panics that the two photographs show, I copied contents of /dev/sdc1, which I normally boot from, to /dev/sdb6, so that I minimised the risk to sdc1 in the reboot festival that bisecting would involve. I also, of course, changed the name of the root partition that is passed to the kernel by GRUB and amended /etc/fstab on /dev/sdb6. That's why the partitions shown in the photographs seem inconsistent. Sorry I forgot to mention that - I really shouldn't do these things late at night :-).

As I indicate above, when booting the partition I have set up to do this bisecting,  I expect the root filesystem to be on /dev/hdb6. As I also indicate, this information is passed to the kernel through GRUB's /boot/grub/menu.lst. The kernel is configured specifically for my system and the drivers needed to boot the system are built in to the kernel, so I don't use an initrd. IIRC, that's the way Slackware is installed today, except, of course, it's a big fat kernel with all drivers needed to boot any system built in. I could be wrong on that though, it's a while since I installed

As to the distro, it used to be (the now defunct) Peanut Linux, which was derived from Slackware. However, it's years since I installed it and I have upgraded just about everything in user space and added many other things (udev, dbus...). I don't think that makes any difference here, though, because we don't get as far as user space. On a successful boot, the system is stable and runs trouble-free for several hours a day, every day.

Quoted 6 lines

Hope this helps.

I'm a good way through bisecting again and this time the system has to boot without a panic 100 times before I mark a kernel as good. I'll post the result later.

Finally got to the end of the bisection/reboot festival. I ended up here:

[chris:~/kernel/linux-2.6]$ git bisect good
d5a877e8dd409d8c702986d06485c374b705d340 is first bad commit
commit d5a877e8dd409d8c702986d06485c374b705d340
Author: James Bottomley <[email protected]>
Date:   Sun May 24 13:03:43 2009 -0700

    async: make sure independent async domains can't accidentally entangle

    The problem occurs when async_synchronize_full_domain() is called when the async_pending list is not empty.  This will cause lowest_running() to return the cookie of the first entry on the async_pending list, which might be nothing at all to do with the domain being asked for and thus cause the domain synchronization to wait for an unrelated domain.   This can cause a deadlock if domain synchronization is used from one domain to wait for another.

    Fix by running over the async_pending list to see if any pending items actually belong to our domain (and return their cookies if they do).

:040000 040000 fab1e0c06572605a7015061db4a7e0a77c04fa91 34252dbb7fed3942f5952c25639564bbd77357da M      kernel

I can't claim to know what the change actually means, but the change seems to be a much better candidate than my previous bisection outcome where I required only 20 "panicless" boots to regard the kernel as good. As I said earlier today, this time I required 100 such boots.

Quoted 7 lines
Quoted 3 lines

I'll revert that change, give the new kernel the reboot treatment :-) and report back later.

Good work. Please also share this info with other signed-off members, So adding CC.

OK. I reversed that change and built and installed the kernel. It has withstood 100 reboots without a panic. Additionally, I pulled the latest changes (that will be rc8-git5, I think) from kernel.org, reversed the change to that kernel and built and installed it. That too withstood 100 reboots without a panic.

Let me know if there's anything else I can do to help fix this.

Chris

Quoted 5 lines

Thanks,
--
JSR

Signature · 7 lines
No, Sir; there is nothing which has yet been contrived by man, by
which so much happiness is produced as by a good tavern or inn -
Doctor Samuel Johnson
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#10 lore raw
Quoted 8 lines · Chris Clayton

OK. I reversed that change and built and installed the kernel. It has withstood 100 reboots without a panic. Additionally, I pulled the latest changes (that will be rc8-git5, I think) from kernel.org, reversed the change to that kernel and built and installed it. That too withstood 100 reboots without a panic.

Let me know if there's anything else I can do to help fix this.

That's already pretty convincing.

James, Arjan? The original oops message is here (a jpg screen capture, unable to open initial console):

	http://lkml.org/lkml/2009/6/6/142

and it's this bug entry:

	Bug-Entry       : http://bugzilla.kernel.org/show_bug.cgi?id=13474
	Subject         : Oops whilst booting
	Submitter       : Chris Clayton <[email protected]>
	Date            : 2009-06-06 18:59 (2 days old)
	References      : http://marc.info/?l=linux-kernel&m=124431487924254&w=4

and now bisected down to

Quoted 5 lines
Quoted 5 lines

commit d5a877e8dd409d8c702986d06485c374b705d340
Author: James Bottomley <[email protected]>
Date:   Sun May 24 13:03:43 2009 -0700

    async: make sure independent async domains can't accidentally entangle

please advice. Otherwise I'll have to revert.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

maintainer
#11 lore raw
Quoted 28 lines · Linus Torvalds
Quoted 8 lines · Chris Clayton

OK. I reversed that change and built and installed the kernel. It has withstood 100 reboots without a panic. Additionally, I pulled the latest changes (that will be rc8-git5, I think) from kernel.org, reversed the change to that kernel and built and installed it. That too withstood 100 reboots without a panic.

Let me know if there's anything else I can do to help fix this.

That's already pretty convincing.

James, Arjan? The original oops message is here (a jpg screen capture, unable to open initial console):

	http://lkml.org/lkml/2009/6/6/142

and it's this bug entry:

	Bug-Entry       : http://bugzilla.kernel.org/show_bug.cgi?id=13474
	Subject         : Oops whilst booting
	Submitter       : Chris Clayton <[email protected]>
	Date            : 2009-06-06 18:59 (2 days old)
	References      : http://marc.info/?l=linux-kernel&m=124431487924254&w=4

and now bisected down to

Quoted 7 lines
Quoted 5 lines
Quoted 5 lines

commit d5a877e8dd409d8c702986d06485c374b705d340

Author: James Bottomley <[email protected]>
Date:   Sun May 24 13:03:43 2009 -0700

async: make sure independent async domains can't accidentally entangle

please advice. Otherwise I'll have to revert.

The root cause is a reordering of the devices caused by the async code.

I suspect it's a bug in async that was obscured by the old behaviour of async_synchronize.. (or it's a bug in the new code) ... how long do I have to find out which?

James

#12 lore raw
Quoted 35 lines · James Bottomley
Quoted 34 lines · Linus Torvalds
Quoted 8 lines · Chris Clayton

OK. I reversed that change and built and installed the kernel. It has withstood 100 reboots without a panic. Additionally, I pulled the latest changes (that will be rc8-git5, I think) from kernel.org, reversed the change to that kernel and built and installed it. That too withstood 100 reboots without a panic.

Let me know if there's anything else I can do to help fix this.

That's already pretty convincing.

James, Arjan? The original oops message is here (a jpg screen capture, unable to open initial console):

	http://lkml.org/lkml/2009/6/6/142

and it's this bug entry:

	Bug-Entry       : http://bugzilla.kernel.org/show_bug.cgi?id=13474
	Subject         : Oops whilst booting
	Submitter       : Chris Clayton <[email protected]>
	Date            : 2009-06-06 18:59 (2 days old)
	References      : http://marc.info/?l=linux-kernel&m=124431487924254&w=4

and now bisected down to

Quoted 5 lines
Quoted 5 lines

commit d5a877e8dd409d8c702986d06485c374b705d340

Author: James Bottomley <[email protected]>
Date:   Sun May 24 13:03:43 2009 -0700

async: make sure independent async domains can't accidentally entangle

Quoted 8 lines
Quoted 1 line

please advice. Otherwise I'll have to revert.

The root cause is a reordering of the devices caused by the async code.

I suspect it's a bug in async that was obscured by the old behaviour of async_synchronize.. (or it's a bug in the new code) ... how long do I have to find out which?

But reverting your patch Or if we return like this also fix chris problem :

kernel/async.c +3 -5
index 94dd36f..3b492cb 100644
@@ -96,15 +96,13 @@ static async_cookie_t  __lowest_in_progress(struct list_head *running)
 	if (!list_empty(running)) {
 		entry = list_first_entry(running,
 			struct async_entry, list);
-		ret = entry->cookie;
+		return entry->cookie;
 	}
 
 	if (!list_empty(&async_pending)) {
 		list_for_each_entry(entry, &async_pending, list)
-			if (entry->running == running) {
-				ret = entry->cookie;
-				break;
-			}
+			if (entry->running == running)
+				return entry->cookie;
 	}
 
 	return ret;
#13 lore raw

2009/6/8 Jaswinder Singh Rajput <[email protected]>:

Quoted 19 lines

But reverting your patch Or if we return like this also fix chris problem :

kernel/async.c +1 -1
index 94dd36f..3b492cb 100644
@@ -96,15 +96,13 @@ static async_cookie_t  __lowest_in_progress(struct list_head *running)
        if (!list_empty(running)) {
                entry = list_first_entry(running,
                        struct async_entry, list);
-               ret = entry->cookie;
+               return entry->cookie;
        }
 
        if (!list_empty(&async_pending)) {

kernel/async.c static async_cookie_t  __lowest_in_progress(struct list_head *running) · line 108

Quoted 10 lines
kernel/async.c +2 -4
                list_for_each_entry(entry, &async_pending, list)
-                       if (entry->running == running) {
-                               ret = entry->cookie;
-                               break;
-                       }
+                       if (entry->running == running)
+                               return entry->cookie;
        }
 
        return ret;

I can confirm that a kernel built with Jaswinder's patch applied survived 200 boots without a panic.

Chris

Signature · 7 lines
No, Sir; there is nothing which has yet been contrived by man, by which
so much happiness is produced as by a good tavern or inn - Doctor Samuel
Johnson
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#14 lore raw
Quoted 3 lines · Chris Clayton

I can confirm that a kernel built with Jaswinder's patch applied survived 200 boots without a panic.

Ok, goodie.

Can you confirm that the further cleanup (removing the pointless 'ret' variable and the useless empty checking around 'for_each_entry') also works for you?

Linus

---
 kernel/async.c |   15 +++++----------
 1 files changed, 5 insertions(+), 10 deletions(-)
kernel/async.c +5 -10
index 5054030..27235f5 100644
@@ -92,23 +92,18 @@ extern int initcall_debug;
 static async_cookie_t  __lowest_in_progress(struct list_head *running)
 {
 	struct async_entry *entry;
-	async_cookie_t ret = next_cookie; /* begin with "infinity" value */
 
 	if (!list_empty(running)) {
 		entry = list_first_entry(running,
 			struct async_entry, list);
-		ret = entry->cookie;
+		return entry->cookie;
 	}
 
-	if (!list_empty(&async_pending)) {
-		list_for_each_entry(entry, &async_pending, list)
-			if (entry->running == running) {
-				ret = entry->cookie;
-				break;
-			}
-	}
+	list_for_each_entry(entry, &async_pending, list)
+		if (entry->running == running)
+			return entry->cookie;
 
-	return ret;
+	return next_cookie;	/* "infinity" value */
 }
 
 static async_cookie_t  lowest_in_progress(struct list_head *running)
#15 lore raw

Linus,

2009/6/8 Linus Torvalds <[email protected]>:

Quoted 43 lines · Chris Clayton
Quoted 3 lines

I can confirm that a kernel built with Jaswinder's patch applied survived 200 boots without a panic.

Ok, goodie.

Can you confirm that the further cleanup (removing the pointless 'ret' variable and the useless empty checking around 'for_each_entry') also works for you?

               Linus

---
 kernel/async.c |   15 +++++----------

 1 files changed, 5 insertions(+), 10 deletions(-)
kernel/async.c +1 -8
index 5054030..27235f5 100644
@@ -92,23 +92,18 @@ extern int initcall_debug;
  static async_cookie_t  __lowest_in_progress(struct list_head *running)
  {
        struct async_entry *entry;
-       async_cookie_t ret = next_cookie; /* begin with "infinity" value */
 
        if (!list_empty(running)) {
                entry = list_first_entry(running,
                        struct async_entry, list);
-               ret = entry->cookie;
+               return entry->cookie;
        }
 
-       if (!list_empty(&async_pending)) {
-               list_for_each_entry(entry, &async_pending, list)
-                       if (entry->running == running) {
-                               ret = entry->cookie;
-                               break;
-                       }

kernel/async.c extern int initcall_debug; · line 109

Quoted 10 lines
kernel/async.c +4 -2
-       }
+       list_for_each_entry(entry, &async_pending, list)
+               if (entry->running == running)
+                       return entry->cookie;
 
-       return ret;
+       return next_cookie;     /* "infinity" value */
  }
 
  static async_cookie_t  lowest_in_progress(struct list_head *running)

Yes, rc8-git5 with your patch applied has booted 100 times without a panic.

May I add that the people who thought of, designed and implemented kexec should have a large and shiny medals pinned to their chests. Well over 1000 kernel boots have been executed on my PC today and, if I hadn't been able to do that automatically with a few lines of script at the head of /etc/rc.d/rc.local, I would have been bleary-eyed before noon :-)

Chris

Signature · 7 lines
No, Sir; there is nothing which has yet been contrived by man, by
which so much happiness is produced as by a good tavern or inn -
Doctor Samuel Johnson
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
author Tested-by
#16 lore raw
Quoted 48 lines · Chris Clayton

Linus,

2009/6/8 Linus Torvalds <[email protected]>:

Quoted 45 lines · Chris Clayton
Quoted 2 lines

I can confirm that a kernel built with Jaswinder's patch applied survived 200 boots without a panic.

Ok, goodie.

Can you confirm that the further cleanup (removing the pointless 'ret' variable and the useless empty checking around 'for_each_entry') also works for you?

               Linus

---
 kernel/async.c |   15 +++++----------

 1 files changed, 5 insertions(+), 10 deletions(-)
kernel/async.c +4 -9
index 5054030..27235f5 100644
@@ -92,23 +92,18 @@ extern int initcall_debug;
  static async_cookie_t  __lowest_in_progress(struct list_head *running)
  {
        struct async_entry *entry;
-       async_cookie_t ret = next_cookie; /* begin with "infinity" value
 */
 
        if (!list_empty(running)) {
                entry = list_first_entry(running,
                        struct async_entry, list);
-               ret = entry->cookie;
+               return entry->cookie;
        }
 
-       if (!list_empty(&async_pending)) {
-               list_for_each_entry(entry, &async_pending, list)
-                       if (entry->running == running) {
-                               ret = entry->cookie;
-                               break;
-                       }
-       }
+       list_for_each_entry(entry, &async_pending, list)
+               if (entry->running == running)
+                       return entry->cookie;
 
Quoted 8 lines
Quoted 5 lines
kernel/async.c +1 -1
-       return ret;
+       return next_cookie;     /* "infinity" value */
  }
 

 static async_cookie_t  lowest_in_progress(struct list_head *running)

Yes, rc8-git5 with your patch applied has booted 100 times without a panic.

...so I should have added:

Quoted 8 lines

May I add that the people who thought of, designed and implemented kexec should have a large and shiny medals pinned to their chests. Well over 1000 kernel boots have been executed on my PC today and, if I hadn't been able to do that automatically with a few lines of script at the head of /etc/rc.d/rc.local, I would have been bleary-eyed before noon :-)

Chris

Signature · 7 lines
No, Sir; there is nothing which has yet been contrived by man, by which
so much happiness is produced as by a good tavern or inn - Doctor Samuel
Johnson
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#17 lore raw
In reply to James Bottomley
Quoted 2 lines · James Bottomley

The root cause is a reordering of the devices caused by the async code.

That's NULL information.

OF COURSE the root cause is the async code. We know that. We're looking for the specifics.

In particular, before that commit, at most you will wait for too _much_. In other words, it's a "good" wait.

Your commit caused it to wait for less, and that then showed a bug. Not all that surprising - it's now not waiting enough.

You tried to avoid a deadlock situation of waiting for too much, but you avoided the deadlock by now waiting for too little.

I also think that your code is simply buggy. As far as I can tell, int he case of having both running and pending events, you'll always pick the pending cookie. But it's the _running_ cookie that has the lower event number, isn't it?

I dunno. It all looks very fishy to me.

Linus

#18 lore raw
Quoted 10 lines · Linus Torvalds
Quoted 1 line · James Bottomley

The root cause is a reordering of the devices caused by the async code.

That's NULL information.

OF COURSE the root cause is the async code. We know that. We're looking for the specifics.

In particular, before that commit, at most you will wait for too _much_. In other words, it's a "good" wait.

Quoted 8 lines

Your commit caused it to wait for less, and that then showed a bug. Not all that surprising - it's now not waiting enough.

You tried to avoid a deadlock situation of waiting for too much, but you avoided the deadlock by now waiting for too little.

I also think that your code is simply buggy. As far as I can tell, int he case of having both running and pending events, you'll always pick the pending cookie. But it's the _running_ cookie that has the lower event number, isn't it?

I dunno. It all looks very fishy to me.

that's likely my screwup, not james'

the patch looks ok to me, it indeed should fix the problem. (and is simpler than the idea I had around using min() )

maintainer
#19 lore raw
In reply to Linus Torvalds
Quoted 7 lines · Linus Torvalds
Quoted 2 lines · James Bottomley

The root cause is a reordering of the devices caused by the async code.

That's NULL information.

Quoted 8 lines

OF COURSE the root cause is the async code. We know that. We're looking for the specifics.

In particular, before that commit, at most you will wait for too _much_. In other words, it's a "good" wait.

Your commit caused it to wait for less, and that then showed a bug. Not all that surprising - it's now not waiting enough.

right ... my question was whether this exposed an existing bug that was hidden by the waiting too much. Actually, I audited all the async code and that's impossible: we don't actually have any async domains at all (except for the spurious superblock s_async_list, which never gets anything added to its runqueue), so it must be a bug in the code.

Quoted 7 lines

You tried to avoid a deadlock situation of waiting for too much, but you avoided the deadlock by now waiting for too little.

I also think that your code is simply buggy. As far as I can tell, int he case of having both running and pending events, you'll always pick the pending cookie. But it's the _running_ cookie that has the lower event number, isn't it?

Yes, see later fix. Assuming we get confirmation from the reporter, we should be good to go.

Quoted 1 line

I dunno. It all looks very fishy to me.

Well, the other option is to revert the fix ... since there is no other separated domain, there's nothing really to fix ... the original code that showed the problem was a SCSI feature tree conversion of our current async scanning code to the async infrastructure which used a separate domain.

James

maintainer
#20 lore raw
In reply to Linus Torvalds
Quoted 28 lines · Linus Torvalds
Quoted 8 lines · Chris Clayton

OK. I reversed that change and built and installed the kernel. It has withstood 100 reboots without a panic. Additionally, I pulled the latest changes (that will be rc8-git5, I think) from kernel.org, reversed the change to that kernel and built and installed it. That too withstood 100 reboots without a panic.

Let me know if there's anything else I can do to help fix this.

That's already pretty convincing.

James, Arjan? The original oops message is here (a jpg screen capture, unable to open initial console):

	http://lkml.org/lkml/2009/6/6/142

and it's this bug entry:

	Bug-Entry       : http://bugzilla.kernel.org/show_bug.cgi?id=13474
	Subject         : Oops whilst booting
	Submitter       : Chris Clayton <[email protected]>
	Date            : 2009-06-06 18:59 (2 days old)
	References      : http://marc.info/?l=linux-kernel&m=124431487924254&w=4

and now bisected down to

Quoted 7 lines
Quoted 5 lines
Quoted 5 lines

commit d5a877e8dd409d8c702986d06485c374b705d340

Author: James Bottomley <[email protected]>
Date:   Sun May 24 13:03:43 2009 -0700

async: make sure independent async domains can't accidentally entangle

please advice. Otherwise I'll have to revert.

I think it's a bug in the async code. It's providing cookies too high because it doesn't stop after it finds a running entry.

Can we try this as the fix?

James

---

kernel/async.c +1 -1
index 5054030..e4909ee 100644
@@ -97,7 +97,7 @@ static async_cookie_t  __lowest_in_progress(struct list_head *running)
 	if (!list_empty(running)) {
 		entry = list_first_entry(running,
 			struct async_entry, list);
-		ret = entry->cookie;
+		return entry->cookie;
 	}
 
 	if (!list_empty(&async_pending)) {
#21 lore raw
Quoted 5 lines · James Bottomley

I think it's a bug in the async code. It's providing cookies too high because it doesn't stop after it finds a running entry.

Can we try this as the fix?

Ok, this looks likely.

That said, why doesn't that function look like this?

Linus

---
 kernel/async.c |   15 +++++----------
 1 files changed, 5 insertions(+), 10 deletions(-)
kernel/async.c +5 -10
index 5054030..27235f5 100644
@@ -92,23 +92,18 @@ extern int initcall_debug;
 static async_cookie_t  __lowest_in_progress(struct list_head *running)
 {
 	struct async_entry *entry;
-	async_cookie_t ret = next_cookie; /* begin with "infinity" value */
 
 	if (!list_empty(running)) {
 		entry = list_first_entry(running,
 			struct async_entry, list);
-		ret = entry->cookie;
+		return entry->cookie;
 	}
 
-	if (!list_empty(&async_pending)) {
-		list_for_each_entry(entry, &async_pending, list)
-			if (entry->running == running) {
-				ret = entry->cookie;
-				break;
-			}
-	}
+	list_for_each_entry(entry, &async_pending, list)
+		if (entry->running == running)
+			return entry->cookie;
 
-	return ret;
+	return next_cookie;	/* "infinity" value */
 }
 
 static async_cookie_t  lowest_in_progress(struct list_head *running)
maintainer
#22 lore raw
Quoted 11 lines · Linus Torvalds
Quoted 5 lines · James Bottomley

I think it's a bug in the async code. It's providing cookies too high because it doesn't stop after it finds a running entry.

Can we try this as the fix?

Ok, this looks likely.

That said, why doesn't that function look like this?

That's probably a better style ... or simply put an if ... else if to make it exclusive.

James

#23 lore raw
In reply to James Bottomley

2009/6/8 James Bottomley <[email protected]>:

Quoted 52 lines · Linus Torvalds
Quoted 28 lines · Chris Clayton
Quoted 8 lines

OK. I reversed that change and built and installed the kernel. It has withstood 100 reboots without a panic. Additionally, I pulled the latest changes (that will be rc8-git5, I think) from kernel.org, reversed the change to that kernel and built and installed it. That too withstood 100 reboots without a panic.

Let me know if there's anything else I can do to help fix this.

That's already pretty convincing.

James, Arjan? The original oops message is here (a jpg screen capture, unable to open initial console):

      http://lkml.org/lkml/2009/6/6/142

and it's this bug entry:

      Bug-Entry       : http://bugzilla.kernel.org/show_bug.cgi?id=13474
      Subject         : Oops whilst booting
      Submitter       : Chris Clayton <[email protected]> Date            : 2009-06-06 18:59 (2 days old)
      References      : http://marc.info/?l=linux-kernel&m=124431487924254&w=4

and now bisected down to

Quoted 7 lines
Quoted 5 lines
Quoted 5 lines

commit d5a877e8dd409d8c702986d06485c374b705d340
Author: James Bottomley <[email protected]>
Date:   Sun May 24 13:03:43 2009 -0700

    async: make sure independent async domains can't accidentally entangle

please advice. Otherwise I'll have to revert.

I think it's a bug in the async code.  It's providing cookies too high because it doesn't stop after it finds a running entry.

Can we try this as the fix?

James

---

kernel/async.c +0 -0
index 5054030..e4909ee 100644

kernel/async.c static async_cookie_t  __lowest_in_progress(struct list_head *running) · line 103

Quoted 8 lines
kernel/async.c +1 -1
@@ -97,7 +97,7 @@ static async_cookie_t  __lowest_in_progress(struct list_head *running)
        if (!list_empty(running)) {
                entry = list_first_entry(running,
                        struct async_entry, list);
-               ret = entry->cookie;
+               return entry->cookie;
        }
 
        if (!list_empty(&async_pending)) {

I can also confirm that a kernel with this patch applied has withstood the 100-boot torture. I'll try Linus's version now and report back asap.

Chris

Signature · 7 lines
No, Sir; there is nothing which has yet been contrived by man, by
which so much happiness is produced as by a good tavern or inn -
Doctor Samuel Johnson
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
maintainer
#24 lore raw
In reply to Chris Clayton
Quoted 46 lines · Chris Clayton

Hi Neil,

Thanks for the reply.

2009/6/7 NeilBrown <[email protected]>:

Quoted 20 lines · Jaswinder Singh Rajput
Quoted 3 lines · Chris Clayton
Quoted 2 lines

2009/6/7 Jaswinder Singh Ra

Quoted 1 line
Quoted 1 line
Quoted 1 line

http://img231.imageshack.us/img231/8931/dscn0610.jpg

This message says that it found a vfat filesystem on 8:3x (I cannot see what digit should be 'x'). That is probably sdc1 or sdc2. Maybe even sdc6 or sdc7.
However the vfat filesystem didn't have /sbin/init.

Quoted 1 line
Quoted 1 line

http://img99.imageshack.us/my.php?image=dscn0617b.jpg

This one says it couldn't find anything at 8,22, which I think should be sdb6.
It also shows that you have and sdc6, but sdb only goes up to sdb3.

So it seems that your disk drives have changed name - not a wholely unexpected event these days.

Quoted 9 lines

We now need answers to questions like:
- what device do you expect the root filesystem to be on
- how is the kernel being told this? Maybe it is hard coded into your initrd. Knowing which distro and what /etc/fstab says might help (though it wouldn't help me, I'm just about out of my depth at this point)
Maybe if you changed /etc/fstab to mount by uuid instead of hardcoding e.g. /etc/sdb3, and then run "mkinitramfs" or whatever, it might work.

Yes, I've just been looking at the photographs of the panics again and I've noticed that two of my discs are being detected in the "wrong order". There are three HDDS. The first, /dev/sda, is the master on the first IDE port and contains sda1..sda7. The second, normally /dev/sdb, is the slave on that port and contains sdb1..sdb6. The third, normally /dev/sdc, is attached to the first SATA port and contains sdc1..sdc3. The second photograph I posted shows that sdb and sdc have been reversed. The first partition on the disc that is normally /dev/sdb does indeed have a FAT32 filesystem in the first partition.

Quoted 8 lines

By the way, I should have said that in between the panics that the two photographs show, I copied contents of /dev/sdc1, which I normally boot from, to /dev/sdb6, so that I minimised the risk to sdc1 in the reboot festival that bisecting would involve. I also, of course, changed the name of the root partition that is passed to the kernel by GRUB and amended /etc/fstab on /dev/sdb6. That's why the partitions shown in the photographs seem inconsistent. Sorry I forgot to mention that - I really shouldn't do these things late at night :-).

Actually, you can save yourself a lot of pain by mounting by label instead ... that way both grub and fstab will find your root disc even if it has swapped order.

Quoted 9 lines

As I indicate above, when booting the partition I have set up to do this bisecting, I expect the root filesystem to be on /dev/hdb6. As I also indicate, this information is passed to the kernel through GRUB's /boot/grub/menu.lst. The kernel is configured specifically for my system and the drivers needed to boot the system are built in to the kernel, so I don't use an initrd. IIRC, that's the way Slackware is installed today, except, of course, it's a big fat kernel with all drivers needed to boot any system built in. I could be wrong on that though, it's a while since I installed

The fact that a slave on the first channel is detected after the SATA indicates a problem with async probing. What are the two drivers for these?

James

#25 lore raw

Hi James,

2009/6/8 James Bottomley <[email protected]>:

Quoted 70 lines · Chris Clayton
Quoted 46 lines

Hi Neil,

Thanks for the reply.

2009/6/7 NeilBrown <[email protected]>:

Quoted 20 lines · Jaswinder Singh Rajput
Quoted 3 lines · Chris Clayton
Quoted 2 lines

2009/6/7 Jaswinder Singh Ra

Quoted 1 line
Quoted 1 line
Quoted 1 line

http://img231.imageshack.us/img231/8931/dscn0610.jpg

This message says that it found a vfat filesystem on 8:3x (I cannot see what digit should be 'x').  That is probably sdc1 or sdc2. Maybe even sdc6 or sdc7.
However the vfat filesystem didn't have /sbin/init.

Quoted 1 line
Quoted 1 line

http://img99.imageshack.us/my.php?image=dscn0617b.jpg

This one says it couldn't find anything at 8,22, which I think should be sdb6.
It also shows that you have and sdc6, but sdb only goes up to sdb3.

So it seems that your disk drives have changed name - not a wholely unexpected event these days.

Quoted 9 lines

We now need answers to questions like:
 - what device do you expect the root filesystem to be on
 - how is the kernel being told this?  Maybe it is hard coded into your initrd.  Knowing which distro and what /etc/fstab says might help (though it wouldn't help me, I'm just about out of my depth at this point)
Maybe if you changed /etc/fstab to mount by uuid instead of hardcoding e.g. /etc/sdb3, and then run "mkinitramfs" or whatever, it might work.

Yes, I've just been looking at the photographs of the panics again and I've noticed that two of my discs are being detected in the "wrong order". There are three HDDS. The first, /dev/sda, is the master on the first IDE port and contains sda1..sda7. The second, normally /dev/sdb, is the slave on that port and contains sdb1..sdb6. The third, normally /dev/sdc, is attached to the first SATA port and contains sdc1..sdc3. The second photograph I posted shows that sdb and sdc have been reversed. The first partition on the disc that is normally /dev/sdb does indeed have a FAT32 filesystem in the first partition.

Quoted 8 lines

By the way, I should have said that in between the panics that the two photographs show, I copied contents of /dev/sdc1, which I normally boot from, to /dev/sdb6, so that I minimised the risk to sdc1 in the reboot festival that bisecting would involve. I also, of course, changed the name of the root partition that is passed to the kernel by GRUB and amended /etc/fstab on /dev/sdb6. That's why the partitions shown in the photographs seem inconsistent. Sorry I forgot to mention that - I really shouldn't do these things late at night :-).

Actually, you can save yourself a lot of pain by mounting by label instead ... that way both grub and fstab will find your root disc even if it has swapped order.

Quoted 9 lines

As I indicate above, when booting the partition I have set up to do this bisecting,  I expect the root filesystem to be on /dev/hdb6. As I also indicate, this information is passed to the kernel through GRUB's /boot/grub/menu.lst. The kernel is configured specifically for my system and the drivers needed to boot the system are built in to the kernel, so I don't use an initrd. IIRC, that's the way Slackware is installed today, except, of course, it's a big fat kernel with all drivers needed to boot any system built in. I could be wrong on that though, it's a while since I installed

Quoted 4 lines

The fact that a slave on the first channel is detected after the SATA indicates a problem with async probing.  What are the two drivers for these?

I think this is the relevant part of my .config:

CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_ACPI=y
# CONFIG_SATA_PMP is not set
# CONFIG_SATA_AHCI is not set
# CONFIG_SATA_SIL24 is not set
CONFIG_ATA_SFF=y
# CONFIG_SATA_SVW is not set
CONFIG_ATA_PIIX=y <<<<=================
# CONFIG_SATA_MV is not set
# CONFIG_SATA_NV is not set
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SX4 is not set
# CONFIG_SATA_SIL is not set
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_ULI is not set
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set
# CONFIG_SATA_INIC162X is not set

The ATA/(E)IDE driver is disabled.

Chris

Quoted 2 lines

James

Signature · 7 lines
No, Sir; there is nothing which has yet been contrived by man, by
which so much happiness is produced as by a good tavern or inn -
Doctor Samuel Johnson
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#26 lore raw
In reply to James Bottomley

Sorry James, I forgot to ask...

2009/6/8 James Bottomley <[email protected]>:

Quoted 56 lines · Chris Clayton
Quoted 46 lines

Hi Neil,

Thanks for the reply.

2009/6/7 NeilBrown <[email protected]>:

Quoted 20 lines · Jaswinder Singh Rajput
Quoted 3 lines · Chris Clayton
Quoted 2 lines

2009/6/7 Jaswinder Singh Ra

Quoted 1 line
Quoted 1 line
Quoted 1 line

http://img231.imageshack.us/img231/8931/dscn0610.jpg

This message says that it found a vfat filesystem on 8:3x (I cannot see what digit should be 'x').  That is probably sdc1 or sdc2. Maybe even sdc6 or sdc7.
However the vfat filesystem didn't have /sbin/init.

Quoted 1 line
Quoted 1 line

http://img99.imageshack.us/my.php?image=dscn0617b.jpg

This one says it couldn't find anything at 8,22, which I think should be sdb6.
It also shows that you have and sdc6, but sdb only goes up to sdb3.

So it seems that your disk drives have changed name - not a wholely unexpected event these days.

Quoted 9 lines

We now need answers to questions like:
 - what device do you expect the root filesystem to be on
 - how is the kernel being told this?  Maybe it is hard coded into your initrd.  Knowing which distro and what /etc/fstab says might help (though it wouldn't help me, I'm just about out of my depth at this point)
Maybe if you changed /etc/fstab to mount by uuid instead of hardcoding e.g. /etc/sdb3, and then run "mkinitramfs" or whatever, it might work.

Yes, I've just been looking at the photographs of the panics again and I've noticed that two of my discs are being detected in the "wrong order". There are three HDDS. The first, /dev/sda, is the master on the first IDE port and contains sda1..sda7. The second, normally /dev/sdb, is the slave on that port and contains sdb1..sdb6. The third, normally /dev/sdc, is attached to the first SATA port and contains sdc1..sdc3. The second photograph I posted shows that sdb and sdc have been reversed. The first partition on the disc that is normally /dev/sdb does indeed have a FAT32 filesystem in the first partition.

Quoted 8 lines

By the way, I should have said that in between the panics that the two photographs show, I copied contents of /dev/sdc1, which I normally boot from, to /dev/sdb6, so that I minimised the risk to sdc1 in the reboot festival that bisecting would involve. I also, of course, changed the name of the root partition that is passed to the kernel by GRUB and amended /etc/fstab on /dev/sdb6. That's why the partitions shown in the photographs seem inconsistent. Sorry I forgot to mention that - I really shouldn't do these things late at night :-).

Quoted 4 lines

Actually, you can save yourself a lot of pain by mounting by label instead ... that way both grub and fstab will find your root disc even if it has swapped order.

Would I be right in assuming from this that "out-of-order" detection is expected behaviour? If so, I'll fix up my system and shut up :-) I suspect I may not be the only person on the planet who specifies the root filesystem in this way, though.

Thanks

Quoted 18 lines
Quoted 9 lines

As I indicate above, when booting the partition I have set up to do this bisecting,  I expect the root filesystem to be on /dev/hdb6. As I also indicate, this information is passed to the kernel through GRUB's /boot/grub/menu.lst. The kernel is configured specifically for my system and the drivers needed to boot the system are built in to the kernel, so I don't use an initrd. IIRC, that's the way Slackware is installed today, except, of course, it's a big fat kernel with all drivers needed to boot any system built in. I could be wrong on that though, it's a while since I installed

The fact that a slave on the first channel is detected after the SATA indicates a problem with async probing.  What are the two drivers for these?

James

Signature · 7 lines
No, Sir; there is nothing which has yet been contrived by man, by which
so much happiness is produced as by a good tavern or inn - Doctor Samuel
Johnson
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
maintainer
#27 lore raw
Quoted 9 lines · Chris Clayton
Quoted 4 lines

Actually, you can save yourself a lot of pain by mounting by label instead ... that way both grub and fstab will find your root disc even if it has swapped order.

Would I be right in assuming from this that "out-of-order" detection is expected behaviour? If so, I'll fix up my system and shut up :-) I suspect I may not be the only person on the planet who specifies the root filesystem in this way, though.

Yes and no ... yes generally because parallel asynchronous probing does relax the ordering rules, so if you have multiple devices the ordering can easily change. No in your particular case because you have a single ata_piix and even with async enabled it should probe PATA first (master and slave) followed by SATA. The fact that the PATA and SATA probes didn't synchronise is a bug somewhere, but I'm not sure where.

Could you fix your system to do the label mounting and post the full boot log where it's out of sequence? I have a nasty feeling we might have got the ata probe order correct only to be thrown out of order by sd driver attachment.

James