From owner-p4-projects@FreeBSD.ORG Sat Mar 31 20:40:49 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4025D16A40A; Sat, 31 Mar 2007 20:40:49 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1615F16A408 for ; Sat, 31 Mar 2007 20:40:49 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 0806F13C465 for ; Sat, 31 Mar 2007 20:40:49 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l2VKem26066601 for ; Sat, 31 Mar 2007 20:40:48 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l2VKem63066596 for perforce@freebsd.org; Sat, 31 Mar 2007 20:40:48 GMT (envelope-from kmacy@freebsd.org) Date: Sat, 31 Mar 2007 20:40:48 GMT Message-Id: <200703312040.l2VKem63066596@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 117021 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 31 Mar 2007 20:40:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=117021 Change 117021 by kmacy@kmacy_vt-x:opentoe_init on 2007/03/31 20:40:35 only modify lo_flags when the lock is held move LOCK_PROFILING_FAST into initial acquisition so we can skip tracking statistics for an uncontested lock entirely MFP4 after: 2 days Affected files ... .. //depot/projects/opentoe/sys/kern/subr_lock.c#2 edit .. //depot/projects/opentoe/sys/sys/lock_profile.h#2 edit Differences ... ==== //depot/projects/opentoe/sys/kern/subr_lock.c#2 (text+ko) ==== @@ -258,9 +258,11 @@ if (l->lpo_acqtime == 0) { lo->lo_profile_obj.lpo_contest_holding = 0; - if (contested) - lo->lo_profile_obj.lpo_contest_locking++; - + if (contested) { + lo->lo_flags |= LO_CONTESTED; + lo->lo_profile_obj.lpo_contest_locking++; + } + l->lpo_filename = file; l->lpo_lineno = line; l->lpo_acqtime = nanoseconds(); ==== //depot/projects/opentoe/sys/sys/lock_profile.h#2 (text+ko) ==== @@ -122,7 +122,6 @@ if (lock_prof_enable && *contested == 0) { *waittime = nanoseconds(); - lo->lo_flags |= LO_CONTESTED; atomic_add_int(&l->lpo_contest_holding, 1); *contested = 1; } @@ -131,18 +130,19 @@ static inline void lock_profile_obtain_lock_success(struct lock_object *lo, int contested, uint64_t waittime, const char *file, int line) { if (lock_prof_enable) { - _lock_profile_obtain_lock_success(lo, contested, waittime, file, line); +#ifdef LOCK_PROFILE_FAST + if (contested == 0) + return; +#endif + _lock_profile_obtain_lock_success(lo, contested, waittime, file, line); } } static inline void lock_profile_release_lock(struct lock_object *lo) { struct lock_profile_object *l = &lo->lo_profile_obj; -#ifdef LOCK_PROFILING_FAST - if((lo->lo_flags & LO_CONTESTED) == 0) - return; -#endif - if (lock_prof_enable || l->lpo_acqtime) { + + if (l->lpo_acqtime) { lo->lo_flags &= ~LO_CONTESTED; _lock_profile_release_lock(lo); }