* 2.5.65 jaz drive devfs oops
@ 2003-03-19 19:14 Matthew Harrell
2003-03-19 19:34 ` Christoph Hellwig
0 siblings, 1 reply; 8+ messages in thread
From: Matthew Harrell @ 2003-03-19 19:14 UTC (permalink / raw)
To: Kernel List
[-- Attachment #1: Type: text/plain, Size: 422 bytes --]
Once the jaz drive spins down and then I try to access it again it either
doesn't respond ever, hangs the process permenantly, or generates the
attached oops. If anyone wants more info let me know and I'll reboot back
with devfs turned on
--
Matthew Harrell Nondeterminism means never
Bit Twiddlers, Inc. having to say you are wrong.
mharrell@bittwiddlers.com
[-- Attachment #2: oops.txt --]
[-- Type: text/plain, Size: 1636 bytes --]
sdb: Spinning up disk...........ready
SCSI device sdb: 2091050 512-byte hdwr sectors (1071 MB)
sdb: Write Protect is off
sdb: Mode Sense: 39 00 10 08
SCSI device sdb: drive cache: write back
Unable to handle kernel paging request at virtual address 6c2e736d
printing eip:
c01ab5b3
*pde = 00000000
Oops: 0002
CPU: 0
EIP: 0060:[<c01ab5b3>] Not tainted
EFLAGS: 00010202
EIP is at devfs_unregister+0x23/0x50
eax: 6c2e736d ebx: c15f6240 ecx: c15740fc edx: 00000000
esi: 001fe7e0 edi: c15717e0 ebp: 00000001 esp: d1b13d10
ds: 007b es: 007b ss: 0068
Process tcsh (pid: 22836, threadinfo=d1b12000 task=c40eec60)
Stack: 00000000 c017154e c1574150 c0187ce3 c15f6240 00000005 c15717e0 c0188101
d7e08740 00000004 0000001e 00000001 fffffffa c15f2c00 fffffffa c0280b9c
00000000 00000001 00000000 d7e08740 c15717e0 00000001 c01608ec d7e08740
Call Trace:
[<c017154e>] invalidate_device+0x6e/0x90
[<c0187ce3>] delete_partition+0x83/0xa0
[<c0188101>] rescan_partitions+0x151/0x160
[<c0280b9c>] sd_open+0xac/0x120
[<c01608ec>] do_open+0xfc/0x410
[<c0160c7e>] blkdev_get+0x7e/0xa0
[<c0160730>] __check_disk_change+0x40/0x70
[<c01abc35>] check_disc_changed+0x45/0x50
[<c01abc6f>] scan_dir_for_removable+0x2f/0x80
[<c01ac237>] devfs_readdir+0x197/0x220
[<c016a82e>] vfs_readdir+0x9e/0xa0
[<c016ab50>] filldir64+0x0/0x120
[<c016ad0a>] sys_getdents64+0x9a/0xdd
[<c016ab50>] filldir64+0x0/0x120
[<c0169b71>] do_fcntl+0xe1/0x1b0
[<c0158300>] default_llseek+0x0/0xd0
[<c0158453>] sys_lseek+0x83/0xa0
[<c010941f>] syscall_call+0x7/0xb
Code: f0 81 28 00 00 00 01 0f 85 2b 23 00 00 89 5c 24 04 8b 43 20
[-- Attachment #3: oops-trace.txt --]
[-- Type: text/plain, Size: 1547 bytes --]
>>EIP; c01ab5b3 <devfs_unregister+23/50> <=====
>>eax; 6c2e736d <__crc_ide_do_reset+63b51/399654>
>>ebx; c15f6240 <__crc_global_cache_flush+72dda/2b10e2>
>>ecx; c15740fc <__crc_memcpy_tokerneliovec+316074/3253de>
>>esi; 001fe7e0 <__crc_smp_call_function+b280f/3c30bf>
>>edi; c15717e0 <__crc_memcpy_tokerneliovec+313758/3253de>
>>esp; d1b13d10 <__crc_pci_scan_slot+1d8152/25ce78>
Trace; c017154e <invalidate_device+6e/90>
Trace; c0187ce3 <delete_partition+83/a0>
Trace; c0188101 <rescan_partitions+151/160>
Trace; c0280b9c <sd_open+ac/120>
Trace; c01608ec <do_open+fc/410>
Trace; c0160c7e <blkdev_get+7e/a0>
Trace; c0160730 <__check_disk_change+40/70>
Trace; c01abc35 <check_disc_changed+45/50>
Trace; c01abc6f <scan_dir_for_removable+2f/80>
Trace; c01ac237 <devfs_readdir+197/220>
Trace; c016a82e <vfs_readdir+9e/a0>
Trace; c016ab50 <filldir64+0/120>
Trace; c016ad0a <sys_getdents64+9a/dd>
Trace; c016ab50 <filldir64+0/120>
Trace; c0169b71 <do_fcntl+e1/1b0>
Trace; c0158300 <default_llseek+0/d0>
Trace; c0158453 <sys_lseek+83/a0>
Trace; c010941f <syscall_call+7/b>
Code; c01ab5b3 <devfs_unregister+23/50>
00000000 <_EIP>:
Code; c01ab5b3 <devfs_unregister+23/50> <=====
0: f0 81 28 00 00 00 01 lock subl $0x1000000,(%eax) <=====
Code; c01ab5ba <devfs_unregister+2a/50>
7: 0f 85 2b 23 00 00 jne 2338 <_EIP+0x2338>
Code; c01ab5c0 <devfs_unregister+30/50>
d: 89 5c 24 04 mov %ebx,0x4(%esp,1)
Code; c01ab5c4 <devfs_unregister+34/50>
11: 8b 43 20 mov 0x20(%ebx),%eax
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: 2.5.65 jaz drive devfs oops
2003-03-19 19:14 2.5.65 jaz drive devfs oops Matthew Harrell
@ 2003-03-19 19:34 ` Christoph Hellwig
2003-03-19 21:45 ` Matthew Harrell
0 siblings, 1 reply; 8+ messages in thread
From: Christoph Hellwig @ 2003-03-19 19:34 UTC (permalink / raw)
To: Matthew Harrell; +Cc: Kernel List
On Wed, Mar 19, 2003 at 02:14:50PM -0500, Matthew Harrell wrote:
>
> Once the jaz drive spins down and then I try to access it again it either
> doesn't respond ever, hangs the process permenantly, or generates the
> attached oops. If anyone wants more info let me know and I'll reboot back
> with devfs turned on
This looks like the devfs (mis-)feature to reread partition tables at
inappropinquate places is biting us again.
Could you try the following patch (posted to lkml two times already)?
--- 1.27/arch/um/drivers/ubd_kern.c Sat Mar 8 17:50:21 2003
+++ edited/arch/um/drivers/ubd_kern.c Wed Mar 12 10:35:30 2003
@@ -507,7 +507,7 @@
/* /dev/ubd/N style names */
sprintf(devfs_name, "%d", unit);
*handle_out = devfs_register(dir_handle, devfs_name,
- DEVFS_FL_REMOVABLE, major, minor,
+ 0, major, minor,
S_IFBLK | S_IRUSR | S_IWUSR | S_IRGRP |
S_IWGRP, &ubd_blops, NULL);
disk->private_data = &ubd_dev[unit];
--- 1.73/fs/devfs/base.c Tue Mar 11 09:42:24 2003
+++ edited/fs/devfs/base.c Wed Mar 12 11:10:01 2003
@@ -758,7 +758,6 @@
rwlock_t lock; /* Lock for searching(R)/updating(W) */
struct devfs_entry *first;
struct devfs_entry *last;
- unsigned short num_removable; /* Lock for writing but not reading */
unsigned char no_more_additions:1;
};
@@ -766,7 +765,6 @@
{
struct block_device_operations *ops;
dev_t dev;
- unsigned char removable:1;
};
struct cdev_type
@@ -1017,7 +1015,6 @@
* _devfs_append_entry - Append a devfs entry to a directory's child list.
* @dir: The directory to add to.
* @de: The devfs entry to append.
- * @removable: If TRUE, increment the count of removable devices for %dir.
* @old_de: If an existing entry exists, it will be written here. This may
* be %NULL. An implicit devfs_get() is performed on this entry.
*
@@ -1028,7 +1025,7 @@
*/
static int _devfs_append_entry (devfs_handle_t dir, devfs_handle_t de,
- int removable, devfs_handle_t *old_de)
+ devfs_handle_t *old_de)
{
int retval;
@@ -1056,7 +1053,6 @@
if (dir->u.dir.first == NULL) dir->u.dir.first = de;
else dir->u.dir.last->next = de;
dir->u.dir.last = de;
- if (removable) ++dir->u.dir.num_removable;
retval = 0;
}
else retval = -EEXIST;
@@ -1095,13 +1091,13 @@
== NULL ) return NULL;
new->u.cdev.dev = devfs_alloc_devnum (S_IFCHR |S_IRUSR |S_IWUSR);
new->u.cdev.ops = &devfsd_fops;
- _devfs_append_entry (root_entry, new, FALSE, NULL);
+ _devfs_append_entry (root_entry, new, NULL);
#ifdef CONFIG_DEVFS_DEBUG
if ( ( new = _devfs_alloc_entry (".stat", 0, S_IFCHR | S_IRUGO | S_IWUGO) )
== NULL ) return NULL;
new->u.cdev.dev = devfs_alloc_devnum (S_IFCHR | S_IRUGO | S_IWUGO);
new->u.cdev.ops = &stat_fops;
- _devfs_append_entry (root_entry, new, FALSE, NULL);
+ _devfs_append_entry (root_entry, new, NULL);
#endif
return root_entry;
} /* End Function _devfs_get_root_entry */
@@ -1164,7 +1160,7 @@
{
de = _devfs_alloc_entry (name, next_pos, MODE_DIR);
devfs_get (de);
- if ( !de || _devfs_append_entry (dir, de, FALSE, &old) )
+ if ( !de || _devfs_append_entry (dir, de, &old) )
{
devfs_put (de);
if ( !old || !S_ISDIR (old->mode) )
@@ -1498,7 +1494,6 @@
de->u.bdev.dev = dev;
de->u.cdev.autogen = devnum != 0;
de->u.bdev.ops = ops;
- if (flags & DEVFS_FL_REMOVABLE) de->u.bdev.removable = TRUE;
} else {
PRINTK ("(%s): illegal mode: %x\n", name, mode);
devfs_put (de);
@@ -1516,7 +1511,7 @@
de->inode.uid = 0;
de->inode.gid = 0;
}
- err = _devfs_append_entry(dir, de, flags & DEVFS_FL_REMOVABLE, NULL);
+ err = _devfs_append_entry(dir, de, NULL);
if (err)
{
PRINTK ("(%s): could not append to parent, err: %d\n", name, err);
@@ -1553,8 +1548,6 @@
else de->next->prev = de->prev;
de->prev = de; /* Indicate we're unhooked */
de->next = NULL; /* Force early termination for <devfs_readdir> */
- if (S_ISBLK (de->mode) && de->u.bdev.removable )
- --parent->u.dir.num_removable;
return TRUE;
} /* End Function _devfs_unhook */
@@ -1648,7 +1641,7 @@
de->info = info;
de->u.symlink.linkname = newlink;
de->u.symlink.length = linklength;
- if ( ( err = _devfs_append_entry (dir, de, FALSE, NULL) ) != 0 )
+ if ( ( err = _devfs_append_entry (dir, de, NULL) ) != 0 )
{
PRINTK ("(%s): could not append to parent, err: %d\n", name, err);
devfs_put (dir);
@@ -1725,7 +1718,7 @@
return NULL;
}
de->info = info;
- if ( ( err = _devfs_append_entry (dir, de, FALSE, &old) ) != 0 )
+ if ( ( err = _devfs_append_entry (dir, de, &old) ) != 0 )
{
PRINTK ("(%s): could not append to dir: %p \"%s\", err: %d\n",
name, dir, dir->name, err);
@@ -1921,102 +1914,6 @@
} /* End Function try_modload */
-/**
- * check_disc_changed - Check if a removable disc was changed.
- * @de: The device.
- *
- * Returns 1 if the media was changed, else 0.
- *
- * This function may block, and may indirectly cause the parent directory
- * contents to be changed due to partition re-reading.
- */
-
-static int check_disc_changed (struct devfs_entry *de)
-{
- int tmp;
- int retval = 0;
- dev_t dev = de->u.bdev.dev;
- extern int warn_no_part;
-
- if (!S_ISBLK(de->mode))
- return 0;
- /* Ugly hack to disable messages about unable to read partition table */
- tmp = warn_no_part;
- warn_no_part = 0;
- retval = __check_disk_change(dev);
- warn_no_part = tmp;
- return retval;
-} /* End Function check_disc_changed */
-
-/**
- * scan_dir_for_removable - Scan a directory for removable media devices and check media.
- * @dir: The directory.
- *
- * This function may block, and may indirectly cause the directory
- * contents to be changed due to partition re-reading. The directory will
- * be locked for reading.
- */
-
-static void scan_dir_for_removable (struct devfs_entry *dir)
-{
- struct devfs_entry *de;
-
- read_lock (&dir->u.dir.lock);
- if (dir->u.dir.num_removable < 1) de = NULL;
- else
- {
- for (de = dir->u.dir.first; de != NULL; de = de->next)
- {
- if (S_ISBLK (de->mode) && de->u.bdev.removable) break;
- }
- devfs_get (de);
- }
- read_unlock (&dir->u.dir.lock);
- if (de) check_disc_changed (de);
- devfs_put (de);
-} /* End Function scan_dir_for_removable */
-
-/**
- * get_removable_partition - Get removable media partition.
- * @dir: The parent directory.
- * @name: The name of the entry.
- * @namelen: The number of characters in <<name>>.
- *
- * Returns 1 if the media was changed, else 0.
- *
- * This function may block, and may indirectly cause the directory
- * contents to be changed due to partition re-reading. The directory must
- * be locked for reading upon entry, and will be unlocked upon exit.
- */
-
-static int get_removable_partition (struct devfs_entry *dir, const char *name,
- unsigned int namelen)
-{
- int retval;
- struct devfs_entry *de;
-
- if (dir->u.dir.num_removable < 1)
- {
- read_unlock (&dir->u.dir.lock);
- return 0;
- }
- for (de = dir->u.dir.first; de != NULL; de = de->next)
- {
- if (!S_ISBLK (de->mode) || !de->u.bdev.removable) continue;
- if (strcmp (de->name, "disc") == 0) break;
- /* Support for names where the partition is appended to the disc name
- */
- if (de->namelen >= namelen) continue;
- if (strncmp (de->name, name, de->namelen) == 0) break;
- }
- devfs_get (de);
- read_unlock (&dir->u.dir.lock);
- retval = de ? check_disc_changed (de) : 0;
- devfs_put (de);
- return retval;
-} /* End Function get_removable_partition */
-
-
/* Superblock operations follow */
static struct inode_operations devfs_iops;
@@ -2166,7 +2063,6 @@
switch ( (long) file->f_pos )
{
case 0:
- scan_dir_for_removable (parent);
err = (*filldir) (dirent, "..", 2, file->f_pos,
parent_ino (file->f_dentry), DT_DIR);
if (err == -EINVAL) break;
@@ -2404,18 +2300,7 @@
if (parent == NULL) return ERR_PTR (-ENOENT);
read_lock (&parent->u.dir.lock);
de = _devfs_search_dir (parent, dentry->d_name.name, dentry->d_name.len);
- if (de) read_unlock (&parent->u.dir.lock);
- else
- { /* Try re-reading the partition (media may have changed) */
- if ( get_removable_partition (parent, dentry->d_name.name,
- dentry->d_name.len) ) /* Unlocks */
- { /* Media did change */
- read_lock (&parent->u.dir.lock);
- de = _devfs_search_dir (parent, dentry->d_name.name,
- dentry->d_name.len);
- read_unlock (&parent->u.dir.lock);
- }
- }
+ read_unlock (&parent->u.dir.lock);
lookup_info.de = de;
init_waitqueue_head (&lookup_info.wait_queue);
dentry->d_fsdata = &lookup_info;
@@ -2542,7 +2427,7 @@
de = _devfs_alloc_entry (dentry->d_name.name, dentry->d_name.len, mode);
if (!de) return -ENOMEM;
de->vfs_deletable = TRUE;
- if ( ( err = _devfs_append_entry (parent, de, FALSE, NULL) ) != 0 )
+ if ( ( err = _devfs_append_entry (parent, de, NULL) ) != 0 )
return err;
de->inode.uid = current->euid;
de->inode.gid = current->egid;
@@ -2610,7 +2495,7 @@
de->u.cdev.dev = rdev;
else if (S_ISBLK (mode))
de->u.bdev.dev = rdev;
- if ( ( err = _devfs_append_entry (parent, de, FALSE, NULL) ) != 0 )
+ if ( ( err = _devfs_append_entry (parent, de, NULL) ) != 0 )
return err;
de->inode.uid = current->euid;
de->inode.gid = current->egid;
===== fs/partitions/check.c 1.96 vs edited =====
--- 1.96/fs/partitions/check.c Sat Mar 8 17:50:30 2003
+++ edited/fs/partitions/check.c Wed Mar 12 10:35:00 2003
@@ -156,7 +156,6 @@
{
#ifdef CONFIG_DEVFS_FS
devfs_handle_t dir;
- unsigned int devfs_flags = DEVFS_FL_DEFAULT;
struct hd_struct *p = dev->part;
char devname[16];
@@ -165,10 +164,8 @@
dir = dev->de;
if (!dir)
return;
- if (dev->flags & GENHD_FL_REMOVABLE)
- devfs_flags |= DEVFS_FL_REMOVABLE;
sprintf(devname, "part%d", part);
- p[part-1].de = devfs_register (dir, devname, devfs_flags,
+ p[part-1].de = devfs_register (dir, devname, 0,
dev->major, dev->first_minor + part,
S_IFBLK | S_IRUSR | S_IWUSR,
dev->fops, NULL);
@@ -185,11 +182,8 @@
#ifdef CONFIG_DEVFS_FS
int pos = 0;
devfs_handle_t dir, slave;
- unsigned int devfs_flags = DEVFS_FL_DEFAULT;
char dirname[64], symlink[16];
- if (dev->flags & GENHD_FL_REMOVABLE)
- devfs_flags |= DEVFS_FL_REMOVABLE;
if (dev->flags & GENHD_FL_DEVFS) {
dir = dev->de;
if (!dir) /* Aware driver wants to block disc management */
@@ -209,7 +203,7 @@
sprintf(symlink, "discs/disc%d", dev->number);
devfs_mk_symlink(NULL, symlink, DEVFS_FL_DEFAULT,
dirname + pos, &slave, NULL);
- dev->disk_de = devfs_register(dir, "disc", devfs_flags,
+ dev->disk_de = devfs_register(dir, "disc", 0,
dev->major, dev->first_minor,
S_IFBLK | S_IRUSR | S_IWUSR, dev->fops, NULL);
#endif
--- 1.30/include/linux/devfs_fs_kernel.h Tue Mar 11 08:58:19 2003
+++ edited/include/linux/devfs_fs_kernel.h Wed Mar 12 10:51:40 2003
@@ -13,7 +13,6 @@
#define DEVFS_FL_NONE 0x000 /* This helps to make code more readable
*/
-#define DEVFS_FL_REMOVABLE 0x008 /* This is a removable media device */
#define DEVFS_FL_WAIT 0x010 /* Wait for devfsd to finish */
#define DEVFS_FL_CURRENT_OWNER 0x020 /* Set initial ownership to current */
#define DEVFS_FL_DEFAULT DEVFS_FL_NONE
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: 2.5.65 jaz drive devfs oops
2003-03-19 19:34 ` Christoph Hellwig
@ 2003-03-19 21:45 ` Matthew Harrell
2003-03-19 23:57 ` Matthew Harrell
0 siblings, 1 reply; 8+ messages in thread
From: Matthew Harrell @ 2003-03-19 21:45 UTC (permalink / raw)
To: Christoph Hellwig, Kernel List
: > Once the jaz drive spins down and then I try to access it again it either
: > doesn't respond ever, hangs the process permenantly, or generates the
: > attached oops. If anyone wants more info let me know and I'll reboot back
: > with devfs turned on
:
: This looks like the devfs (mis-)feature to reread partition tables at
: inappropinquate places is biting us again.
:
:
: Could you try the following patch (posted to lkml two times already)?
So far it's looking good. I waited until the drive had totally spun down
then tried going to it's automount directory and it spun up and mounted fine
sdb: Spinning up disk...........ready
SCSI device sdb: 2091050 512-byte hdwr sectors (1071 MB)
sdb: Write Protect is off
sdb: Mode Sense: 39 00 10 08
SCSI device sdb: drive cache: write back
SCSI device sdb: 2091050 512-byte hdwr sectors (1071 MB)
sdb: Write Protect is off
sdb: Mode Sense: 39 00 10 08
SCSI device sdb: drive cache: write back
/dev/scsi/host0/bus0/target4/lun0: p4
found reiserfs format "3.6" with standard journal
Reiserfs journal params: device sd(8,20), size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
reiserfs: checking transaction log (sd(8,20)) for (sd(8,20))
Using r5 hash to sort names
I'll try it again in an hour or so with some different tests. Thanks for the
patch
--
Matthew Harrell If at first you don't succeed,
Bit Twiddlers, Inc. try management.
mharrell@bittwiddlers.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: 2.5.65 jaz drive devfs oops
2003-03-19 21:45 ` Matthew Harrell
@ 2003-03-19 23:57 ` Matthew Harrell
2003-03-21 2:53 ` Matthew Harrell
0 siblings, 1 reply; 8+ messages in thread
From: Matthew Harrell @ 2003-03-19 23:57 UTC (permalink / raw)
To: Christoph Hellwig, Kernel List
Well, the second test just now didn't work right.
/dev/scsi/host0/bus0/target4/lun0/disc did exist this time around but I got
the same error as before trying to get anything going on it and I can no
longer get the jaz drive to work.
: So far it's looking good. I waited until the drive had totally spun down
: then tried going to it's automount directory and it spun up and mounted fine
:
: sdb: Spinning up disk...........ready
: SCSI device sdb: 2091050 512-byte hdwr sectors (1071 MB)
: sdb: Write Protect is off
: sdb: Mode Sense: 39 00 10 08
: SCSI device sdb: drive cache: write back
: SCSI device sdb: 2091050 512-byte hdwr sectors (1071 MB)
: sdb: Write Protect is off
: sdb: Mode Sense: 39 00 10 08
: SCSI device sdb: drive cache: write back
: /dev/scsi/host0/bus0/target4/lun0: p4
: found reiserfs format "3.6" with standard journal
: Reiserfs journal params: device sd(8,20), size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
: reiserfs: checking transaction log (sd(8,20)) for (sd(8,20))
: Using r5 hash to sort names
:
: I'll try it again in an hour or so with some different tests. Thanks for the
: patch
--
Matthew Harrell If you can't convince them,
Bit Twiddlers, Inc. confuse them...
mharrell@bittwiddlers.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: 2.5.65 jaz drive devfs oops
2003-03-19 23:57 ` Matthew Harrell
@ 2003-03-21 2:53 ` Matthew Harrell
2003-03-21 9:05 ` Christoph Hellwig
0 siblings, 1 reply; 8+ messages in thread
From: Matthew Harrell @ 2003-03-21 2:53 UTC (permalink / raw)
To: Christoph Hellwig, Kernel List
And, even with "devfs=nomount" on the boot line and no devfs used I still
get the same error once the jaz drive totally cycles down.
Besides building the kernel without devfs is there a good solution for this?
: Well, the second test just now didn't work right.
: /dev/scsi/host0/bus0/target4/lun0/disc did exist this time around but I got
: the same error as before trying to get anything going on it and I can no
: longer get the jaz drive to work.
--
Matthew Harrell Dogs have masters,
Bit Twiddlers, Inc. cats have staff
mharrell@bittwiddlers.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: 2.5.65 jaz drive devfs oops
2003-03-21 2:53 ` Matthew Harrell
@ 2003-03-21 9:05 ` Christoph Hellwig
2003-03-21 12:14 ` Matthew Harrell
2003-03-21 14:38 ` Matthew Harrell
0 siblings, 2 replies; 8+ messages in thread
From: Christoph Hellwig @ 2003-03-21 9:05 UTC (permalink / raw)
To: Matthew Harrell; +Cc: Kernel List
On Thu, Mar 20, 2003 at 09:53:00PM -0500, Matthew Harrell wrote:
>
> And, even with "devfs=nomount" on the boot line and no devfs used I still
> get the same error once the jaz drive totally cycles down.
Is the OOPS with devfs=nomount exactly the same? If no or you're
unsure please post it, too.
> Besides building the kernel without devfs is there a good solution for this?
Well, not compiling in devfs is always a good idea :) But we should fix
this anyway.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: 2.5.65 jaz drive devfs oops
2003-03-21 9:05 ` Christoph Hellwig
@ 2003-03-21 12:14 ` Matthew Harrell
2003-03-21 14:38 ` Matthew Harrell
1 sibling, 0 replies; 8+ messages in thread
From: Matthew Harrell @ 2003-03-21 12:14 UTC (permalink / raw)
To: Kernel List
: > And, even with "devfs=nomount" on the boot line and no devfs used I still
: > get the same error once the jaz drive totally cycles down.
:
: Is the OOPS with devfs=nomount exactly the same? If no or you're
: unsure please post it, too.
Yep, it's always mounted the same but the other thing I just remembered is
that it's set up to use the automounter every time I go into /mnt/jaz. So,
if I permenantly mount the jaz drive somewhere and just have /mnt/jaz be
a intra-system link then it does work. I guess this means it's a problem
with the jaz drive spinning down and "detaching" itself from the scsi bus?
I decided I would try it that way for the moment since I could then keep
devfs on the system. No oops but I'm sure if I unmounted it for about an
hour and then tried to mount it again it would oops
--
Matthew Harrell Every morning is the dawn of a
Bit Twiddlers, Inc. new error.
mharrell@bittwiddlers.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: 2.5.65 jaz drive devfs oops
2003-03-21 9:05 ` Christoph Hellwig
2003-03-21 12:14 ` Matthew Harrell
@ 2003-03-21 14:38 ` Matthew Harrell
1 sibling, 0 replies; 8+ messages in thread
From: Matthew Harrell @ 2003-03-21 14:38 UTC (permalink / raw)
To: Christoph Hellwig, Kernel List
[-- Attachment #1: Type: text/plain, Size: 536 bytes --]
: Is the OOPS with devfs=nomount exactly the same? If no or you're
: unsure please post it, too.
I misread this the first time. It looks different but I'm not sure I got
good output from ksymoops. I attached the raw oops and the procesed oops
below. This is with kernel 2.5.65-bk1 SMP with that devfs patch
--
Matthew Harrell Do not meddle in the affairs of cats
Bit Twiddlers, Inc. for they are subtle and will piss
mharrell@bittwiddlers.com on your computer
[-- Attachment #2: oops.txt --]
[-- Type: text/plain, Size: 1567 bytes --]
Unable to handle kernel paging request at virtual address 6f6c2e6d
c01ab313
*pde = 00000000
Oops: 0002 [#1]
CPU: 1
EIP: 0060:[devfs_unregister+35/80] Not tainted
EFLAGS: 00010202
eax: 6f6c2e6d ebx: c15f6240 ecx: c15740fc edx: 00000000
esi: 001fe7e0 edi: c1571720 ebp: 00000001 esp: c1b19b58
ds: 007b es: 007b ss: 0068
Stack: 00000000 c017136e c1574150 c0187ad3 c15f6240 00000005 c1571720 c0187ef1
d7e08740 00000004 0000001e 00000001 fffffffa c15f2c00 fffffffa c028070c
00000000 00000001 00000000 d7e08740 c1571720 00000001 c016070c d7e08740
Call Trace:
Warning (Oops_read): Code line not seen, dumping what data is available
>>eax; 6f6c2e6d <__crc_xfrm_policy_insert+1d29de/ac2af0>
>>ebx; c15f6240 <__crc_global_cache_flush+72dda/1b3b85>
>>ecx; c15740fc <__crc_memcpy_tokerneliovec+316074/3253de>
>>esi; 001fe7e0 <__crc_smp_call_function+b280f/25f714>
>>edi; c1571720 <__crc_memcpy_tokerneliovec+313698/3253de>
>>esp; c1b19b58 <__crc_unregister_chrdev+1ec6c7/2f9bc8>
Code: f0 81 28 00 00 00 01 0f 85 fb 20 00 00 89 5c 24 04 8b 43 20
Using defaults from ksymoops -t elf32-i386 -a i386
Code; 00000000 Before first symbol
00000000 <_EIP>:
Code; 00000000 Before first symbol
0: f0 81 28 00 00 00 01 lock subl $0x1000000,(%eax)
Code; 00000007 Before first symbol
7: 0f 85 fb 20 00 00 jne 2108 <_EIP+0x2108>
Code; 0000000d Before first symbol
d: 89 5c 24 04 mov %ebx,0x4(%esp,1)
Code; 00000011 Before first symbol
11: 8b 43 20 mov 0x20(%ebx),%eax
[-- Attachment #3: oops-raw.txt --]
[-- Type: text/plain, Size: 2359 bytes --]
sdb: Spinning up disk...........ready
SCSI device sdb: 2091050 512-byte hdwr sectors (1071 MB)
sdb: Write Protect is off
sdb: Mode Sense: 39 00 10 08
SCSI device sdb: drive cache: write back
Unable to handle kernel paging request at virtual address 6f6c2e6d
printing eip:
c01ab313
*pde = 00000000
Oops: 0002 [#1]
CPU: 1
EIP: 0060:[devfs_unregister+35/80] Not tainted
EFLAGS: 00010202
EIP is at devfs_unregister+0x23/0x50
eax: 6f6c2e6d ebx: c15f6240 ecx: c15740fc edx: 00000000
esi: 001fe7e0 edi: c1571720 ebp: 00000001 esp: c1b19b58
ds: 007b es: 007b ss: 0068
Process mount (pid: 13732, threadinfo=c1b18000 task=d2efd960)
Stack: 00000000 c017136e c1574150 c0187ad3 c15f6240 00000005 c1571720 c0187ef1
d7e08740 00000004 0000001e 00000001 fffffffa c15f2c00 fffffffa c028070c
00000000 00000001 00000000 d7e08740 c1571720 00000001 c016070c d7e08740
Call Trace:
[invalidate_device+110/144] invalidate_device+0x6e/0x90
[delete_partition+131/160] delete_partition+0x83/0xa0
[rescan_partitions+337/352] rescan_partitions+0x151/0x160
[sd_open+172/288] sd_open+0xac/0x120
[do_open+252/1040] do_open+0xfc/0x410
[do_page_fault+316/1151] do_page_fault+0x13c/0x47f
[blkdev_get+126/160] blkdev_get+0x7e/0xa0
[do_open+619/1040] do_open+0x26b/0x410
[blkdev_get+126/160] blkdev_get+0x7e/0xa0
[open_bdev_excl+103/176] open_bdev_excl+0x67/0xb0
[__crc_device_add+1598495/1798932] reiserfs_fs_type+0x0/0x6c [reiserfs]
[__crc_device_add+1598495/1798932] reiserfs_fs_type+0x0/0x6c [reiserfs]
[get_sb_bdev+55/352] get_sb_bdev+0x37/0x160
[__crc_device_add+1598495/1798932] reiserfs_fs_type+0x0/0x6c [reiserfs]
[__crc_device_add+1598495/1798932] reiserfs_fs_type+0x0/0x6c [reiserfs]
[__crc_device_add+1467694/1798932] get_super_block+0x2f/0x33 [reiserfs]
[__crc_device_add+1598495/1798932] reiserfs_fs_type+0x0/0x6c [reiserfs]
[__crc_device_add+1466095/1798932] reiserfs_fill_super+0x0/0x5c0 [reiserfs]
[do_kern_mount+99/272] do_kern_mount+0x63/0x110
[__crc_device_add+1598495/1798932] reiserfs_fs_type+0x0/0x6c [reiserfs]
[do_add_mount+129/368] do_add_mount+0x81/0x170
[do_mount+385/464] do_mount+0x181/0x1d0
[copy_mount_options+218/224] copy_mount_options+0xda/0xe0
[sys_mount+225/320] sys_mount+0xe1/0x140
[syscall_call+7/11] syscall_call+0x7/0xb
Code: f0 81 28 00 00 00 01 0f 85 fb 20 00 00 89 5c 24 04 8b 43 20
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2003-03-21 14:30 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-03-19 19:14 2.5.65 jaz drive devfs oops Matthew Harrell
2003-03-19 19:34 ` Christoph Hellwig
2003-03-19 21:45 ` Matthew Harrell
2003-03-19 23:57 ` Matthew Harrell
2003-03-21 2:53 ` Matthew Harrell
2003-03-21 9:05 ` Christoph Hellwig
2003-03-21 12:14 ` Matthew Harrell
2003-03-21 14:38 ` Matthew Harrell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox