From patchwork Thu Jan 26 00:30:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Faggioli X-Patchwork-Id: 9538193 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 00789604A7 for ; Thu, 26 Jan 2017 00:32:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E6A6D26B39 for ; Thu, 26 Jan 2017 00:32:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DA24A27F85; Thu, 26 Jan 2017 00:32:25 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RCVD_IN_SORBS_SPAM,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id E664726B39 for ; Thu, 26 Jan 2017 00:32:24 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cWXx6-0005l9-2F; Thu, 26 Jan 2017 00:30:12 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cWXx4-0005iK-US for xen-devel@lists.xenproject.org; Thu, 26 Jan 2017 00:30:11 +0000 Received: from [193.109.254.147] by server-8.bemta-6.messagelabs.com id 4F/46-21675-21349885; Thu, 26 Jan 2017 00:30:10 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmphleJIrShJLcpLzFFi42Lxqg1y1BV07ow w+LxNxuL7lslMDowehz9cYQlgjGLNzEvKr0hgzZj8YR9rwYHkirMXfzA1ML7y6WLk4hASmMEo sWvCdWYQh0VgDavEtl0H2EEcCYFLrBJtlx+wdDFyAjkxEmfnHWOCsEsljt34yQxiCwmoSNzcv ooJYtQ0JonbN2+AFQkL6EkcOfqDHcIOlfh++yiYzSZgIPFmx15WEFtEQEni3qrJYPXMAlESZ5 Y3gw1lEVCV+P26B6yeV8BLYsrOlYwgNqeAt8SMyR+A6jmAlnlJTDuQAxIWFZCTWHm5hRWiXFD i5MwnLCAlzAKaEut36UNMl5fY/nYO8wRGkVlIqmYhVM1CUrWAkXkVo0ZxalFZapGuoYVeUlFm ekZJbmJmjq6hgZlebmpxcWJ6ak5iUrFecn7uJkZg+DMAwQ7GmxsDDjFKcjApifLe1O6MEOJLy k+pzEgszogvKs1JLT7EqMHBITDh7NzpTFIsefl5qUoSvDZOQHWCRanpqRVpmTnACIUpleDgUR Lh9QRJ8xYXJOYWZ6ZDpE4xGnPs2nX5JRPHi7XXXjIJgU2SEue1AykVACnNKM2DGwRLHJcYZaW EeRmBzhTiKUgtys0sQZV/xSjOwagkzOsBMoUnM68Ebt8roFOYgE65wNwOckpJIkJKqoFR/ui2 xtePfMw7+b1v2AZtav9Zv/HGJKuKwARGMacbF5ZezpNwqeZwiP8tWmHF+MxygWaGQTdPl2qzg MKZYjW3EIfpxgnv7Huv96/5yjd1a8L3/GvSa9/oL1Hp15fc8TVEdWF++JUFjx74zDL/+krhle S1Q9Yz7mzSiec4LpQRlNJQ8P2jzxslluKMREMt5qLiRAA8fyEPFwMAAA== X-Env-Sender: raistlin.df@gmail.com X-Msg-Ref: server-13.tower-27.messagelabs.com!1485390609!74286746!1 X-Originating-IP: [74.125.82.65] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.1.1; banners=-,-,- X-VirusChecked: Checked Received: (qmail 32844 invoked from network); 26 Jan 2017 00:30:09 -0000 Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com) (74.125.82.65) by server-13.tower-27.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP; 26 Jan 2017 00:30:09 -0000 Received: by mail-wm0-f65.google.com with SMTP id c85so46332896wmi.1 for ; Wed, 25 Jan 2017 16:30:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=w5moyXZWgQaa1d6t2DrN1R8oO9nyfITSe3R6lJ4MfDY=; b=cmapd8uraBaaE3nesKNgRS2Y9Q44nZpZKZxgmB5u7XkjVEaKBii86Ys0Zc+XDFGuOb gHgoUqpmzdC7ehZkUoOSwGoM2FRKvWo4/3P6xryy1fTaUsBnwWASXYR8GNWdsJfdTJOP Fv7dq2X0vXtP8inMXii77nIBZpfJ2+sMzXpnv3ezaRPnKulMxayVhe2CUVe+8cKsdjFG KaxwDROihBmx0fbbTSNO9x8dHI0FWCLM+d4LImmJPpMDoBcbhxVYJe9GuWo5wQL9/EZI FceQOTtfku/0upK+yFRxHkmV8NfeRCEgoVIeEEYiE+O+9F60g9fKUVTsBx3MDSe+zrp8 Zuqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:from:to:cc:date:message-id :in-reply-to:references:user-agent:mime-version :content-transfer-encoding; bh=w5moyXZWgQaa1d6t2DrN1R8oO9nyfITSe3R6lJ4MfDY=; b=fqLFAPG9AZUbK4uoU/KCgahzs/+89iZtQ3qrPHJNNtbJLjP6IMD76skC19ReZ4tWz3 XN8v7bqzVzfI+3BlmBC6kgMwqyTm2jBq2FUFUaU4YUbSg91B70dVpVLRFpRa5YR7kW8U gra/IoElHLVRCcOXf69Bnh4Cnbi3QfzLwgmIrST4ECGYUkAomOLUuvdstT+XepaeTvXg /lbO0+cWXUaizH915/HIqM3vAg/k1A3eVv0RpqQ9L6bE4/sDeUzIN0cJWQtxho+9Cm6u LoWkoKJvY6qDh9wlE7m4RtvuoFrooY8xGCjXa1KQb21b6ZboEIRmmAXoJ6VKvkDK7e7n EUtg== X-Gm-Message-State: AIkVDXJjv6tOq4RUL3g3Y8ux+Ex8Q/jVVr48H7DzVD1i36oZBQvr5Rcq7Xc49+ynvUkhaQ== X-Received: by 10.28.10.68 with SMTP id 65mr363911wmk.63.1485390608868; Wed, 25 Jan 2017 16:30:08 -0800 (PST) Received: from Solace.fritz.box (58-209-66-80.hosts.abilene.it. [80.66.209.58]) by smtp.gmail.com with ESMTPSA id u42sm133148wrc.1.2017.01.25.16.30.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 25 Jan 2017 16:30:08 -0800 (PST) From: Dario Faggioli To: xen-devel@lists.xenproject.org Date: Thu, 26 Jan 2017 01:30:07 +0100 Message-ID: <148539060701.5464.6894768307622944867.stgit@Solace.fritz.box> In-Reply-To: <148539008889.5464.5896389113741708672.stgit@Solace.fritz.box> References: <148539008889.5464.5896389113741708672.stgit@Solace.fritz.box> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Cc: George Dunlap , Anshul Makkar Subject: [Xen-devel] [PATCH 3/9] xen: credit2: tidy up functions names by removing leading '__'. X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP There is no reason for having pretty much all of the functions whose names begin with double underscores ('__') to actually look like that. In fact, that is misleading and makes the code hard to read and understand. So, remove the '__'-s. The only two that we keep are __runq_insert() and __runq_assign() (althought they're converted to single underscore). In fact, in those cases, it is indeed useful to have those sort of a "raw" variants. In case of __runq_insert(), which is only called once, by runq_insert(), merge the two functions. No functional change intended. Signed-off-by: Dario Faggioli --- Cc: George Dunlap Cc: Anshul Makkar --- xen/common/sched_credit2.c | 114 +++++++++++++++++++------------------------- 1 file changed, 49 insertions(+), 65 deletions(-) diff --git a/xen/common/sched_credit2.c b/xen/common/sched_credit2.c index 29973cf..b764cf9 100644 --- a/xen/common/sched_credit2.c +++ b/xen/common/sched_credit2.c @@ -221,7 +221,7 @@ integer_param("sched_credit2_migrate_resist", opt_migrate_resist); * shift all time samples to the right. * * The details of the formulas used for load tracking are explained close to - * __update_runq_load(). Let's just say here that, with full nanosecond time + * update_runq_load(). Let's just say here that, with full nanosecond time * granularity, a 30 bits wide 'decaying window' is ~1 second long. * * We want to consider the following equations: @@ -233,7 +233,7 @@ integer_param("sched_credit2_migrate_resist", opt_migrate_resist); * Q-format fixed point arithmetic and load is the instantaneous load of a * runqueue, which basically is the number of runnable vcpus there are on the * runqueue (for the meaning of the other terms, look at the doc comment to - * __update_runq_load()). + * update_runq_load()). * * So, again, with full nanosecond granularity, and 1 second window, we have: * @@ -594,14 +594,12 @@ static s_time_t c2t(struct csched2_runqueue_data *rqd, s_time_t credit, struct c * Runqueue related code */ -static /*inline*/ int -__vcpu_on_runq(struct csched2_vcpu *svc) +static inline int vcpu_on_runq(struct csched2_vcpu *svc) { return !list_empty(&svc->runq_elem); } -static /*inline*/ struct csched2_vcpu * -__runq_elem(struct list_head *elem) +static struct csched2_vcpu * runq_elem(struct list_head *elem) { return list_entry(elem, struct csched2_vcpu, runq_elem); } @@ -713,8 +711,8 @@ __runq_elem(struct list_head *elem) * Which, in both cases, is what we expect. */ static void -__update_runq_load(const struct scheduler *ops, - struct csched2_runqueue_data *rqd, int change, s_time_t now) +update_runq_load(const struct scheduler *ops, + struct csched2_runqueue_data *rqd, int change, s_time_t now) { struct csched2_private *prv = csched2_priv(ops); s_time_t delta, load = rqd->load; @@ -800,8 +798,8 @@ __update_runq_load(const struct scheduler *ops, } static void -__update_svc_load(const struct scheduler *ops, - struct csched2_vcpu *svc, int change, s_time_t now) +update_svc_load(const struct scheduler *ops, + struct csched2_vcpu *svc, int change, s_time_t now) { struct csched2_private *prv = csched2_priv(ops); s_time_t delta, vcpu_load; @@ -865,17 +863,24 @@ update_load(const struct scheduler *ops, { trace_var(TRC_CSCHED2_UPDATE_LOAD, 1, 0, NULL); - __update_runq_load(ops, rqd, change, now); + update_runq_load(ops, rqd, change, now); if ( svc ) - __update_svc_load(ops, svc, change, now); + update_svc_load(ops, svc, change, now); } -static int -__runq_insert(struct list_head *runq, struct csched2_vcpu *svc) +static void +runq_insert(const struct scheduler *ops, struct csched2_vcpu *svc) { struct list_head *iter; + unsigned int cpu = svc->vcpu->processor; + struct list_head * runq = &c2rqd(ops, cpu)->runq; int pos = 0; + ASSERT(spin_is_locked(per_cpu(schedule_data, cpu).schedule_lock)); + + ASSERT(!vcpu_on_runq(svc)); + ASSERT(c2r(ops, cpu) == c2r(ops, svc->vcpu->processor)); + ASSERT(&svc->rqd->runq == runq); ASSERT(!is_idle_vcpu(svc->vcpu)); ASSERT(!svc->vcpu->is_running); @@ -883,33 +888,15 @@ __runq_insert(struct list_head *runq, struct csched2_vcpu *svc) list_for_each( iter, runq ) { - struct csched2_vcpu * iter_svc = __runq_elem(iter); + struct csched2_vcpu * iter_svc = runq_elem(iter); if ( svc->credit > iter_svc->credit ) break; pos++; } - list_add_tail(&svc->runq_elem, iter); - return pos; -} - -static void -runq_insert(const struct scheduler *ops, struct csched2_vcpu *svc) -{ - unsigned int cpu = svc->vcpu->processor; - struct list_head * runq = &c2rqd(ops, cpu)->runq; - int pos = 0; - - ASSERT(spin_is_locked(per_cpu(schedule_data, cpu).schedule_lock)); - - ASSERT(!__vcpu_on_runq(svc)); - ASSERT(c2r(ops, cpu) == c2r(ops, svc->vcpu->processor)); - - pos = __runq_insert(runq, svc); - if ( unlikely(tb_init_done) ) { struct { @@ -923,14 +910,11 @@ runq_insert(const struct scheduler *ops, struct csched2_vcpu *svc) sizeof(d), (unsigned char *)&d); } - - return; } -static inline void -__runq_remove(struct csched2_vcpu *svc) +static inline void runq_remove(struct csched2_vcpu *svc) { - ASSERT(__vcpu_on_runq(svc)); + ASSERT(vcpu_on_runq(svc)); list_del_init(&svc->runq_elem); } @@ -1281,8 +1265,8 @@ static void update_max_weight(struct csched2_runqueue_data *rqd, int new_weight, } #ifndef NDEBUG -static /*inline*/ void -__csched2_vcpu_check(struct vcpu *vc) +static inline void +csched2_vcpu_check(struct vcpu *vc) { struct csched2_vcpu * const svc = csched2_vcpu(vc); struct csched2_dom * const sdom = svc->sdom; @@ -1300,7 +1284,7 @@ __csched2_vcpu_check(struct vcpu *vc) } SCHED_STAT_CRANK(vcpu_check); } -#define CSCHED2_VCPU_CHECK(_vc) (__csched2_vcpu_check(_vc)) +#define CSCHED2_VCPU_CHECK(_vc) (csched2_vcpu_check(_vc)) #else #define CSCHED2_VCPU_CHECK(_vc) #endif @@ -1346,7 +1330,7 @@ csched2_alloc_vdata(const struct scheduler *ops, struct vcpu *vc, void *dd) /* Add and remove from runqueue assignment (not active run queue) */ static void -__runq_assign(struct csched2_vcpu *svc, struct csched2_runqueue_data *rqd) +_runq_assign(struct csched2_vcpu *svc, struct csched2_runqueue_data *rqd) { svc->rqd = rqd; @@ -1380,15 +1364,15 @@ runq_assign(const struct scheduler *ops, struct vcpu *vc) ASSERT(svc->rqd == NULL); - __runq_assign(svc, c2rqd(ops, vc->processor)); + _runq_assign(svc, c2rqd(ops, vc->processor)); } static void -__runq_deassign(struct csched2_vcpu *svc) +_runq_deassign(struct csched2_vcpu *svc) { struct csched2_runqueue_data *rqd = svc->rqd; - ASSERT(!__vcpu_on_runq(svc)); + ASSERT(!vcpu_on_runq(svc)); ASSERT(!(svc->flags & CSFLAG_scheduled)); list_del_init(&svc->rqd_elem); @@ -1407,7 +1391,7 @@ runq_deassign(const struct scheduler *ops, struct vcpu *vc) ASSERT(svc->rqd == c2rqd(ops, vc->processor)); - __runq_deassign(svc); + _runq_deassign(svc); } static void @@ -1420,11 +1404,11 @@ csched2_vcpu_sleep(const struct scheduler *ops, struct vcpu *vc) if ( curr_on_cpu(vc->processor) == vc ) cpu_raise_softirq(vc->processor, SCHEDULE_SOFTIRQ); - else if ( __vcpu_on_runq(svc) ) + else if ( vcpu_on_runq(svc) ) { ASSERT(svc->rqd == c2rqd(ops, vc->processor)); update_load(ops, svc->rqd, svc, -1, NOW()); - __runq_remove(svc); + runq_remove(svc); } else if ( svc->flags & CSFLAG_delayed_runq_add ) __clear_bit(__CSFLAG_delayed_runq_add, &svc->flags); @@ -1447,7 +1431,7 @@ csched2_vcpu_wake(const struct scheduler *ops, struct vcpu *vc) goto out; } - if ( unlikely(__vcpu_on_runq(svc)) ) + if ( unlikely(vcpu_on_runq(svc)) ) { SCHED_STAT_CRANK(vcpu_wake_onrunq); goto out; @@ -1509,7 +1493,7 @@ csched2_context_saved(const struct scheduler *ops, struct vcpu *vc) /* If someone wants it on the runqueue, put it there. */ /* * NB: We can get rid of CSFLAG_scheduled by checking for - * vc->is_running and __vcpu_on_runq(svc) here. However, + * vc->is_running and vcpu_on_runq(svc) here. However, * since we're accessing the flags cacheline anyway, * it seems a bit pointless; especially as we have plenty of * bits free. @@ -1517,7 +1501,7 @@ csched2_context_saved(const struct scheduler *ops, struct vcpu *vc) if ( __test_and_clear_bit(__CSFLAG_delayed_runq_add, &svc->flags) && likely(vcpu_runnable(vc)) ) { - ASSERT(!__vcpu_on_runq(svc)); + ASSERT(!vcpu_on_runq(svc)); runq_insert(ops, svc); runq_tickle(ops, svc, now); @@ -1749,13 +1733,13 @@ static void migrate(const struct scheduler *ops, { int on_runq = 0; /* It's not running; just move it */ - if ( __vcpu_on_runq(svc) ) + if ( vcpu_on_runq(svc) ) { - __runq_remove(svc); + runq_remove(svc); update_load(ops, svc->rqd, NULL, -1, now); on_runq = 1; } - __runq_deassign(svc); + _runq_deassign(svc); cpumask_and(cpumask_scratch_cpu(cpu), svc->vcpu->cpu_hard_affinity, cpupool_domain_cpumask(svc->vcpu->domain)); @@ -1764,7 +1748,7 @@ static void migrate(const struct scheduler *ops, svc->vcpu->processor = cpumask_any(cpumask_scratch_cpu(cpu)); ASSERT(svc->vcpu->processor < nr_cpu_ids); - __runq_assign(svc, trqd); + _runq_assign(svc, trqd); if ( on_runq ) { update_load(ops, svc->rqd, NULL, 1, now); @@ -1814,7 +1798,7 @@ static void balance_load(const struct scheduler *ops, int cpu, s_time_t now) ASSERT(spin_is_locked(per_cpu(schedule_data, cpu).schedule_lock)); st.lrqd = c2rqd(ops, cpu); - __update_runq_load(ops, st.lrqd, 0, now); + update_runq_load(ops, st.lrqd, 0, now); retry: if ( !read_trylock(&prv->lock) ) @@ -1832,7 +1816,7 @@ retry: || !spin_trylock(&st.orqd->lock) ) continue; - __update_runq_load(ops, st.orqd, 0, now); + update_runq_load(ops, st.orqd, 0, now); delta = st.lrqd->b_avgload - st.orqd->b_avgload; if ( delta < 0 ) @@ -1931,7 +1915,7 @@ retry: { struct csched2_vcpu * push_svc = list_entry(push_iter, struct csched2_vcpu, rqd_elem); - __update_svc_load(ops, push_svc, 0, now); + update_svc_load(ops, push_svc, 0, now); if ( !vcpu_is_migrateable(push_svc, st.orqd) ) continue; @@ -1941,7 +1925,7 @@ retry: struct csched2_vcpu * pull_svc = list_entry(pull_iter, struct csched2_vcpu, rqd_elem); if ( !inner_load_updated ) - __update_svc_load(ops, pull_svc, 0, now); + update_svc_load(ops, pull_svc, 0, now); if ( !vcpu_is_migrateable(pull_svc, st.lrqd) ) continue; @@ -2009,12 +1993,12 @@ csched2_vcpu_migrate( if ( unlikely(!cpumask_test_cpu(new_cpu, cpupool_domain_cpumask(d))) ) { ASSERT(system_state == SYS_STATE_suspend); - if ( __vcpu_on_runq(svc) ) + if ( vcpu_on_runq(svc) ) { - __runq_remove(svc); + runq_remove(svc); update_load(ops, svc->rqd, NULL, -1, now); } - __runq_deassign(svc); + _runq_deassign(svc); vc->processor = new_cpu; return; } @@ -2302,7 +2286,7 @@ csched2_runtime(const struct scheduler *ops, int cpu, * run until your credit ~= his */ if ( ! list_empty(runq) ) { - struct csched2_vcpu *swait = __runq_elem(runq->next); + struct csched2_vcpu *swait = runq_elem(runq->next); if ( ! is_idle_vcpu(swait->vcpu) && swait->credit > 0 ) @@ -2566,7 +2550,7 @@ csched2_schedule( ASSERT(snext->rqd == rqd); ASSERT(!snext->vcpu->is_running); - __runq_remove(snext); + runq_remove(snext); __set_bit(__CSFLAG_scheduled, &snext->flags); } @@ -2701,7 +2685,7 @@ csched2_dump_pcpu(const struct scheduler *ops, int cpu) loop = 0; list_for_each( iter, runq ) { - svc = __runq_elem(iter); + svc = runq_elem(iter); if ( svc ) { printk("\t%3d: ", ++loop);