svn commit: r266600 - in user/attilio/rm_vmobj_cache/sys: dev/drm2/ttm ia64/ia64 powerpc/aim vm x86/iommu
Attilio Rao
attilio at FreeBSD.org
Fri May 23 22:50:51 UTC 2014
Author: attilio
Date: Fri May 23 22:50:49 2014
New Revision: 266600
URL: http://svnweb.freebsd.org/changeset/base/266600
Log:
vm_page_alloc_contig() is always called with the wiring attribute on
as it is always returning unmanaged pages.
Avoid to pass the attribute anymore and just force the wiring of pages
on.
Modified:
user/attilio/rm_vmobj_cache/sys/dev/drm2/ttm/ttm_bo.c
user/attilio/rm_vmobj_cache/sys/dev/drm2/ttm/ttm_page_alloc.c
user/attilio/rm_vmobj_cache/sys/ia64/ia64/pmap.c
user/attilio/rm_vmobj_cache/sys/powerpc/aim/slb.c
user/attilio/rm_vmobj_cache/sys/vm/vm_kern.c
user/attilio/rm_vmobj_cache/sys/vm/vm_page.c
user/attilio/rm_vmobj_cache/sys/x86/iommu/intel_utils.c
Modified: user/attilio/rm_vmobj_cache/sys/dev/drm2/ttm/ttm_bo.c
==============================================================================
--- user/attilio/rm_vmobj_cache/sys/dev/drm2/ttm/ttm_bo.c Fri May 23 22:39:00 2014 (r266599)
+++ user/attilio/rm_vmobj_cache/sys/dev/drm2/ttm/ttm_bo.c Fri May 23 22:50:49 2014 (r266600)
@@ -1495,7 +1495,7 @@ int ttm_bo_global_init(struct drm_global
mtx_init(&glob->lru_lock, "ttmlru", NULL, MTX_DEF);
glob->mem_glob = bo_ref->mem_glob;
glob->dummy_read_page = vm_page_alloc_contig(NULL, 0,
- VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ | VM_ALLOC_WIRED,
+ VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ,
1, 0, VM_MAX_ADDRESS, PAGE_SIZE, 0, VM_MEMATTR_UNCACHEABLE);
if (unlikely(glob->dummy_read_page == NULL)) {
Modified: user/attilio/rm_vmobj_cache/sys/dev/drm2/ttm/ttm_page_alloc.c
==============================================================================
--- user/attilio/rm_vmobj_cache/sys/dev/drm2/ttm/ttm_page_alloc.c Fri May 23 22:39:00 2014 (r266599)
+++ user/attilio/rm_vmobj_cache/sys/dev/drm2/ttm/ttm_page_alloc.c Fri May 23 22:50:49 2014 (r266600)
@@ -492,7 +492,7 @@ static int ttm_alloc_new_pages(struct pg
unsigned max_cpages = min(count,
(unsigned)(PAGE_SIZE/sizeof(vm_page_t)));
- aflags = VM_ALLOC_NORMAL | VM_ALLOC_WIRED | VM_ALLOC_NOOBJ |
+ aflags = VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ |
((ttm_alloc_flags & TTM_PAGE_FLAG_ZERO_ALLOC) != 0 ?
VM_ALLOC_ZERO : 0);
@@ -708,7 +708,7 @@ static int ttm_get_pages(vm_page_t *page
unsigned count;
int r;
- aflags = VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ | VM_ALLOC_WIRED |
+ aflags = VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ |
((flags & TTM_PAGE_FLAG_ZERO_ALLOC) != 0 ? VM_ALLOC_ZERO : 0);
/* No pool for cached pages */
Modified: user/attilio/rm_vmobj_cache/sys/ia64/ia64/pmap.c
==============================================================================
--- user/attilio/rm_vmobj_cache/sys/ia64/ia64/pmap.c Fri May 23 22:39:00 2014 (r266599)
+++ user/attilio/rm_vmobj_cache/sys/ia64/ia64/pmap.c Fri May 23 22:50:49 2014 (r266600)
@@ -293,9 +293,8 @@ pmap_alloc_vhpt(void)
vm_size_t size;
size = 1UL << pmap_vhpt_log2size;
- m = vm_page_alloc_contig(NULL, 0, VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ |
- VM_ALLOC_WIRED, atop(size), 0UL, ~0UL, size, 0UL,
- VM_MEMATTR_DEFAULT);
+ m = vm_page_alloc_contig(NULL, 0, VM_ALLOC_SYSTEM | VM_ALLOC_NOOBJ,
+ atop(size), 0UL, ~0UL, size, 0UL, VM_MEMATTR_DEFAULT);
if (m != NULL) {
vhpt = IA64_PHYS_TO_RR7(VM_PAGE_TO_PHYS(m));
pmap_initialize_vhpt(vhpt);
Modified: user/attilio/rm_vmobj_cache/sys/powerpc/aim/slb.c
==============================================================================
--- user/attilio/rm_vmobj_cache/sys/powerpc/aim/slb.c Fri May 23 22:39:00 2014 (r266599)
+++ user/attilio/rm_vmobj_cache/sys/powerpc/aim/slb.c Fri May 23 22:50:49 2014 (r266600)
@@ -484,7 +484,7 @@ slb_uma_real_alloc(uma_zone_t zone, int
realmax = platform_real_maxaddr();
*flags = UMA_SLAB_PRIV;
- pflags = malloc2vm_flags(wait) | VM_ALLOC_NOOBJ | VM_ALLOC_WIRED;
+ pflags = malloc2vm_flags(wait) | VM_ALLOC_NOOBJ;
for (;;) {
m = vm_page_alloc_contig(NULL, 0, pflags, 1, 0, realmax,
Modified: user/attilio/rm_vmobj_cache/sys/vm/vm_kern.c
==============================================================================
--- user/attilio/rm_vmobj_cache/sys/vm/vm_kern.c Fri May 23 22:39:00 2014 (r266599)
+++ user/attilio/rm_vmobj_cache/sys/vm/vm_kern.c Fri May 23 22:50:49 2014 (r266600)
@@ -169,7 +169,7 @@ kmem_alloc_attr(vmem_t *vmem, vm_size_t
if (vmem_alloc(vmem, size, M_BESTFIT | flags, &addr))
return (0);
offset = addr - VM_MIN_KERNEL_ADDRESS;
- pflags = malloc2vm_flags(flags) | VM_ALLOC_NOBUSY | VM_ALLOC_WIRED;
+ pflags = malloc2vm_flags(flags) | VM_ALLOC_NOBUSY;
VM_OBJECT_WLOCK(object);
for (i = 0; i < size; i += PAGE_SIZE) {
tries = 0;
@@ -232,7 +232,7 @@ kmem_alloc_contig(struct vmem *vmem, vm_
if (vmem_alloc(vmem, size, flags | M_BESTFIT, &addr))
return (0);
offset = addr - VM_MIN_KERNEL_ADDRESS;
- pflags = malloc2vm_flags(flags) | VM_ALLOC_NOBUSY | VM_ALLOC_WIRED;
+ pflags = malloc2vm_flags(flags) | VM_ALLOC_NOBUSY;
VM_OBJECT_WLOCK(object);
tries = 0;
retry:
Modified: user/attilio/rm_vmobj_cache/sys/vm/vm_page.c
==============================================================================
--- user/attilio/rm_vmobj_cache/sys/vm/vm_page.c Fri May 23 22:39:00 2014 (r266599)
+++ user/attilio/rm_vmobj_cache/sys/vm/vm_page.c Fri May 23 22:50:49 2014 (r266600)
@@ -1676,6 +1676,8 @@ vm_page_alloc_contig_vdrop(struct spglis
*
* The caller must always specify an allocation class.
*
+ * The returned pages will all be wired.
+ *
* allocation classes:
* VM_ALLOC_NORMAL normal process request
* VM_ALLOC_SYSTEM system *really* needs a page
@@ -1686,7 +1688,6 @@ vm_page_alloc_contig_vdrop(struct spglis
* VM_ALLOC_NOOBJ page is not associated with an object and
* should not be exclusive busy
* VM_ALLOC_SBUSY shared busy the allocated page
- * VM_ALLOC_WIRED wire the allocated page
* VM_ALLOC_ZERO prefer a zeroed page
*
* This routine may not sleep.
@@ -1708,6 +1709,8 @@ vm_page_alloc_contig(vm_object_t object,
(VM_ALLOC_NOBUSY | VM_ALLOC_SBUSY)),
("vm_page_alloc: inconsistent object(%p)/req(%x)", (void *)object,
req));
+ KASSERT((req & VM_ALLOC_WIRED) == 0,
+ ("vm_page_alloc_contig: VM_ALLOC_WIRED passed in req (%x)", req));
if (object != NULL) {
VM_OBJECT_ASSERT_WLOCKED(object);
KASSERT(object->type == OBJT_PHYS,
@@ -1775,8 +1778,7 @@ retry:
flags = PG_ZERO;
if ((req & VM_ALLOC_NODUMP) != 0)
flags |= PG_NODUMP;
- if ((req & VM_ALLOC_WIRED) != 0)
- atomic_add_int(&vm_cnt.v_wire_count, npages);
+ atomic_add_int(&vm_cnt.v_wire_count, npages);
if (object != NULL) {
if (object->memattr != VM_MEMATTR_DEFAULT &&
memattr == VM_MEMATTR_DEFAULT)
@@ -1792,8 +1794,8 @@ retry:
if ((req & VM_ALLOC_SBUSY) != 0)
m->busy_lock = VPB_SHARERS_WORD(1);
}
- if ((req & VM_ALLOC_WIRED) != 0)
- m->wire_count = 1;
+ m->wire_count = 1;
+
/* Unmanaged pages don't use "act_count". */
m->oflags = VPO_UNMANAGED;
if (object != NULL) {
@@ -1802,13 +1804,11 @@ retry:
&deferred_vdrop_list);
if (vm_paging_needed())
pagedaemon_wakeup();
- if ((req & VM_ALLOC_WIRED) != 0)
- atomic_subtract_int(&vm_cnt.v_wire_count,
- npages);
+ atomic_subtract_int(&vm_cnt.v_wire_count,
+ npages);
for (m_tmp = m, m = m_ret;
m < &m_ret[npages]; m++) {
- if ((req & VM_ALLOC_WIRED) != 0)
- m->wire_count = 0;
+ m->wire_count = 0;
if (m >= m_tmp)
m->object = NULL;
vm_page_free(m);
Modified: user/attilio/rm_vmobj_cache/sys/x86/iommu/intel_utils.c
==============================================================================
--- user/attilio/rm_vmobj_cache/sys/x86/iommu/intel_utils.c Fri May 23 22:39:00 2014 (r266599)
+++ user/attilio/rm_vmobj_cache/sys/x86/iommu/intel_utils.c Fri May 23 22:50:49 2014 (r266600)
@@ -272,8 +272,8 @@ dmar_pgalloc(vm_object_t obj, vm_pindex_
break;
}
m = vm_page_alloc_contig(obj, idx, VM_ALLOC_NOBUSY |
- VM_ALLOC_SYSTEM | VM_ALLOC_NODUMP | VM_ALLOC_WIRED |
- zeroed, 1, 0, dmar_high, PAGE_SIZE, 0, VM_MEMATTR_DEFAULT);
+ VM_ALLOC_SYSTEM | VM_ALLOC_NODUMP | zeroed, 1, 0,
+ dmar_high, PAGE_SIZE, 0, VM_MEMATTR_DEFAULT);
if ((flags & DMAR_PGF_OBJL) == 0)
VM_OBJECT_WUNLOCK(obj);
if (m != NULL) {
More information about the svn-src-user
mailing list