Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Jun 2000 10:33:19 -0700 (PDT)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Oleg Derevenetz <oleg@oleg.vsi.ru>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: vm_fault() problem
Message-ID:  <200006011733.KAA39949@apollo.backplane.com>
References:   <Pine.BSF.4.21.0006011257530.378-100000@oleg.vsi.ru>

next in thread | previous in thread | raw e-mail | index | archive | help

:It seems to be a problem in vm/vm_fault() and 
:vnode_pager_generic_putpages() in FreeBSD 3.x & 4.0.
:
:The following code illustrates the problem:
:
:#include <sys/types.h>
:#include <sys/mman.h>
:...

    Yes, this is definitely a bug.  I'll take a look at fixing it on
    the weekend.  I think what we have to do is allocate the file blocks
    at the time the page is dirties instead of later on when we try
    to flush the page out.  It should be possible to do this in
    vm/vm_fault.c line 255 (in vm_fault(), the call to vm_freeze_copyopts()).

    This way if the filesystem runs out of space we can seg-fault the
    process synchronously.

    The problem as it stands now is that the pages are flushed 
    asynchronously, and so the bitmap allocation can occur at a random
    time.

					    -Matt



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?200006011733.KAA39949>