|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 1/2] xen: credit2: factor cpu to runqueue matching in a function
Just move the big if() condition in an inline function.
No functional change intended.
Signed-off-by: Dario Faggioli <dfaggioli@xxxxxxxx>
---
Cc: George Dunlap <george.dunlap@xxxxxxxxxx>
---
xen/common/sched/credit2.c | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index 34f05c3e2a..697c9f917d 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -838,6 +838,20 @@ static inline bool same_core(unsigned int cpua, unsigned
int cpub)
cpu_to_core(cpua) == cpu_to_core(cpub);
}
+static inline bool
+cpu_runqueue_match(const struct csched2_runqueue_data *rqd, unsigned int cpu)
+{
+ unsigned int peer_cpu = rqd->pick_bias;
+
+ BUG_ON(cpu_to_socket(peer_cpu) == XEN_INVALID_SOCKET_ID);
+
+ /* OPT_RUNQUEUE_CPU will never find an existing runqueue. */
+ return opt_runqueue == OPT_RUNQUEUE_ALL ||
+ (opt_runqueue == OPT_RUNQUEUE_CORE && same_core(peer_cpu, cpu)) ||
+ (opt_runqueue == OPT_RUNQUEUE_SOCKET && same_socket(peer_cpu, cpu))
||
+ (opt_runqueue == OPT_RUNQUEUE_NODE && same_node(peer_cpu, cpu));
+}
+
static struct csched2_runqueue_data *
cpu_add_to_runqueue(struct csched2_private *prv, unsigned int cpu)
{
@@ -855,21 +869,11 @@ cpu_add_to_runqueue(struct csched2_private *prv, unsigned
int cpu)
rqd_ins = &prv->rql;
list_for_each_entry ( rqd, &prv->rql, rql )
{
- unsigned int peer_cpu;
-
/* Remember first unused queue index. */
if ( !rqi_unused && rqd->id > rqi )
rqi_unused = true;
- peer_cpu = rqd->pick_bias;
- BUG_ON(cpu_to_socket(cpu) == XEN_INVALID_SOCKET_ID ||
- cpu_to_socket(peer_cpu) == XEN_INVALID_SOCKET_ID);
-
- /* OPT_RUNQUEUE_CPU will never find an existing runqueue. */
- if ( opt_runqueue == OPT_RUNQUEUE_ALL ||
- (opt_runqueue == OPT_RUNQUEUE_CORE && same_core(peer_cpu, cpu)) ||
- (opt_runqueue == OPT_RUNQUEUE_SOCKET && same_socket(peer_cpu,
cpu)) ||
- (opt_runqueue == OPT_RUNQUEUE_NODE && same_node(peer_cpu, cpu)) )
+ if ( cpu_runqueue_match(rqd, cpu) )
{
rqd_valid = true;
break;
@@ -3744,6 +3748,8 @@ csched2_alloc_pdata(const struct scheduler *ops, int cpu)
struct csched2_pcpu *spc;
struct csched2_runqueue_data *rqd;
+ BUG_ON(cpu_to_socket(cpu) == XEN_INVALID_SOCKET_ID);
+
spc = xzalloc(struct csched2_pcpu);
if ( spc == NULL )
return ERR_PTR(-ENOMEM);
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |