From: Li Zefan <lizf@cn.fujitsu.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>,
LKML <linux-kernel@vger.kernel.org>
Subject: [PATCH] sched: rewrite SCHED_CPUMASK_ALLOC
Date: Wed, 05 Nov 2008 13:50:20 +0800 [thread overview]
Message-ID: <4911341C.7020207@cn.fujitsu.com> (raw)
The #if/#endif is ugly. Let SCHED_CPUMASK_ALLOC do kmalloc().
Also remove unnecessary pointer casting.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
---
kernel/sched.c | 21 ++++++++++-----------
1 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/kernel/sched.c b/kernel/sched.c
index e8819bc..dee79ad 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -7318,13 +7318,13 @@ struct allmasks {
};
#if NR_CPUS > 128
-#define SCHED_CPUMASK_ALLOC 1
-#define SCHED_CPUMASK_FREE(v) kfree(v)
-#define SCHED_CPUMASK_DECLARE(v) struct allmasks *v
+#define SCHED_CPUMASK_DECLARE(v) struct allmasks *v
+#define SCHED_CPUMASK_ALLOC(v) v = kmalloc(sizeof(*v), GFP_KERNEL)
+#define SCHED_CPUMASK_FREE(v) kfree(v)
#else
-#define SCHED_CPUMASK_ALLOC 0
-#define SCHED_CPUMASK_FREE(v)
-#define SCHED_CPUMASK_DECLARE(v) struct allmasks _v, *v = &_v
+#define SCHED_CPUMASK_DECLARE(v) struct allmasks _v, *v = &_v
+#define SCHED_CPUMASK_ALLOC(v)
+#define SCHED_CPUMASK_FREE(v)
#endif
#define SCHED_CPUMASK_VAR(v, a) cpumask_t *v = (cpumask_t *) \
@@ -7400,9 +7400,8 @@ static int __build_sched_domains(const cpumask_t *cpu_map,
return -ENOMEM;
}
-#if SCHED_CPUMASK_ALLOC
/* get space for all scratch cpumask variables */
- allmasks = kmalloc(sizeof(*allmasks), GFP_KERNEL);
+ SCHED_CPUMASK_ALLOC(allmasks);
if (!allmasks) {
printk(KERN_WARNING "Cannot alloc cpumask array\n");
kfree(rd);
@@ -7411,7 +7410,7 @@ static int __build_sched_domains(const cpumask_t *cpu_map,
#endif
return -ENOMEM;
}
-#endif
+
tmpmask = (cpumask_t *)allmasks;
@@ -7665,13 +7664,13 @@ static int __build_sched_domains(const cpumask_t *cpu_map,
cpu_attach_domain(sd, rd, i);
}
- SCHED_CPUMASK_FREE((void *)allmasks);
+ SCHED_CPUMASK_FREE(allmasks);
return 0;
#ifdef CONFIG_NUMA
error:
free_sched_groups(cpu_map, tmpmask);
- SCHED_CPUMASK_FREE((void *)allmasks);
+ SCHED_CPUMASK_FREE(allmasks);
return -ENOMEM;
#endif
}
--
1.5.4.rc3
next reply other threads:[~2008-11-05 5:53 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-05 5:50 Li Zefan [this message]
2008-11-06 8:00 ` [PATCH] sched: rewrite SCHED_CPUMASK_ALLOC Ingo Molnar
2008-11-07 7:17 ` Li Zefan
2008-11-07 8:16 ` Ingo Molnar
2008-11-07 9:03 ` Li Zefan
2008-11-07 9:30 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4911341C.7020207@cn.fujitsu.com \
--to=lizf@cn.fujitsu.com \
--cc=a.p.zijlstra@chello.nl \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.