From owner-svn-src-stable@freebsd.org Sat Nov 7 13:16:12 2020 Return-Path: Delivered-To: svn-src-stable@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 AD4172EF1EA; Sat, 7 Nov 2020 13:16:12 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4CSySX4YwRz4nYM; Sat, 7 Nov 2020 13:16:12 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 751857287; Sat, 7 Nov 2020 13:16:12 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0A7DGC52052436; Sat, 7 Nov 2020 13:16:12 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0A7DGB0P052434; Sat, 7 Nov 2020 13:16:11 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202011071316.0A7DGB0P052434@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sat, 7 Nov 2020 13:16:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r367446 - in stable/12/sys: geom kern sys X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: in stable/12/sys: geom kern sys X-SVN-Commit-Revision: 367446 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Nov 2020 13:16:12 -0000 Author: mav Date: Sat Nov 7 13:16:11 2020 New Revision: 367446 URL: https://svnweb.freebsd.org/changeset/base/367446 Log: MFC r367022: Fix asymmetry in devstat(9) calls by GEOM. Before this GEOM passed bio pointer to transaction end, but not start. It was irrelevant until devstat(9) got DTrace hooks, that appeared to provide bio pointer on I/O completion, but not on submission. Modified: stable/12/sys/geom/geom_io.c stable/12/sys/kern/subr_devstat.c stable/12/sys/sys/devicestat.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/geom_io.c ============================================================================== --- stable/12/sys/geom/geom_io.c Sat Nov 7 13:09:51 2020 (r367445) +++ stable/12/sys/geom/geom_io.c Sat Nov 7 13:16:11 2020 (r367446) @@ -616,9 +616,9 @@ g_io_request(struct bio *bp, struct g_consumer *cp) mtxp = mtx_pool_find(mtxpool_sleep, pp); mtx_lock(mtxp); if (g_collectstats & G_STATS_PROVIDERS) - devstat_start_transaction(pp->stat, &bp->bio_t0); + devstat_start_transaction_bio_t0(pp->stat, bp); if (g_collectstats & G_STATS_CONSUMERS) - devstat_start_transaction(cp->stat, &bp->bio_t0); + devstat_start_transaction_bio_t0(cp->stat, bp); pp->nstart++; cp->nstart++; mtx_unlock(mtxp); Modified: stable/12/sys/kern/subr_devstat.c ============================================================================== --- stable/12/sys/kern/subr_devstat.c Sat Nov 7 13:09:51 2020 (r367445) +++ stable/12/sys/kern/subr_devstat.c Sat Nov 7 13:16:11 2020 (r367446) @@ -261,6 +261,17 @@ devstat_start_transaction_bio(struct devstat *ds, stru return; binuptime(&bp->bio_t0); + devstat_start_transaction_bio_t0(ds, bp); +} + +void +devstat_start_transaction_bio_t0(struct devstat *ds, struct bio *bp) +{ + + /* sanity check */ + if (ds == NULL) + return; + devstat_start_transaction(ds, &bp->bio_t0); DTRACE_DEVSTAT_BIO_START(); } Modified: stable/12/sys/sys/devicestat.h ============================================================================== --- stable/12/sys/sys/devicestat.h Sat Nov 7 13:09:51 2020 (r367445) +++ stable/12/sys/sys/devicestat.h Sat Nov 7 13:16:11 2020 (r367446) @@ -196,6 +196,7 @@ struct devstat *devstat_new_entry(const void *dev_name void devstat_remove_entry(struct devstat *ds); void devstat_start_transaction(struct devstat *ds, const struct bintime *now); void devstat_start_transaction_bio(struct devstat *ds, struct bio *bp); +void devstat_start_transaction_bio_t0(struct devstat *ds, struct bio *bp); void devstat_end_transaction(struct devstat *ds, u_int32_t bytes, devstat_tag_type tag_type, devstat_trans_flags flags,