Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F111647420
D35738.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D35738.diff
View Options
diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c
--- a/sys/vm/uma_core.c
+++ b/sys/vm/uma_core.c
@@ -207,7 +207,7 @@
* This is the handle used to schedule events that need to happen
* outside of the allocation fast path.
*/
-static struct callout uma_callout;
+static struct timeout_task uma_timeout_task;
#define UMA_TIMEOUT 20 /* Seconds for callout interval. */
/*
@@ -311,7 +311,7 @@
static int hash_alloc(struct uma_hash *, u_int);
static int hash_expand(struct uma_hash *, struct uma_hash *);
static void hash_free(struct uma_hash *hash);
-static void uma_timeout(void *);
+static void uma_timeout(void *, int);
static void uma_shutdown(void);
static void *zone_alloc_item(uma_zone_t, void *, int, int);
static void zone_free_item(uma_zone_t, void *, void *, enum zfreeskip);
@@ -1107,13 +1107,14 @@
* Nothing
*/
static void
-uma_timeout(void *unused)
+uma_timeout(void *unused __unused, int pending __unused)
{
bucket_enable();
zone_foreach(zone_timeout, NULL);
/* Reschedule this event */
- callout_reset(&uma_callout, UMA_TIMEOUT * hz, uma_timeout, NULL);
+ taskqueue_enqueue_timeout(taskqueue_thread, &uma_timeout_task,
+ UMA_TIMEOUT * hz);
}
/*
@@ -3208,8 +3209,6 @@
uma_skip_cnt = counter_u64_alloc(M_WAITOK);
#endif
zone_foreach_unlocked(zone_alloc_sysctl, NULL);
- callout_init(&uma_callout, 1);
- callout_reset(&uma_callout, UMA_TIMEOUT * hz, uma_timeout, NULL);
booted = BOOT_RUNNING;
EVENTHANDLER_REGISTER(shutdown_post_sync, uma_shutdown, NULL,
@@ -3217,6 +3216,16 @@
}
SYSINIT(uma_startup3, SI_SUB_VM_CONF, SI_ORDER_SECOND, uma_startup3, NULL);
+static void
+uma_startup4(void *arg __unused)
+{
+ TIMEOUT_TASK_INIT(taskqueue_thread, &uma_timeout_task, 0, uma_timeout,
+ NULL);
+ taskqueue_enqueue_timeout(taskqueue_thread, &uma_timeout_task,
+ UMA_TIMEOUT * hz);
+}
+SYSINIT(uma_startup4, SI_SUB_TASKQ, SI_ORDER_ANY, uma_startup4, NULL);
+
static void
uma_shutdown(void)
{
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Mar 7, 11:50 AM (20 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17031328
Default Alt Text
D35738.diff (1 KB)
Attached To
Mode
D35738: uma: Use a taskqueue to execute uma_timeout()
Attached
Detach File
Event Timeline
Log In to Comment