|
@@ -10,6 +10,7 @@
|
|
|
#include <uapi/linux/sched/types.h>
|
|
|
#include <linux/sched/loadavg.h>
|
|
|
#include <linux/sched/hotplug.h>
|
|
|
+#include <linux/wait_bit.h>
|
|
|
#include <linux/cpuset.h>
|
|
|
#include <linux/delayacct.h>
|
|
|
#include <linux/init_task.h>
|
|
@@ -6026,28 +6027,13 @@ static struct kmem_cache *task_group_cache __read_mostly;
|
|
|
DECLARE_PER_CPU(cpumask_var_t, load_balance_mask);
|
|
|
DECLARE_PER_CPU(cpumask_var_t, select_idle_mask);
|
|
|
|
|
|
-#define WAIT_TABLE_BITS 8
|
|
|
-#define WAIT_TABLE_SIZE (1 << WAIT_TABLE_BITS)
|
|
|
-static wait_queue_head_t bit_wait_table[WAIT_TABLE_SIZE] __cacheline_aligned;
|
|
|
-
|
|
|
-wait_queue_head_t *bit_waitqueue(void *word, int bit)
|
|
|
-{
|
|
|
- const int shift = BITS_PER_LONG == 32 ? 5 : 6;
|
|
|
- unsigned long val = (unsigned long)word << shift | bit;
|
|
|
-
|
|
|
- return bit_wait_table + hash_long(val, WAIT_TABLE_BITS);
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(bit_waitqueue);
|
|
|
-
|
|
|
void __init sched_init(void)
|
|
|
{
|
|
|
int i, j;
|
|
|
unsigned long alloc_size = 0, ptr;
|
|
|
|
|
|
sched_clock_init();
|
|
|
-
|
|
|
- for (i = 0; i < WAIT_TABLE_SIZE; i++)
|
|
|
- init_waitqueue_head(bit_wait_table + i);
|
|
|
+ wait_bit_init();
|
|
|
|
|
|
#ifdef CONFIG_FAIR_GROUP_SCHED
|
|
|
alloc_size += 2 * nr_cpu_ids * sizeof(void **);
|