From owner-svn-src-head@freebsd.org Mon Jan 6 22:28:14 2020 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8AB121F6F15 for ; Mon, 6 Jan 2020 22:28:14 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s9Bj3Q7yz4KKp for ; Mon, 6 Jan 2020 22:28:13 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: by mail-pl1-x62d.google.com with SMTP id b22so22362149pls.12 for ; Mon, 06 Jan 2020 14:28:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jroberson-net.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:in-reply-to:message-id:references :user-agent:mime-version; bh=y/OjVOrLRG+qDxMHYAUWxp6z0Pgxw0cYHgQ9X2GY2BA=; b=iDcSCZ+7HXkkutpiS/Ofg1QmH7vQl4q+jUcCXZT60kDORAJxiy83JKXOjWdHhdbaBf D3UxDhlEW8VOHdYi/UXjQGpt4WznmeuaSM9xkjfmLydPeLUScIyt1UEZ9APLINrgMMGM OdzFmKyQwLxT6uI4QyrRTu9TS97lYg+g71EhJMmW8eOPI//pP/R+jI/oZehL3MrTL7rn 5O1QWDFVTuKJkZUSLdQ8kW9JX60cYrRxl6ubzAbDUaaaa0bq5lDnAP2gdXZC3ZyOZPPd 4H84LBtHp1enKW1Pqt58Z9yaJ4u6T88X44Ihl37Haa1AZI1WvtVvXsCbRaWr1oonAfNk m9JA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version; bh=y/OjVOrLRG+qDxMHYAUWxp6z0Pgxw0cYHgQ9X2GY2BA=; b=p8ObPhtv9+o46O3aU7y3kR37i3n0/bz86wa5nwqFbT+QgK6cIvi+K/TgVgjJTfeCWE Vi5arH9ZE1z3G2Yh+bnaytiQdV20fRyUH0zFp3+IBAl42aFDZOY+3Az24XWIZrkK+sC6 1mRUfSj69k0UI+ilInz2NgxVOkotkcXfdJC9SapYf729vkF5hnamL0OhtCTYRTDYzE6v 9X1Ui0r3ukpHC9PCDpPk+rSiHcNDNjUEyScegn1Rg7xDOfu8QRIC0aXXbEM0o2c0ZdQX akh1sMtE3Bmf4xrk/YbD7qt65d8RM69uQEAQq2AcURugrk8pYa9+ZkuUDJb2gsshO63k coHA== X-Gm-Message-State: APjAAAXlSxwIaY7Oe2ozpqUo5RErGdmagALWdWrzMhvjyP1aAzR9PRVD F+h+/NxJAklRXbCGWrGOyeNz5Q== X-Google-Smtp-Source: APXvYqxVM8hrZMrVrN0PJJj+jvT0Ce4rQQgDXZKYwAk3Lheaytw4jaSMCSqQOni3tOHlxy+CY17HZw== X-Received: by 2002:a17:902:b08d:: with SMTP id p13mr108906635plr.109.1578349691709; Mon, 06 Jan 2020 14:28:11 -0800 (PST) Received: from rrcs-76-81-105-82.west.biz.rr.com (rrcs-76-81-105-82.west.biz.rr.com. [76.81.105.82]) by smtp.gmail.com with ESMTPSA id q7sm25607665pjd.3.2020.01.06.14.28.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Jan 2020 14:28:11 -0800 (PST) Date: Mon, 6 Jan 2020 12:28:08 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: Gleb Smirnoff cc: Jeff Roberson , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356389 - head/sys/vm In-Reply-To: <20200106220802.GI3339@FreeBSD.org> Message-ID: References: <202001052254.005MsQsH027909@repo.freebsd.org> <20200106220802.GI3339@FreeBSD.org> User-Agent: Alpine 2.21.9999 (BSF 287 2018-06-16) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed X-Rspamd-Queue-Id: 47s9Bj3Q7yz4KKp X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=jroberson-net.20150623.gappssmtp.com header.s=20150623 header.b=iDcSCZ+7; dmarc=none; spf=none (mx1.freebsd.org: domain of jroberson@jroberson.net has no SPF policy when checking 2607:f8b0:4864:20::62d) smtp.mailfrom=jroberson@jroberson.net X-Spamd-Result: default: False [-4.35 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[jroberson-net.20150623.gappssmtp.com:s=20150623]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-head@freebsd.org]; DMARC_NA(0.00)[jroberson.net]; RCPT_COUNT_FIVE(0.00)[5]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[jroberson-net.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[d.2.6.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MID_RHS_NOT_FQDN(0.50)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_TLS_ALL(0.00)[]; IP_SCORE(-2.55)[ip: (-8.71), ipnet: 2607:f8b0::/32(-2.13), asn: 15169(-1.85), country: US(-0.05)] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 22:28:14 -0000 On Mon, 6 Jan 2020, Gleb Smirnoff wrote: > Jeff, > > On Sun, Jan 05, 2020 at 10:54:26PM +0000, Jeff Roberson wrote: > J> Author: jeff > J> Date: Sun Jan 5 22:54:25 2020 > J> New Revision: 356389 > J> URL: https://svnweb.freebsd.org/changeset/base/356389 > J> > J> Log: > J> The fix in r356353 was insufficient. Not every architecture returns 0 for > J> EARLY_COUNTER. Only amd64 seems to. > J> > J> Suggested by: markj > J> Reported by: lwhsu > J> Reviewed by: markj > J> PR: 243117 > J> > J> Modified: > J> head/sys/vm/uma_core.c > J> > J> Modified: head/sys/vm/uma_core.c > J> ============================================================================== > J> --- head/sys/vm/uma_core.c Sun Jan 5 21:35:02 2020 (r356388) > J> +++ head/sys/vm/uma_core.c Sun Jan 5 22:54:25 2020 (r356389) > J> @@ -4153,8 +4153,10 @@ uma_zone_get_cur(uma_zone_t zone) > J> int64_t nitems; > J> u_int i; > J> > J> - nitems = counter_u64_fetch(zone->uz_allocs) - > J> - counter_u64_fetch(zone->uz_frees); > J> + nitems = 0; > J> + if (zone->uz_allocs != EARLY_COUNTER && zone->uz_frees != EARLY_COUNTER) > J> + nitems = counter_u64_fetch(zone->uz_allocs) - > J> + counter_u64_fetch(zone->uz_frees); > J> CPU_FOREACH(i) > J> nitems += atomic_load_64(&zone->uz_cpu[i].uc_allocs) - > J> atomic_load_64(&zone->uz_cpu[i].uc_frees); > J> @@ -4168,7 +4170,9 @@ uma_zone_get_allocs(uma_zone_t zone) > J> uint64_t nitems; > J> u_int i; > J> > J> - nitems = counter_u64_fetch(zone->uz_allocs); > J> + nitems = 0; > J> + if (zone->uz_allocs != EARLY_COUNTER) > J> + nitems = counter_u64_fetch(zone->uz_allocs); > J> CPU_FOREACH(i) > J> nitems += atomic_load_64(&zone->uz_cpu[i].uc_allocs); > J> > J> @@ -4181,7 +4185,9 @@ uma_zone_get_frees(uma_zone_t zone) > J> uint64_t nitems; > J> u_int i; > J> > J> - nitems = counter_u64_fetch(zone->uz_frees); > J> + nitems = 0; > J> + if (zone->uz_frees != EARLY_COUNTER) > J> + nitems = counter_u64_fetch(zone->uz_frees); > J> CPU_FOREACH(i) > J> nitems += atomic_load_64(&zone->uz_cpu[i].uc_frees); > > IMHO, tidier code would be not to check the pointers, but check UMA booted status: > > if (__predict_true(booted == BOOT_RUNNING)) > nitems = counter_u64_fetch(zone->uz_frees); That seems fine. I have drained my UMA patch queue for now but if I come back around I will include this. Thanks, Jeff > > -- > Gleb Smirnoff >