Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Sep 1998 11:30:56 -0700 (PDT)
From:      Matthew Dillon <dillon@backplane.com>
To:        dillon@apollo.backplane.com
Cc:        cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG
Subject:   Re: A second mmap file corruption issue 
Message-ID:  <199809291830.LAA20898@apollo.backplane.com>

next in thread | raw e-mail | index | archive | help
    Bleh.  ok, that didn't work :-)  I guess any page replaced by bogus_page 
    is supposed to be left wired, so a vmlookup when it's reloaded into the
    bp doesn't have to rewire it.

    This bogus_page and wire count stuff is scary.

						-Matt

:
:	(1) around line 659 of kern/vfs_bio.c, in brelse().  I think the page 
:	    needs to be wired !!!!!!!   Won't the wire count get corrupted
:	    when the bp is released and the page isn't wired ?
:
:    if (m == bogus_page) {
:	    m = vm_page_lookup(obj, poff + j);
:	  ...
:	    bp->b_pages[j] = m;
:    }
:
:
:	(2) around line 1969 of kern/vfs_bio.c, in biodone.  I think this
:	    page needs to be wired as well.
:
:    if (m == bogus_page) {
:	bogusflag = 1;
:	m = vm_page_lookup(obj, OFF_TO_IDX(foff));
:	   ...
:	bp->b_pages[i] = m;
:	pmap_qenter(trunc_page(bp->b_data), bp->b_pages, bp->b_npages);
:    }
:
:
:	(3) Could someone also check vfs_busy_pages() and vfs_unbusy_pages() ?
:	    busy_pages removes pages from the bp without unwiring them, 
:	    presumably because unbusy_pages adds them back without wiring 
:	    them.  That seems rather fragile to me but I *think* the code is
:	    doing the right thing as long as all vfs_busy_pages() calls are
:	    matched by vfs_unbusy_pages() calls.
:
:						-Matt
:
:    Matthew Dillon  Engineering, HiWay Technologies, Inc. & BEST Internet 
:                    Communications & God knows what else.
:    <dillon@backplane.com> (Please include original email in any response)    
:

    Matthew Dillon  Engineering, HiWay Technologies, Inc. & BEST Internet 
                    Communications & God knows what else.
    <dillon@backplane.com> (Please include original email in any response)    



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199809291830.LAA20898>