Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Jan 1999 16:01:52 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        "John S. Dyson" <root@dyson.iquest.net>, dg@root.com, jkh@FreeBSD.ORG, hackers@FreeBSD.ORG
Subject:   Re: Found problem w/ Paging performance over NFS 
Message-ID:  <199901190001.QAA82498@apollo.backplane.com>

next in thread | raw e-mail | index | archive | help
    Here's another piece of code to check:

    in kern/vfs_bio.c, allocbuf()

	    } else if (m->flags & PG_BUSY) {
		    s = splvm();
		    if (m->flags & PG_BUSY) {
			    vm_page_flag_set(m, PG_WANTED);
			    tsleep(m, PVM, "pgtblk", 0);
		    }  
		    splx(s);
		    goto doretry;
	    } else {
		    ...
		    if (tinc > (newbsize - toff))
			    tinc = newbsize - toff;
		    if (bp->b_flags & B_CACHE)
			    vfs_buf_set_valid(bp, off, toff, tinc, m);
		    vm_page_flag_clear(m, PG_ZERO);
		    vm_page_wire(m);
	    }

    Shouldn't those conditionals be 'm->busy || (m->flags & PG_BUSY)' instead
    of just testing against PG_BUSY?  A pageout operation will set m->busy
    without setting PG_BUSY.

					-Matt

					Matthew Dillon 
					<dillon@backplane.com>


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



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