1/*- 2 * Copyright (c) 2002-2005, 2009 Jeffrey Roberson <jeff@FreeBSD.org> 3 * Copyright (c) 2004, 2005 Bosko Milekic <bmilekic@FreeBSD.org> 4 * Copyright (c) 2004-2006 Robert N. M. Watson 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 34 unchanged lines hidden (view full) --- 43 44/* 45 * TODO: 46 * - Improve memory usage for large allocations 47 * - Investigate cache size adjustments 48 */ 49 50#include <sys/cdefs.h> |
51__FBSDID("$FreeBSD: head/sys/vm/uma_core.c 213911 2010-10-16 04:41:45Z lstewart $"); |
52 53/* I should really use ktr.. */ 54/* 55#define UMA_DEBUG 1 56#define UMA_DEBUG_ALLOC 1 57#define UMA_DEBUG_ALLOC_1 1 58*/ 59 --- 2717 unchanged lines hidden (view full) --- 2777 zone->uz_flags &= ~UMA_ZFLAG_FULL; 2778 wakeup(zone); 2779 ZONE_UNLOCK(zone); 2780 } else 2781 KEG_UNLOCK(keg); 2782} 2783 2784/* See uma.h */ |
2785int |
2786uma_zone_set_max(uma_zone_t zone, int nitems) 2787{ 2788 uma_keg_t keg; 2789 2790 ZONE_LOCK(zone); 2791 keg = zone_first_keg(zone); 2792 keg->uk_maxpages = (nitems / keg->uk_ipers) * keg->uk_ppera; 2793 if (keg->uk_maxpages * keg->uk_ipers < nitems) 2794 keg->uk_maxpages += keg->uk_ppera; |
2795 nitems = keg->uk_maxpages * keg->uk_ipers; |
2796 ZONE_UNLOCK(zone); |
2797 2798 return (nitems); |
2799} 2800 2801/* See uma.h */ 2802int 2803uma_zone_get_max(uma_zone_t zone) 2804{ 2805 int nitems; 2806 uma_keg_t keg; --- 514 unchanged lines hidden --- |