Author: alc
Date: Mon May  3 07:08:16 2010
New Revision: 207552
URL: http://svn.freebsd.org/changeset/base/207552

Log:
  The pages allocated by kmem_alloc_attr() and kmem_malloc() are unmanaged.
  Consequently, neither the page lock nor the page queues lock is needed to
  unwire and free them.

Modified:
  head/sys/vm/vm_contig.c
  head/sys/vm/vm_kern.c

Modified: head/sys/vm/vm_contig.c
==============================================================================
--- head/sys/vm/vm_contig.c     Mon May  3 07:00:50 2010        (r207551)
+++ head/sys/vm/vm_contig.c     Mon May  3 07:08:16 2010        (r207552)
@@ -268,11 +268,7 @@ retry:
                                i -= PAGE_SIZE;
                                m = vm_page_lookup(object, OFF_TO_IDX(offset +
                                    i));
-                               vm_page_lock(m);
-                               vm_page_lock_queues();
                                vm_page_free(m);
-                               vm_page_unlock_queues();
-                               vm_page_unlock(m);
                        }
                        VM_OBJECT_UNLOCK(object);
                        vm_map_delete(map, addr, addr + size);

Modified: head/sys/vm/vm_kern.c
==============================================================================
--- head/sys/vm/vm_kern.c       Mon May  3 07:00:50 2010        (r207551)
+++ head/sys/vm/vm_kern.c       Mon May  3 07:08:16 2010        (r207552)
@@ -380,12 +380,8 @@ retry:
                                i -= PAGE_SIZE;
                                m = vm_page_lookup(kmem_object,
                                                   OFF_TO_IDX(offset + i));
-                               vm_page_lock(m);
-                               vm_page_lock_queues();
                                vm_page_unwire(m, 0);
                                vm_page_free(m);
-                               vm_page_unlock_queues();
-                               vm_page_unlock(m);
                        }
                        VM_OBJECT_UNLOCK(kmem_object);
                        vm_map_delete(map, addr, addr + size);
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to