Re: Possible dcache BUG

From: Gene Heskett (gene.heskett_at_verizon.net)
Date: 08/14/04

  • Next message: Jon Smirl: "Re: [PATCH] add PCI ROMs to sysfs"
    To: linux-kernel@vger.kernel.org
    Date:	Sat, 14 Aug 2004 01:19:56 -0400
    
    

    On Friday 13 August 2004 22:18, Marcelo Tosatti wrote:
    >On Fri, Aug 13, 2004 at 12:27:24AM -0400, Gene Heskett wrote:
    >> On Wednesday 11 August 2004 00:59, Linus Torvalds wrote:
    [...]
    >
    >Hi fellows,
    >
    >I've taken some time to look at this oopses, and I truly believe we
    >are facing real corruption.
    >
    >The symptom is that an inode's (blockdev) i_mapping->private_list
    > gets corrupted, one of its buffer_head's contains a b_assoc_mapping
    > list_head with NULL pointers.
    >
    >And this is not an SMP race, because Gene is not running SMP.
    >
    >Gene's oops happens when remove_inode_buffers calls
    > __remove_assoc_queue(bh)
    >
    >Ingo's oops happens while remove_inode_buffers does
    >
    > struct buffer_head *bh = BH_ENTRY(list->next);
    >
    >which is
    >
    > mov ffffffd8(%ecx), (%somewhere)
    >
    >%ecx is zero, so...
    >
    >There is a bug somewhere.
    >
    >--- a/fs/buffer.c.original 2004-08-14 00:19:55.000000000 -0300
    >+++ b/fs/buffer.c 2004-08-14 00:34:57.000000000 -0300
    >@@ -802,6 +802,8 @@
    > */
    > static inline void __remove_assoc_queue(struct buffer_head *bh)
    > {
    >+ BUG_ON(bh->b_assoc_buffers.next == NULL);
    >+ BUG_ON(bh->b_assoc_buffers.prev == NULL);
    > list_del_init(&bh->b_assoc_buffers);
    > }
    >
    >@@ -1073,6 +1075,7 @@
    >
    > spin_lock(&buffer_mapping->private_lock);
    > while (!list_empty(list)) {
    >+ BUG_ON(list->next == NULL);
    > struct buffer_head *bh = BH_ENTRY(list->next);
    > if (buffer_dirty(bh)) {
    > ret = 0;
    >
    Marcelo; I've put in the patch that disables the prefetch, and thats
    been running ok so far, but uptime is still pretty short, in hours.
    But if it eventually does an Oops on me, the reboot will bring this
    one in too, its building right now.

    -- 
    Cheers, Gene
    "There are four boxes to be used in defense of liberty:
     soap, ballot, jury, and ammo. Please use in that order."
    -Ed Howdershelt (Author)
    99.24% setiathome rank, not too shabby for a WV hillbilly
    Yahoo.com attorneys please note, additions to this message
    by Gene Heskett are:
    Copyright 2004 by Maurice Eugene Heskett, all rights reserved.
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    

  • Next message: Jon Smirl: "Re: [PATCH] add PCI ROMs to sysfs"

    Relevant Pages

    • Re: [BUG ?] smbfs open always succeeds
      ... On Saturday 11 December 2004 16:24, Marcelo Tosatti wrote: ... My wet ram is at least 50 ... Copyright 2004 by Maurice Eugene Heskett, ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: Possible dcache BUG
      ... On Friday 20 August 2004 03:33, Marcelo Tosatti wrote: ... >> get cpuburn and memburn, and before fixing the scanf statement (it ... Copyright 2004 by Maurice Eugene Heskett, ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: kernel BUG at page_alloc.c
      ... Marcelo Tosatti wrote: ... > Its the third or fourth report like this I see, ... CONFIG_GRKERNSEC_PAX_MPROTECT) and i don't remember seeing such BUG... ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: 2.4.x performance tests Re: [PATCH] BUG() in exec_mmap()
      ... On Thursday, 9-Oct-2003 at 17:25 -0300, Marcelo Tosatti wrote: ... > I've done some tests and no big performance harm has showed up, but thats ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: libata in 2.4.24?
      ... Marcelo Tosatti wrote: ... | On Mon, 1 Dec 2003, Xose Vazquez Perez wrote: ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)