From owner-svn-src-all@FreeBSD.ORG Sat Jan 4 23:40:48 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 46CC7E9C; Sat, 4 Jan 2014 23:40:48 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 328AB1B34; Sat, 4 Jan 2014 23:40:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id s04NemY6062883; Sat, 4 Jan 2014 23:40:48 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id s04NemuT062882; Sat, 4 Jan 2014 23:40:48 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201401042340.s04NemuT062882@svn.freebsd.org> From: Alexander Motin Date: Sat, 4 Jan 2014 23:40:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260304 - stable/10/sys/vm X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Jan 2014 23:40:48 -0000 Author: mav Date: Sat Jan 4 23:40:47 2014 New Revision: 260304 URL: http://svnweb.freebsd.org/changeset/base/260304 Log: MFC r258691: Don't count bucket allocation failures for UMA zones as their own failures. There are good reasons for this to happen, such as recursion prevention, etc. and they are not fatal since buckets are just an optimization mechanism. Real bucket allocation failures are any way counted by the bucket zones themselves, and we don't need double accounting there. Modified: stable/10/sys/vm/uma_core.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/vm/uma_core.c ============================================================================== --- stable/10/sys/vm/uma_core.c Sat Jan 4 23:39:39 2014 (r260303) +++ stable/10/sys/vm/uma_core.c Sat Jan 4 23:40:47 2014 (r260304) @@ -2510,7 +2510,7 @@ zone_alloc_bucket(uma_zone_t zone, void /* Don't wait for buckets, preserve caller's NOVM setting. */ bucket = bucket_alloc(zone, udata, M_NOWAIT | (flags & M_NOVM)); if (bucket == NULL) - goto out; + return (NULL); max = MIN(bucket->ub_entries, zone->uz_count); bucket->ub_cnt = zone->uz_import(zone->uz_arg, bucket->ub_bucket, @@ -2541,10 +2541,8 @@ zone_alloc_bucket(uma_zone_t zone, void } } -out: - if (bucket == NULL || bucket->ub_cnt == 0) { - if (bucket != NULL) - bucket_free(zone, bucket, udata); + if (bucket->ub_cnt == 0) { + bucket_free(zone, bucket, udata); atomic_add_long(&zone->uz_fails, 1); return (NULL); }