From owner-svn-src-projects@FreeBSD.ORG Tue Aug 7 00:28:30 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 27AB31065670; Tue, 7 Aug 2012 00:28:30 +0000 (UTC) (envelope-from davide@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id ED7008FC0A; Tue, 7 Aug 2012 00:28:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q770STWG000254; Tue, 7 Aug 2012 00:28:29 GMT (envelope-from davide@svn.freebsd.org) Received: (from davide@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q770STec000252; Tue, 7 Aug 2012 00:28:29 GMT (envelope-from davide@svn.freebsd.org) Message-Id: <201208070028.q770STec000252@svn.freebsd.org> From: Davide Italiano Date: Tue, 7 Aug 2012 00:28:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239118 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Aug 2012 00:28:30 -0000 Author: davide Date: Tue Aug 7 00:28:29 2012 New Revision: 239118 URL: http://svn.freebsd.org/changeset/base/239118 Log: Remove some unneeded checks. For non-direct callouts softclock_call_cc() is only called for callouts on cc_expireq queue, and all the callouts there have CALLOUT_PROCESSED flag. Similarly, for direct callouts the aforementioned function is called for callouts on the wheel, which haven't CALLOUT_PROCESS flag set. Reviewed by: mav Modified: projects/calloutng/sys/kern/kern_timeout.c Modified: projects/calloutng/sys/kern/kern_timeout.c ============================================================================== --- projects/calloutng/sys/kern/kern_timeout.c Tue Aug 7 00:15:33 2012 (r239117) +++ projects/calloutng/sys/kern/kern_timeout.c Tue Aug 7 00:28:29 2012 (r239118) @@ -448,6 +448,7 @@ callout_process(struct bintime *now) break; first = (first + 1) & callwheelmask; } + cc->cc_exec_next_dir = NULL; future = (last + hz / 4) & callwheelmask; max.sec = min.sec = TIME_T_MAX; max.frac = min.frac = UINT64_MAX; @@ -614,9 +615,10 @@ callout_cc_add(struct callout *c, struct static void callout_cc_del(struct callout *c, struct callout_cpu *cc, int direct) { - if (direct && cc->cc_exec_next_dir == c) + + if (cc->cc_exec_next_dir == c) cc->cc_exec_next_dir = TAILQ_NEXT(c, c_links.tqe); - else if (!direct && cc->cc_exec_next == c) + else if (cc->cc_exec_next == c) cc->cc_exec_next = TAILQ_NEXT(c, c_staiter); if (c->c_flags & CALLOUT_LOCAL_ALLOC) { c->c_func = NULL; @@ -649,12 +651,8 @@ softclock_call_cc(struct callout *c, str if (direct) cc->cc_exec_next_dir = TAILQ_NEXT(c, c_links.tqe); - else { - if ((c->c_flags & CALLOUT_PROCESSED) == 0) - cc->cc_exec_next = TAILQ_NEXT(c, c_links.tqe); - else - cc->cc_exec_next = TAILQ_NEXT(c, c_staiter); - } + else + cc->cc_exec_next = TAILQ_NEXT(c, c_staiter); class = (c->c_lock != NULL) ? LOCK_CLASS(c->c_lock) : NULL; sharedlock = (c->c_flags & CALLOUT_SHAREDLOCK) ? 0 : 1; c_lock = c->c_lock; @@ -844,6 +842,7 @@ softclock(void *arg) avg_lockcalls += (lockcalls * 1000 - avg_lockcalls) >> 8; avg_gcalls += (gcalls * 1000 - avg_gcalls) >> 8; #endif + cc->cc_exec_next = NULL; CC_UNLOCK(cc); } @@ -980,9 +979,7 @@ _callout_reset_on(struct callout *c, str } if (c->c_flags & CALLOUT_PENDING) { if ((c->c_flags & CALLOUT_PROCESSED) == 0) { - if (cc->cc_exec_next == c) - cc->cc_exec_next = TAILQ_NEXT(c, c_links.tqe); - else if (cc->cc_exec_next_dir == c) + if (cc->cc_exec_next_dir == c) cc->cc_exec_next_dir = TAILQ_NEXT(c, c_links.tqe); bucket = get_bucket(&c->c_time);