svn commit: r330624 - head/sys/vm
Jeff Roberson
jeff at FreeBSD.org
Wed Mar 7 22:04:28 UTC 2018
Author: jeff
Date: Wed Mar 7 22:04:27 2018
New Revision: 330624
URL: https://svnweb.freebsd.org/changeset/base/330624
Log:
Don't assert that the domain free lock is held until we're certain that
there is a valid reservation. This can trip erroneously when memory
falls within a domain but doesn't have the reservation initialized because
it does not meet size or alignment requirements.
Reported by: pho, mjg
Sponsored by: Netflix, Dell/EMC Isilon
Modified:
head/sys/vm/vm_reserv.c
Modified: head/sys/vm/vm_reserv.c
==============================================================================
--- head/sys/vm/vm_reserv.c Wed Mar 7 20:50:28 2018 (r330623)
+++ head/sys/vm/vm_reserv.c Wed Mar 7 22:04:27 2018 (r330624)
@@ -1044,9 +1044,9 @@ vm_reserv_free_page(vm_page_t m)
vm_reserv_t rv;
rv = vm_reserv_from_page(m);
- vm_domain_free_assert_locked(VM_DOMAIN(rv->domain));
if (rv->object == NULL)
return (FALSE);
+ vm_domain_free_assert_locked(VM_DOMAIN(rv->domain));
vm_reserv_depopulate(rv, m - rv->pages);
return (TRUE);
}
@@ -1093,9 +1093,9 @@ vm_reserv_is_page_free(vm_page_t m)
vm_reserv_t rv;
rv = vm_reserv_from_page(m);
- vm_domain_free_assert_locked(VM_DOMAIN(rv->domain));
if (rv->object == NULL)
return (false);
+ vm_domain_free_assert_locked(VM_DOMAIN(rv->domain));
return (popmap_is_clear(rv->popmap, m - rv->pages));
}
More information about the svn-src-all
mailing list