Re: Oops with 2.4.0-test13pre3 - swapoff
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
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
> 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
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/