Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Aug 2000 12:20:04 -0700 (PDT)
From:      Tor.Egge@fast.no
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/20609: panic: vm_fault: fault on nofault entry, addr: cc4b3000 
Message-ID:  <200008151920.MAA92075@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/20609; it has been noted by GNATS.

From: Tor.Egge@fast.no
To: sheldonh@uunet.co.za
Cc: dillon@freebsd.org
Subject: Re: kern/20609: panic: vm_fault: fault on nofault entry, addr: cc4b3000 
Date: Tue, 15 Aug 2000 21:14:36 +0200

 > Hi Tor,
 > 
 > Have you dropped Matt Dillon <dillon@FreeBSD.org> a message pointing him
 > to this PR, or are you going to tackle this yourself?  If the latter,
 > will you assign the PR to yourself?
 
 He gets this message.
 
 I'm currently looking into the class of problem by adding some 
 helper functions that can be used for invariant checks.
 
 e.g. 
 
  -  Denote that a function should not be allowed to block:
 
 	- increase mi_switch disallow counter
 
 	- decrease mi_switch disallow counter
 
 
  - Check that process is allowed to block when trying to do so
    (inside mi_switch and tsleep)
 
  - Check that process is allowed to block at various other
    points (malloc with M_WAIT, zalloc on zone without ZONE_INTERRUPT flag
    set, vm_page_grab with VM_ALLOC_RETRY)
 
  - Check that we've got proper spl protection
    (zalloc one zone with ZONE_INTERRUPT flag set).
 
  - Disallow blocking in vm_map_delete, vm_map_findspace and
    vm_map_findspace if the map is a system map.
 
 The first relevant changes should probably be:
 
 	- buffer_map should be a system map to avoid blocking.
 
 	- vm_map* routines should not create extra objects on system maps
 	  since the object allocation might block.  Since system maps
 	  might be manipulated by interrupts, blocking is not allowed.
 
 	- vm_map_entry_create and vm_map_entry_dispose should use
 	  zalloci/zfreei when allocating/freeing elements from/to 
 	  kmapentzone.  This to avoid race conditions when interrupts
 	  manipulate maps.
 	
 
 Further changes might be needed to ensure consistent behavior as 
 blocking routines called from routines not allowed to block is found.
 
 I do not plan on committing any fix for this before it has been reviewed.
 
 - Tor Egge
 


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




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