* Spinup of SCSI Disks: allow_restart won't work on 2.6.18
@ 2006-11-17 17:38 Joern Quillman
2006-11-17 21:44 ` Joern Quillmann
0 siblings, 1 reply; 15+ messages in thread
From: Joern Quillman @ 2006-11-17 17:38 UTC (permalink / raw)
To: linux-scsi
Hi
I'm having troubles using the sysfs interface for enabling automatic
spinup of SCSI Drives.
I searched the archives of this list and after discovering the patches
for enabling automatic spinup for SCSI disk drives I updated to a recent
2.6.18-2 kernel (debian unstable).
I have now the allow_restart entry in sysfs.
It's set to 0 in my machine and it won't let me change it with 'echo 1 >
allow_restart' or echo -n. I always get a write error.
The first thing I thought about was that it may be set to 0 by default
and so I took a look into the original source of my debian kernel.
It's set to 'sdev->allow_restart = 1' everywhere in the source as I can
see and I'm getting confused right now.
Why can't I change the allow_restart setting at runtime? According to
former posts on this list it should be possible.
Is there another way to force automatic spinup of my firewire drives?
My setup consists of a bunch of 8 IDE harddisks connected through some
OXFW911 Firewire Bridges.
Thanks
Joern
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Spinup of SCSI Disks: allow_restart won't work on 2.6.18
2006-11-17 17:38 Spinup of SCSI Disks: allow_restart won't work on 2.6.18 Joern Quillman
@ 2006-11-17 21:44 ` Joern Quillmann
2006-11-17 23:34 ` Stefan Richter
0 siblings, 1 reply; 15+ messages in thread
From: Joern Quillmann @ 2006-11-17 21:44 UTC (permalink / raw)
To: linux-scsi
Joern Quillman wrote:
> I have now the allow_restart entry in sysfs.
> It's set to 0 in my machine and it won't let me change it with 'echo 1 >
> allow_restart' or echo -n. I always get a write error.
I just bought an external USB->IDE converter and tested it again.
Of course due to the cheap concerter-chip the USB disk wont go to
standby mode but I can set 'allow_restart' to 1 with this converter.
So maybe it's only about sbp2 implementation or specifically my OXFW911
bridges?
Thanks
Joern
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Spinup of SCSI Disks: allow_restart won't work on 2.6.18
2006-11-17 21:44 ` Joern Quillmann
@ 2006-11-17 23:34 ` Stefan Richter
2006-11-17 23:36 ` Stefan Richter
2006-11-20 10:52 ` Joern Quillman
0 siblings, 2 replies; 15+ messages in thread
From: Stefan Richter @ 2006-11-17 23:34 UTC (permalink / raw)
To: Joern Quillmann; +Cc: linux-scsi
Joern Quillmann wrote:
>> I have now the allow_restart entry in sysfs.
>> It's set to 0 in my machine and it won't let me change it with 'echo 1
>> > allow_restart' or echo -n. I always get a write error.
>
> I just bought an external USB->IDE converter and tested it again.
> Of course due to the cheap concerter-chip the USB disk wont go to
> standby mode but I can set 'allow_restart' to 1 with this converter.
>
> So maybe it's only about sbp2 implementation or specifically my OXFW911
> bridges?
FWIW, sbp2 in Linux 2.6.19-rcX sets the allow_restart flag for all HDDs
and other direct access devices. In Linux 2.6.18 it does so only for
Maxtor disks. Beyond setting that flag or leaving as it is, the sbp2
driver has nothing to do with the restart facility; it's a thing between
the SCSI error handler and the target. Of course the firmware of the
FireWire bridge has to support it in the first place. I have no data
which OXFW911 firmwares do or don't.
Also I don't remember which Linux release has the patch that exposes the
allow_restart flag as a writable sysfs attribute but I suppose if you
can see this attribute, then you have the patch. I can set and unset it
with echo on 2.6.19-rc4 just fine, as root of course.
--
Stefan Richter
-=====-=-==- =-== =--=-
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Spinup of SCSI Disks: allow_restart won't work on 2.6.18
2006-11-17 23:34 ` Stefan Richter
@ 2006-11-17 23:36 ` Stefan Richter
2006-11-20 10:52 ` Joern Quillman
1 sibling, 0 replies; 15+ messages in thread
From: Stefan Richter @ 2006-11-17 23:36 UTC (permalink / raw)
To: Joern Quillmann; +Cc: linux-scsi
I wrote:
> FWIW, sbp2 in Linux 2.6.19-rcX sets the allow_restart flag for all HDDs
> and other direct access devices. In Linux 2.6.18 it does so only for
> Maxtor disks.
Maxtor enclosures that is (not other FireWire enclosures with Maxtor
drives).
--
Stefan Richter
-=====-=-==- =-== =--=-
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Spinup of SCSI Disks: allow_restart won't work on 2.6.18
2006-11-17 23:34 ` Stefan Richter
2006-11-17 23:36 ` Stefan Richter
@ 2006-11-20 10:52 ` Joern Quillman
2006-11-20 11:48 ` Stefan Richter
1 sibling, 1 reply; 15+ messages in thread
From: Joern Quillman @ 2006-11-20 10:52 UTC (permalink / raw)
To: Stefan Richter; +Cc: linux-scsi
Stefan Richter wrote:
> FWIW, sbp2 in Linux 2.6.19-rcX sets the allow_restart flag for all HDDs
> and other direct access devices. In Linux 2.6.18 it does so only for
> Maxtor disks. Beyond setting that flag or leaving as it is, the sbp2
> driver has nothing to do with the restart facility; it's a thing between
> the SCSI error handler and the target. Of course the firmware of the
> FireWire bridge has to support it in the first place. I have no data
> which OXFW911 firmwares do or don't.
>
> Also I don't remember which Linux release has the patch that exposes the
> allow_restart flag as a writable sysfs attribute but I suppose if you
> can see this attribute, then you have the patch. I can set and unset it
> with echo on 2.6.19-rc4 just fine, as root of course.
I tried 2.6.19-rc6 and it works just like you said. Thank's a lot for
the hint.
One problem left. I still can't set or unset the flag with echo even on
2.6.19-rc6 (as root). Always getting a write error. Not that I care much
about this, 'cause I for sure don't want it disabled.
But it's strange nonethless.
Thank's again
Joern
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Spinup of SCSI Disks: allow_restart won't work on 2.6.18
2006-11-20 10:52 ` Joern Quillman
@ 2006-11-20 11:48 ` Stefan Richter
2006-11-20 22:32 ` Joern Quillman
0 siblings, 1 reply; 15+ messages in thread
From: Stefan Richter @ 2006-11-20 11:48 UTC (permalink / raw)
To: Joern Quillman; +Cc: linux-scsi
Joern Quillman wrote:
> One problem left. I still can't set or unset the flag with echo even on
> 2.6.19-rc6 (as root). Always getting a write error. Not that I care much
> about this, 'cause I for sure don't want it disabled.
> But it's strange nonethless.
But the attribute has write permission set? (ls -l)
It is writable on the last kernel I tried, which is -rc4.
--
Stefan Richter
-=====-=-==- =-== =-=--
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Spinup of SCSI Disks: allow_restart won't work on 2.6.18
2006-11-20 11:48 ` Stefan Richter
@ 2006-11-20 22:32 ` Joern Quillman
2006-11-20 23:53 ` Stefan Richter
0 siblings, 1 reply; 15+ messages in thread
From: Joern Quillman @ 2006-11-20 22:32 UTC (permalink / raw)
To: Stefan Richter; +Cc: linux-scsi
Stefan Richter wrote
>> One problem left. I still can't set or unset the flag with echo even on
>> 2.6.19-rc6 (as root). Always getting a write error. Not that I care much
>> about this, 'cause I for sure don't want it disabled.
>> But it's strange nonethless.
>>
>
> But the attribute has write permission set? (ls -l)
> It is writable on the last kernel I tried, which is -rc4.
>
Yep
Permissions of the file are -rw-r--r--. Owner is of course root.
As I wrote before I can set/unset the flag without any problems when I
connect a dumb USB<->IDE
converter with kernel 2.6.18. Same with 2.6.19-rc6.
The complete error message (sorry it's in german here) is:
"-bash: echo: write error: Das Argument ist ungueltig"
Is there a way to do some debug on the internals to see why the
attribute isn't actually writeable? Do you need parts of the kernel log?
A new problem just arised:
When I switch on the external enclosure with 3 bridges and 3 disks a few
seconds "before" I plug the firewire connector into the PC everything works.
But when I first plug in the connector and turn on the external
enclosure later, 2.6.19-rc6 hangs on the first disk and throws a BUG
message.
I have to reboot the PC then and I reproduced it serveral times.
------------------snip----------------------------------
ieee1394: Error parsing configrom for node 0-00:1023
ieee1394: Error parsing configrom for node 0-01:1023
ieee1394: Error parsing configrom for node 0-02:1023
ieee1394: Node changed: 0-00:1023 -> 0-03:1023
ieee1394: Node added: ID:BUS[0-00:1023] GUID[0001d20000091ab2]
ieee1394: Node added: ID:BUS[0-01:1023] GUID[0001d20000093c4d]
ieee1394: Error parsing configrom for node 0-02:1023
scsi0 : SBP-2 IEEE-1394
ieee1394: sbp2: Logged into SBP-2 device
ieee1394: Node 0-00:1023: Max speed [S400] - Max payload [1024]
scsi 0:0:0:0: Direct-Access-RBC Maxtor 4 D080H4 DAK0 PQ: 0 ANSI: 4
scsi1 : SBP-2 IEEE-1394
SCSI device sda: 160086528 512-byte hdwr sectors (81964 MB)
sda: Write Protect is off
sda: Mode Sense: 11 00 00 00
SCSI device sda: drive cache: write back
SCSI device sda: 160086528 512-byte hdwr sectors (81964 MB)
sda: Write Protect is off
sda: Mode Sense: 11 00 00 00
SCSI device sda: drive cache: write back
sda: sda1
sd 0:0:0:0: Attached scsi disk sda
ieee1394: sbp2: Error logging into SBP-2 device - timed out
sbp2: probe of 0001d20000093c4d-0 failed with error -16
------------[ cut here ]------------
kernel BUG at fs/sysfs/file.c:460!
invalid opcode: 0000 [#1]
SMP
Modules linked in: sd_mod nfs nfsd exportfs lockd nfs_acl sunrpc button
ac battery ipv6 de4x5 dm_snapshot dm_mirror dm_mod sr_mod sbp2 scsi_mod
ehci_hcd ohci_hcd tulip joydev tsdev pcmcia firmware_class evdev
i810_audio ac97_codec psmouse serio_raw floppy snd_intel8x0 yenta_socket
snd_ac97_codec snd_ac97_bus rsrc_nonstatic pcmcia_core snd_pcm snd_timer
snd soundcore snd_page_alloc parport_pc parport i2c_piix4 pcspkr
i2c_core rtc ext3 jbd mbcache ide_generic ide_cd cdrom ide_disk uhci_hcd
piix generic ide_core usbcore ohci1394 ieee1394 thermal processor fan
CPU: 0
EIP: 0060:[<c01966c6>] Not tainted VLI
EFLAGS: 00010202 (2.6.19-rc6 #1)
EIP is at sysfs_create_file+0x19/0x31
eax: c7d03800 ebx: cc85f12c ecx: c7d038b0 edx: cc85f101
esi: cc85f12c edi: 00000000 ebp: c7d03800 esp: cb5f1eb8
ds: 007b es: 007b ss: 0068
Process knodemgrd_0 (pid: 549, ti=cb5f0000 task=cb595ab0 task.ti=cb5f0000)
Stack: c7d03838 c021ed64 c7d03838 00000001 c7d03994 cc84f029 c7d03a14
00000014
cc853f32 cae3f0f4 00000000 cae3f000 fffffffc c7d03800 ccc6b000
00000000
00000000 cc84f45c fffffffc ccafd058 cae3f000 cb65d3f8 00000000
01afd058
Call Trace:
[<c021ed64>] device_create_file+0x1c/0x2b
[<cc84f029>] nodemgr_register_device+0xd0/0x150 [ieee1394]
[<cc84f45c>] nodemgr_process_unit_directory+0x333/0x348 [ieee1394]
[<cc84f668>] nodemgr_probe_ne+0x183/0x37a [ieee1394]
[<cc850204>] nodemgr_host_thread+0x827/0x970 [ieee1394]
[<cc84f9dd>] nodemgr_host_thread+0x0/0x970 [ieee1394]
[<c01304d2>] kthread+0xc2/0xf0
[<c0130410>] kthread+0x0/0xf0
[<c01038bb>] kernel_thread_helper+0x7/0x10
=======================
Code: 83 c0 74 e8 65 08 10 00 89 e8 83 c4 10 5b 5e 5f 5d c3 85 c0 89 c1
53 89 d3 74 10 83 78 30 00 0f 94 c2 85 db 0f 94 c0 08 c2 74 08 <0f> 0b
cc 01 d0 56 2b c0 8b 41 30 89 da b9 04 00 00 00 5b e9 5e
EIP: [<c01966c6>] sysfs_create_file+0x19/0x31 SS:ESP 0068:cb5f1eb8
------------------------snip------------------------------------------------
Joern
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Spinup of SCSI Disks: allow_restart won't work on 2.6.18
2006-11-20 22:32 ` Joern Quillman
@ 2006-11-20 23:53 ` Stefan Richter
2006-11-21 0:54 ` Douglas Gilbert
2006-11-21 1:09 ` Spinup of SCSI Disks: allow_restart won't work on 2.6.18 Joern Quillmann
0 siblings, 2 replies; 15+ messages in thread
From: Stefan Richter @ 2006-11-20 23:53 UTC (permalink / raw)
To: Joern Quillman; +Cc: linux-scsi
Joern Quillman wrote:
>>> One problem left. I still can't set or unset the flag with echo even
>>> on 2.6.19-rc6 (as root).
...
> Permissions of the file are -rw-r--r--. Owner is of course root.
> As I wrote before I can set/unset the flag without any problems when I
> connect a dumb USB<->IDE
> converter with kernel 2.6.18. Same with 2.6.19-rc6.
>
> The complete error message (sorry it's in german here) is:
> "-bash: echo: write error: Das Argument ist ungueltig"
>
> Is there a way to do some debug on the internals to see why the
> attribute isn't actually writeable? Do you need parts of the kernel log?
The responsible kernel code is drivers/scsi/sd.c::sd_store_allow_restart().
static ssize_t sd_store_allow_restart(struct class_device *cdev, const
char *buf,
size_t count)
{
struct scsi_disk *sdkp = to_scsi_disk(cdev);
struct scsi_device *sdp = sdkp->device;
if (!capable(CAP_SYS_ADMIN))
return -EACCES;
if (sdp->type != TYPE_DISK)
return -EINVAL;
sdp->allow_restart = simple_strtoul(buf, NULL, 10);
return count;
}
I think the solution is easy: Replace if (sdp->type != TYPE_DISK) by
if (sdp->type != TYPE_DISK && sdp->type != TYPE_RBC)
As you can see further below in your log, most SBP-2 disks implement the
RBC command set, i.e. are a somewhat special kind of SCSI HDD. I suppose
I grabbed one of the rare SBP-2 disks which pose as TYPE_DISK when I
tested to write to the allow_restart attribute.
I will try this modification here too and send a proper patch to the
list if my line of thinking is correct.
> A new problem just arised:
> When I switch on the external enclosure with 3 bridges and 3 disks a few
> seconds "before" I plug the firewire connector into the PC everything
> works.
> But when I first plug in the connector and turn on the external
> enclosure later, 2.6.19-rc6 hangs on the first disk and throws a BUG
> message.
> I have to reboot the PC then and I reproduced it serveral times.
>
> ------------------snip----------------------------------
> ieee1394: Error parsing configrom for node 0-00:1023
> ieee1394: Error parsing configrom for node 0-01:1023
> ieee1394: Error parsing configrom for node 0-02:1023
> ieee1394: Node changed: 0-00:1023 -> 0-03:1023
> ieee1394: Node added: ID:BUS[0-00:1023] GUID[0001d20000091ab2]
> ieee1394: Node added: ID:BUS[0-01:1023] GUID[0001d20000093c4d]
> ieee1394: Error parsing configrom for node 0-02:1023
> scsi0 : SBP-2 IEEE-1394
> ieee1394: sbp2: Logged into SBP-2 device
> ieee1394: Node 0-00:1023: Max speed [S400] - Max payload [1024]
> scsi 0:0:0:0: Direct-Access-RBC Maxtor 4 D080H4 DAK0 PQ: 0
> ANSI: 4
> scsi1 : SBP-2 IEEE-1394
> SCSI device sda: 160086528 512-byte hdwr sectors (81964 MB)
> sda: Write Protect is off
> sda: Mode Sense: 11 00 00 00
> SCSI device sda: drive cache: write back
> SCSI device sda: 160086528 512-byte hdwr sectors (81964 MB)
> sda: Write Protect is off
> sda: Mode Sense: 11 00 00 00
> SCSI device sda: drive cache: write back
> sda: sda1
> sd 0:0:0:0: Attached scsi disk sda
> ieee1394: sbp2: Error logging into SBP-2 device - timed out
> sbp2: probe of 0001d20000093c4d-0 failed with error -16
This should not be a problem per se, although it won't be possible to
actually use the disk after a login failure of course.
I see from the GUIDs that the bridges were made by MacPower. They used
to build them with the fine Oxford Semi SBP-2 bridges only, but some
time ago they also used Prolific PL3507 for IEEE 1394A + USB 2.0 combo
devices. I have 3 Oxford based MacPower enclosures and 1 Prolific based,
and the latter behaves quite crappy. I get a lot of login failures on a
1394b host and occasional login failures on a 1394a host. Somebody else
with, I believe, the same device as mine could fix this with a firmware
update from http://www.prolific.com.tw/eng/downloads.asp?ID=44 (site is
down right now, once again).
You said you have OXFW bridges, but do you know this from looking at the
chips or merely from a spec sheet?
> ------------[ cut here ]------------
> kernel BUG at fs/sysfs/file.c:460!
> invalid opcode: 0000 [#1]
> SMP
> Modules linked in: sd_mod nfs nfsd exportfs lockd nfs_acl sunrpc button
> ac battery ipv6 de4x5 dm_snapshot dm_mirror dm_mod sr_mod sbp2 scsi_mod
> ehci_hcd ohci_hcd tulip joydev tsdev pcmcia firmware_class evdev
> i810_audio ac97_codec psmouse serio_raw floppy snd_intel8x0 yenta_socket
> snd_ac97_codec snd_ac97_bus rsrc_nonstatic pcmcia_core snd_pcm snd_timer
> snd soundcore snd_page_alloc parport_pc parport i2c_piix4 pcspkr
> i2c_core rtc ext3 jbd mbcache ide_generic ide_cd cdrom ide_disk uhci_hcd
> piix generic ide_core usbcore ohci1394 ieee1394 thermal processor fan
> CPU: 0
> EIP: 0060:[<c01966c6>] Not tainted VLI
> EFLAGS: 00010202 (2.6.19-rc6 #1)
> EIP is at sysfs_create_file+0x19/0x31
> eax: c7d03800 ebx: cc85f12c ecx: c7d038b0 edx: cc85f101
> esi: cc85f12c edi: 00000000 ebp: c7d03800 esp: cb5f1eb8
> ds: 007b es: 007b ss: 0068
> Process knodemgrd_0 (pid: 549, ti=cb5f0000 task=cb595ab0 task.ti=cb5f0000)
> Stack: c7d03838 c021ed64 c7d03838 00000001 c7d03994 cc84f029 c7d03a14 00000014
> cc853f32 cae3f0f4 00000000 cae3f000 fffffffc c7d03800 ccc6b000 00000000
> 00000000 cc84f45c fffffffc ccafd058 cae3f000 cb65d3f8 00000000 01afd058
> Call Trace:
> [<c021ed64>] device_create_file+0x1c/0x2b
> [<cc84f029>] nodemgr_register_device+0xd0/0x150 [ieee1394]
> [<cc84f45c>] nodemgr_process_unit_directory+0x333/0x348 [ieee1394]
> [<cc84f668>] nodemgr_probe_ne+0x183/0x37a [ieee1394]
> [<cc850204>] nodemgr_host_thread+0x827/0x970 [ieee1394]
> [<cc84f9dd>] nodemgr_host_thread+0x0/0x970 [ieee1394]
> [<c01304d2>] kthread+0xc2/0xf0
> [<c0130410>] kthread+0x0/0xf0
> [<c01038bb>] kernel_thread_helper+0x7/0x10
> =======================
> Code: 83 c0 74 e8 65 08 10 00 89 e8 83 c4 10 5b 5e 5f 5d c3 85 c0 89 c1
> 53 89 d3 74 10 83 78 30 00 0f 94 c2 85 db 0f 94 c0 08 c2 74 08 <0f> 0b
> cc 01 d0 56 2b c0 8b 41 30 89 da b9 04 00 00 00 5b e9 5e
> EIP: [<c01966c6>] sysfs_create_file+0x19/0x31 SS:ESP 0068:cb5f1eb8
Hmm. This is not good. Maybe the ieee1394 driver received garbage data
from the device's configuration ROM and sysfs blew up subsequently. I'm
not sure if this is a realistic scenario and if so, which kinds of
sanity checks might be missing in ieee1394. I'll check this
eventually... Although if you can reproduce this bug, I could send you a
patch with a bunch of printk's to narrow the offending sysfs attribute down.
--
Stefan Richter
-=====-=-==- =-== =-=-=
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Spinup of SCSI Disks: allow_restart won't work on 2.6.18
2006-11-20 23:53 ` Stefan Richter
@ 2006-11-21 0:54 ` Douglas Gilbert
2006-11-21 4:20 ` James Bottomley
2006-11-21 14:41 ` Brian King
2006-11-21 1:09 ` Spinup of SCSI Disks: allow_restart won't work on 2.6.18 Joern Quillmann
1 sibling, 2 replies; 15+ messages in thread
From: Douglas Gilbert @ 2006-11-21 0:54 UTC (permalink / raw)
To: Stefan Richter; +Cc: Joern Quillman, linux-scsi
Stefan Richter wrote:
> Joern Quillman wrote:
>>>> One problem left. I still can't set or unset the flag with echo even
>>>> on 2.6.19-rc6 (as root).
> ...
>> Permissions of the file are -rw-r--r--. Owner is of course root.
>> As I wrote before I can set/unset the flag without any problems when I
>> connect a dumb USB<->IDE
>> converter with kernel 2.6.18. Same with 2.6.19-rc6.
>>
>> The complete error message (sorry it's in german here) is:
>> "-bash: echo: write error: Das Argument ist ungueltig"
>>
>> Is there a way to do some debug on the internals to see why the
>> attribute isn't actually writeable? Do you need parts of the kernel log?
>
> The responsible kernel code is drivers/scsi/sd.c::sd_store_allow_restart().
>
> static ssize_t sd_store_allow_restart(struct class_device *cdev, const
> char *buf,
> size_t count)
> {
> struct scsi_disk *sdkp = to_scsi_disk(cdev);
> struct scsi_device *sdp = sdkp->device;
>
> if (!capable(CAP_SYS_ADMIN))
> return -EACCES;
>
> if (sdp->type != TYPE_DISK)
> return -EINVAL;
>
> sdp->allow_restart = simple_strtoul(buf, NULL, 10);
>
> return count;
> }
>
>
> I think the solution is easy: Replace if (sdp->type != TYPE_DISK) by
>
> if (sdp->type != TYPE_DISK && sdp->type != TYPE_RBC)
... but why have the condition at all? What other peripheral
device type should the _sd_ driver be handling??
Doug Gilbert
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Spinup of SCSI Disks: allow_restart won't work on 2.6.18
2006-11-20 23:53 ` Stefan Richter
2006-11-21 0:54 ` Douglas Gilbert
@ 2006-11-21 1:09 ` Joern Quillmann
2006-11-21 20:49 ` Stefan Richter
1 sibling, 1 reply; 15+ messages in thread
From: Joern Quillmann @ 2006-11-21 1:09 UTC (permalink / raw)
To: Stefan Richter; +Cc: linux-scsi
Stefan Richter wrote:
>>Is there a way to do some debug on the internals to see why the
>>attribute isn't actually writeable? Do you need parts of the kernel log?
>
>
> The responsible kernel code is drivers/scsi/sd.c::sd_store_allow_restart().
>
> static ssize_t sd_store_allow_restart(struct class_device *cdev, const
...->
> I think the solution is easy: Replace if (sdp->type != TYPE_DISK) by
>
> if (sdp->type != TYPE_DISK && sdp->type != TYPE_RBC)
>
> As you can see further below in your log, most SBP-2 disks implement the
> RBC command set, i.e. are a somewhat special kind of SCSI HDD. I suppose
> I grabbed one of the rare SBP-2 disks which pose as TYPE_DISK when I
> tested to write to the allow_restart attribute.
>
> I will try this modification here too and send a proper patch to the
> list if my line of thinking is correct.
Hehe problem solved I think (or hope).
I'll test it too when applying your patch (see last paragraph).
>>sd 0:0:0:0: Attached scsi disk sda
>>ieee1394: sbp2: Error logging into SBP-2 device - timed out
>>sbp2: probe of 0001d20000093c4d-0 failed with error -16
>
> This should not be a problem per se, although it won't be possible to
> actually use the disk after a login failure of course.
The remaining disks were not found too.
> I see from the GUIDs that the bridges were made by MacPower. They used
> to build them with the fine Oxford Semi SBP-2 bridges only, but some
> time ago they also used Prolific PL3507 for IEEE 1394A + USB 2.0 combo
> devices. I have 3 Oxford based MacPower enclosures and 1 Prolific based,
> and the latter behaves quite crappy. I get a lot of login failures on a
> 1394b host and occasional login failures on a 1394a host. Somebody else
> with, I believe, the same device as mine could fix this with a firmware
> update from http://www.prolific.com.tw/eng/downloads.asp?ID=44 (site is
> down right now, once again).
>
> You said you have OXFW bridges, but do you know this from looking at the
> chips or merely from a spec sheet?
I know it because I actually bought them after doing a lot of research
about the quality of different IEEE1394 bridges and Oxfords were said to
be just the best ones.
I bought a bunch of old MacPower bridges (the OXFW911 bridges with blue
PCB and capacity limit of 128GB) on ebay. Got 3 plain OXFW911 bridges
and 1 with an Initio USB2.0 companion chip additionally to the OXFW911
for a few euros.
Took me a whole night to get the "Oxsemi Uploader" Java tool for
firmware updating and the 4.0 firmware for those bridges.
Now it says:
(Currently Running 13:59:47 Oct 15 2004 (v 4.0) firmware.)
And thanks to some voodoo in this firmware I can use up to 160GB drives
with those bridges. Thats the reason I bought them so my old drives
don't go to waste.
>>------------[ cut here ]------------
>>kernel BUG at fs/sysfs/file.c:460!
>>invalid opcode: 0000 [#1]
...->
>>Code: 83 c0 74 e8 65 08 10 00 89 e8 83 c4 10 5b 5e 5f 5d c3 85 c0 89 c1
>>53 89 d3 74 10 83 78 30 00 0f 94 c2 85 db 0f 94 c0 08 c2 74 08 <0f> 0b
>>cc 01 d0 56 2b c0 8b 41 30 89 da b9 04 00 00 00 5b e9 5e
>>EIP: [<c01966c6>] sysfs_create_file+0x19/0x31 SS:ESP 0068:cb5f1eb8
>
>
> Hmm. This is not good. Maybe the ieee1394 driver received garbage data
> from the device's configuration ROM and sysfs blew up subsequently. I'm
> not sure if this is a realistic scenario and if so, which kinds of
> sanity checks might be missing in ieee1394. I'll check this
> eventually... Although if you can reproduce this bug, I could send you a
> patch with a bunch of printk's to narrow the offending sysfs attribute down.
Sure no problem. I'll test it asap.
Would be great to get a solution for this too. Kinda unfunny to always
have the external disks running before the system boots.
Thank's a lot for your help and patience so far
Joern
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Spinup of SCSI Disks: allow_restart won't work on 2.6.18
2006-11-21 0:54 ` Douglas Gilbert
@ 2006-11-21 4:20 ` James Bottomley
2006-11-21 8:12 ` Stefan Richter
2006-11-21 14:41 ` Brian King
1 sibling, 1 reply; 15+ messages in thread
From: James Bottomley @ 2006-11-21 4:20 UTC (permalink / raw)
To: dougg; +Cc: Stefan Richter, Joern Quillman, linux-scsi
On Mon, 2006-11-20 at 19:54 -0500, Douglas Gilbert wrote:
> ... but why have the condition at all? What other peripheral
> device type should the _sd_ driver be handling??
The original patch was for some IBM ipr array that behaves stupidly and
requires a START_UNIT after a reset. I suspect this was the reason the
type check was in there. However, if there's a use for this outside the
particular array, then it should be taken out.
Note that there may be a bit of work necessary to make this function for
USB: it's keyed to the standard response CC/UA/LOGICAL UNIT NOT READY,
INITIALIZING COMMAND REQUIRED. Since USB devices aren't necessarily
standards compliant in this regard, simply setting the bit may not work.
James
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Spinup of SCSI Disks: allow_restart won't work on 2.6.18
2006-11-21 4:20 ` James Bottomley
@ 2006-11-21 8:12 ` Stefan Richter
0 siblings, 0 replies; 15+ messages in thread
From: Stefan Richter @ 2006-11-21 8:12 UTC (permalink / raw)
To: James Bottomley; +Cc: dougg, Joern Quillman, linux-scsi
James Bottomley wrote:
> On Mon, 2006-11-20 at 19:54 -0500, Douglas Gilbert wrote:
>> ... but why have the condition at all? What other peripheral
>> device type should the _sd_ driver be handling??
Of course. Check the time stamp of my posting. #-)
> The original patch was for some IBM ipr array that behaves stupidly and
> requires a START_UNIT after a reset. I suspect this was the reason the
> type check was in there. However, if there's a use for this outside the
> particular array, then it should be taken out.
Enabling this feature for RBC devices too is not a big deal. As
mentioned earlier in the thread, sbp2 sets the respective flag to 1 for
all devices now, so this change would allow to switch this back off. I
don't anticipate actual need to ever switch it off though.
> Note that there may be a bit of work necessary to make this function for
> USB: it's keyed to the standard response CC/UA/LOGICAL UNIT NOT READY,
> INITIALIZING COMMAND REQUIRED. Since USB devices aren't necessarily
> standards compliant in this regard, simply setting the bit may not work.
--
Stefan Richter
-=====-=-==- =-== =-=-=
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Spinup of SCSI Disks: allow_restart won't work on 2.6.18
2006-11-21 0:54 ` Douglas Gilbert
2006-11-21 4:20 ` James Bottomley
@ 2006-11-21 14:41 ` Brian King
2006-11-21 20:34 ` [PATCH] scsi: sd: configurable allow_restart attribute for all device types Stefan Richter
1 sibling, 1 reply; 15+ messages in thread
From: Brian King @ 2006-11-21 14:41 UTC (permalink / raw)
To: dougg; +Cc: Stefan Richter, Joern Quillman, linux-scsi
Douglas Gilbert wrote:
> Stefan Richter wrote:
>> I think the solution is easy: Replace if (sdp->type != TYPE_DISK) by
>>
>> if (sdp->type != TYPE_DISK && sdp->type != TYPE_RBC)
>
> ... but why have the condition at all? What other peripheral
> device type should the _sd_ driver be handling??
Currently, sd attaches TYPE_DISK, TYPE_RBC, and TYPE_MOD devices. I
don't have a problem with removing the check and letting userspace
do what they want to do.
Brian
--
Brian King
eServer Storage I/O
IBM Linux Technology Center
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH] scsi: sd: configurable allow_restart attribute for all device types
2006-11-21 14:41 ` Brian King
@ 2006-11-21 20:34 ` Stefan Richter
0 siblings, 0 replies; 15+ messages in thread
From: Stefan Richter @ 2006-11-21 20:34 UTC (permalink / raw)
To: linux-scsi; +Cc: Douglas Gilbert, Joern Quillman, Brian King, James Bottomley
It is not necessary to restrict run-time configuration of sd's
allow_restart attribute to SBC disks.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
---
Index: linux-2.6.19-rc6/drivers/scsi/sd.c
===================================================================
--- linux-2.6.19-rc6.orig/drivers/scsi/sd.c 2006-10-10 18:18:45.000000000 +0200
+++ linux-2.6.19-rc6/drivers/scsi/sd.c 2006-11-21 21:15:10.000000000 +0100
@@ -216,9 +216,6 @@ static ssize_t sd_store_allow_restart(st
if (!capable(CAP_SYS_ADMIN))
return -EACCES;
- if (sdp->type != TYPE_DISK)
- return -EINVAL;
-
sdp->allow_restart = simple_strtoul(buf, NULL, 10);
return count;
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Spinup of SCSI Disks: allow_restart won't work on 2.6.18
2006-11-21 1:09 ` Spinup of SCSI Disks: allow_restart won't work on 2.6.18 Joern Quillmann
@ 2006-11-21 20:49 ` Stefan Richter
0 siblings, 0 replies; 15+ messages in thread
From: Stefan Richter @ 2006-11-21 20:49 UTC (permalink / raw)
To: Joern Quillmann; +Cc: linux-scsi
Joern Quillmann wrote:
> Stefan Richter wrote:
>>> ieee1394: sbp2: Error logging into SBP-2 device - timed out
>>> sbp2: probe of 0001d20000093c4d-0 failed with error -16
>>
>> This should not be a problem per se, although it won't be possible to
>> actually use the disk after a login failure of course.
>
> The remaining disks were not found too.
Because of the subsequent oops in ieee1394's nodemgr context, which runs
all the device probes.
...
>> if you can reproduce this bug, I could send you a
>> patch with a bunch of printk's to narrow the offending sysfs attribute
>> down.
>
> Sure no problem. I'll test it asap.
> Would be great to get a solution for this too. Kinda unfunny to always
> have the external disks running before the system boots.
I'll get back to you once I have something to work on the oops or/and
the login failure.
--
Stefan Richter
-=====-=-==- =-== =-=-=
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2006-11-21 20:49 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-17 17:38 Spinup of SCSI Disks: allow_restart won't work on 2.6.18 Joern Quillman
2006-11-17 21:44 ` Joern Quillmann
2006-11-17 23:34 ` Stefan Richter
2006-11-17 23:36 ` Stefan Richter
2006-11-20 10:52 ` Joern Quillman
2006-11-20 11:48 ` Stefan Richter
2006-11-20 22:32 ` Joern Quillman
2006-11-20 23:53 ` Stefan Richter
2006-11-21 0:54 ` Douglas Gilbert
2006-11-21 4:20 ` James Bottomley
2006-11-21 8:12 ` Stefan Richter
2006-11-21 14:41 ` Brian King
2006-11-21 20:34 ` [PATCH] scsi: sd: configurable allow_restart attribute for all device types Stefan Richter
2006-11-21 1:09 ` Spinup of SCSI Disks: allow_restart won't work on 2.6.18 Joern Quillmann
2006-11-21 20:49 ` Stefan Richter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox