:I have also looked into this a while ago, but got stuck at some :point. I have just looked at it again, and I think I have found a solution. : :... : :This is probably because the map entries do have a NULL object :pointer. vm_map_pageable() calls vm_fault_wire(), so this will fail. : :I have attached a patch which works for me. It duplicates most of the :logic of kmem_alloc in that it calls vm_map_findspace() first, then :vm_map_insert() (which basically is what is done in :kmem_alloc_pageable() too, but here, kernel_object is passed instead :of a NULL pointer, so that the map entry will have a valid object :pointer). Then, the pages are inserted into the object as before, and :finally, the map entries are marked as wired by using :vm_map_pageable(). Because this will also call vm_fault_wire(), which :will among other things do a vm_page_wire(), contigmalloc does not :need to wire the pages itself. : :The pmap_kenter() calls can also be reomved, since the pages will be :mapped in any case by vm_fault(). : : - thomas
Ach, of course. I see what's happening now! Thomas, your patch looks good! I'm going to patch it in and test it a bit. -Matt To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message