Re: Oops with 2.4.0-test13pre3 - swapoff

2000-12-22 Thread Christoph Rohland

Marcelo Tosatti <[EMAIL PROTECTED]> writes:

> Christoph is already looking at it and should have a fix soon.

Here it comes against 13-pre4 ...

We cannot call delete_from_swap_cache, it was called already in
try_to_unuse.

There is still a race when we page in the page which is
just freed in try_to_unuse. I am not sure how to fix this.

Also the add_to_page_cache forgot the offset  :-(

Greetings
Christoph

--- 4-13-4/mm/shmem.c   Fri Dec 22 10:05:38 2000
+++ m4-13-4/mm/shmem.c  Fri Dec 22 10:47:11 2000
@@ -761,14 +761,16 @@
swp_entry_t **base, **ptr;
unsigned long idx;
int offset;
+   struct shmem_inode_info *info = &inode->u.shmem_i;

idx = 0;
-   if ((offset = shmem_clear_swp (entry, inode->u.shmem_i.i_direct, 
SHMEM_NR_DIRECT)) >= 0)
+   spin_lock (&info->lock);
+   if ((offset = shmem_clear_swp (entry,info->i_direct, SHMEM_NR_DIRECT)) >= 0)
goto found;
 
idx = SHMEM_NR_DIRECT;
-   if (!(base = inode->u.shmem_i.i_indirect))
-   return 0;
+   if (!(base = info->i_indirect))
+   goto out;
 
for (ptr = base; ptr < base + ENTRIES_PER_PAGE; ptr++) {
if (*ptr &&
@@ -776,16 +778,16 @@
goto found;
idx += ENTRIES_PER_PAGE;
}
+out:
+   spin_unlock (&info->lock);
return 0;
 found:
-   delete_from_swap_cache (page);
-   add_to_page_cache (page, inode->i_mapping, idx);
+   add_to_page_cache (page, inode->i_mapping, offset + idx);
SetPageDirty (page);
SetPageUptodate (page);
UnlockPage (page);
-   spin_lock (&inode->u.shmem_i.lock);
-   inode->u.shmem_i.swapped--;
-   spin_unlock (&inode->u.shmem_i.lock);
+   info->swapped--;
+   spin_unlock (&info->lock);
return 1;
 }
 

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Oops with 2.4.0-test13pre3 - swapoff

2000-12-21 Thread Marcelo Tosatti



On Wed, 20 Dec 2000, Zdenek Kabelac wrote:

> > Zdenek Kabelac wrote:
> > > This is oops I've got when rebooting after some heavy disk activity on
> > > my SMP system:
> > > 
> > > Written by hand:
> > > 
> > > kernel BUG swap_state.c:78!
> > [snip]
> > 
> > Same here during a halt of a RH 6.2 based K6-2 500 MHz
> > UP machine running lk240t13p3. The machine had been on
> > for a while and had built a kernel amongst other things.
> > 
> 
> I'll just append that my machine has been up for just several
> minutes (maybe 10) but has been doing heavy copying - several
> 600MB files between some partitions.
> 
> So maybe the problem with memory thrashing is still not fully fixed ???

The bug was in new shm's code it seems.

Christoph is already looking at it and should have a fix soon.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Oops with 2.4.0-test13pre3 - swapoff

2000-12-20 Thread Zdenek Kabelac

> Zdenek Kabelac wrote:
> > This is oops I've got when rebooting after some heavy disk activity on
> > my SMP system:
> > 
> > Written by hand:
> > 
> > kernel BUG swap_state.c:78!
> [snip]
> 
> Same here during a halt of a RH 6.2 based K6-2 500 MHz
> UP machine running lk240t13p3. The machine had been on
> for a while and had built a kernel amongst other things.
> 

I'll just append that my machine has been up for just several
minutes (maybe 10) but has been doing heavy copying - several
600MB files between some partitions.

So maybe the problem with memory thrashing is still not fully fixed ???


-- 
 There are three types of people in the world:
   those who can count, and those who can't.
  Zdenek Kabelac  http://i.am/kabi/ [EMAIL PROTECTED] {debian.org; fi.muni.cz}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Oops with 2.4.0-test13pre3 - swapoff

2000-12-20 Thread Douglas Gilbert

Zdenek Kabelac wrote:
> This is oops I've got when rebooting after some heavy disk activity on
> my SMP system:
> 
> Written by hand:
> 
> kernel BUG swap_state.c:78!
[snip]

Same here during a halt of a RH 6.2 based K6-2 500 MHz
UP machine running lk240t13p3. The machine had been on
for a while and had built a kernel amongst other things.

Lead up was:
$ halt
.
Sending all processes the KILL signal[OK]
Turning off swap VM: __lru_cache_del, found unknown page ?!
kernel BUG at swap_state.c:78


Doug Gilbert


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/