From nobody Fri Jan 07 17:59:22 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 2AAB7194AEFA; Fri, 7 Jan 2022 17:59:23 +0000 (UTC) (envelope-from git@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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4JVrZf6QCyz4bF8; Fri, 7 Jan 2022 17:59:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BC5A179BE; Fri, 7 Jan 2022 17:59:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 207HxMJD082331; Fri, 7 Jan 2022 17:59:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 207HxM9Y082330; Fri, 7 Jan 2022 17:59:22 GMT (envelope-from git) Date: Fri, 7 Jan 2022 17:59:22 GMT Message-Id: <202201071759.207HxM9Y082330@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alexander Motin Subject: git: 0e5c50bf6072 - main - cam: Relax callouts precisions. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mav X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0e5c50bf60727a5a832da9ba9dac06c057307a76 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1641578362; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YzA0uJaCRWc2OD1lglt/eLNTqSg6lO6IWPTo5Y9eDqc=; b=EiqDaTAzjy0D1AxZemIkAQxXVtfK0rUGAycdv4nS/JpQ6qgeQlHNZqzG5oeSJSoOy2tM9C YnoVUvV3gFScW7OwRlqXNhxZwthi4PF0qQRV8E8/sZjTG1DyvRWSraqXOuGPdCxz6J0NDb +sLVF6Q8u7R9rPX5swXafaKQ+RNENZ9z+4Ci9aiNtJ2A1uQAaqjzMh6SNab+bcRjhUg2B4 gd8gC6CwktvkMYa71krTY9BWtL+L+ZACurXoX/T2oqPuZ9k+ocK1PUzsTZ2Q5C7Mmf3hoa 46LbKlGrn/b9AbEzGK3AMb1cjo7ewfhXyhsP9VD5s3vLrnJKXnZRgZo91iqF8g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1641578362; a=rsa-sha256; cv=none; b=jX1vg4voC87yiWAz8MR0K7QoO+BEMsIY+iyPjDeUPVso7N6wx3hJYg1+qWhg9HBGjnqwJa NkW6dxh/QZ29rnDTrQa2jfQn4jjN+8yw0C6ds5sCFHPwnHA8cZX9Ts84qr0xAaVlODBHhp lUgzLNBpfohjI6qOED2QVDL4xRJJTzOFhB0uz3USwllkZocwPlnS8bX93ndVtph3//g6xK T1CncHosSuiUZRPrCsv5rXitVlxY696k53sW6+3H3W8+I/r+1gCilRwu8+NGl7cqXvA59g 43r1U5GDqVjB5X+pmAUhmtIi1vp34GxvT/dawMelBqHsl2h5SWldvqX/r/9o0g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=0e5c50bf60727a5a832da9ba9dac06c057307a76 commit 0e5c50bf60727a5a832da9ba9dac06c057307a76 Author: Alexander Motin AuthorDate: 2022-01-07 17:49:21 +0000 Commit: Alexander Motin CommitDate: 2022-01-07 17:59:16 +0000 cam: Relax callouts precisions. On large systems even relatively rare callouts may fire many times per second. This should allow them to aggregate better, since we do not require any precision when polling for media change, etc. MFC after: 2 weeks --- sys/cam/ata/ata_da.c | 13 +++++++------ sys/cam/cam_xpt.c | 6 +++--- sys/cam/scsi/scsi_cd.c | 14 +++++++++----- sys/cam/scsi/scsi_da.c | 26 +++++++++++++++----------- sys/cam/scsi/scsi_enc.c | 4 ++-- 5 files changed, 36 insertions(+), 27 deletions(-) diff --git a/sys/cam/ata/ata_da.c b/sys/cam/ata/ata_da.c index adfcc0ee1845..26d0d96d026f 100644 --- a/sys/cam/ata/ata_da.c +++ b/sys/cam/ata/ata_da.c @@ -1957,9 +1957,9 @@ adaregister(struct cam_periph *periph, void *arg) * ordered tag to a device. */ callout_init_mtx(&softc->sendordered_c, cam_periph_mtx(periph), 0); - callout_reset(&softc->sendordered_c, - (ada_default_timeout * hz) / ADA_ORDEREDTAG_INTERVAL, - adasendorderedtag, softc); + callout_reset_sbt(&softc->sendordered_c, + SBT_1S / ADA_ORDEREDTAG_INTERVAL * ada_default_timeout, 0, + adasendorderedtag, softc, C_PREL(1)); if (ADA_RA >= 0 && softc->flags & ADA_FLAG_CAN_RAHEAD) { softc->state = ADA_STATE_RAHEAD; @@ -3541,10 +3541,11 @@ adasendorderedtag(void *arg) softc->flags &= ~ADA_FLAG_WAS_OTAG; } } + /* Queue us up again */ - callout_reset(&softc->sendordered_c, - (ada_default_timeout * hz) / ADA_ORDEREDTAG_INTERVAL, - adasendorderedtag, softc); + callout_schedule_sbt(&softc->sendordered_c, + SBT_1S / ADA_ORDEREDTAG_INTERVAL * ada_default_timeout, 0, + C_PREL(1)); } /* diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c index d9ecabefe044..b8fc9458ec03 100644 --- a/sys/cam/cam_xpt.c +++ b/sys/cam/cam_xpt.c @@ -3043,7 +3043,7 @@ call_sim: } callout_reset_sbt(&dev->callout, - SBT_1MS * crs->release_timeout, 0, + SBT_1MS * crs->release_timeout, SBT_1MS, xpt_release_devq_timeout, dev, 0); dev->flags |= CAM_DEV_REL_TIMEOUT_PENDING; @@ -5099,8 +5099,8 @@ xpt_ch_done(void *arg) { callout_init(&xsoftc.boot_callout, 1); - callout_reset_sbt(&xsoftc.boot_callout, SBT_1MS * xsoftc.boot_delay, 0, - xpt_boot_delay, NULL, 0); + callout_reset_sbt(&xsoftc.boot_callout, SBT_1MS * xsoftc.boot_delay, + SBT_1MS, xpt_boot_delay, NULL, 0); } SYSINIT(xpt_hw_delay, SI_SUB_INT_CONFIG_HOOKS, SI_ORDER_ANY, xpt_ch_done, NULL); diff --git a/sys/cam/scsi/scsi_cd.c b/sys/cam/scsi/scsi_cd.c index 3f5cadb44fdc..d1b56d551732 100644 --- a/sys/cam/scsi/scsi_cd.c +++ b/sys/cam/scsi/scsi_cd.c @@ -744,9 +744,10 @@ cdregister(struct cam_periph *periph, void *arg) callout_init_mtx(&softc->mediapoll_c, cam_periph_mtx(periph), 0); if ((softc->flags & CD_FLAG_DISC_REMOVABLE) && (cgd->inq_flags & SID_AEN) == 0 && - cd_poll_period != 0) - callout_reset(&softc->mediapoll_c, cd_poll_period * hz, - cdmediapoll, periph); + cd_poll_period != 0) { + callout_reset_sbt(&softc->mediapoll_c, cd_poll_period * SBT_1S, + 0, cdmediapoll, periph, C_PREL(1)); + } xpt_schedule(periph, CAM_PRIORITY_DEV); return(CAM_REQ_CMP); @@ -3134,9 +3135,12 @@ cdmediapoll(void *arg) xpt_schedule(periph, CAM_PRIORITY_NORMAL); } } + /* Queue us up again */ - if (cd_poll_period != 0) - callout_schedule(&softc->mediapoll_c, cd_poll_period * hz); + if (cd_poll_period != 0) { + callout_schedule_sbt(&softc->mediapoll_c, + cd_poll_period * SBT_1S, 0, C_PREL(1)); + } } /* diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c index df8791e4b23e..8dde9d5b056e 100644 --- a/sys/cam/scsi/scsi_da.c +++ b/sys/cam/scsi/scsi_da.c @@ -2876,9 +2876,9 @@ daregister(struct cam_periph *periph, void *arg) * ordered tag to a device. */ callout_init_mtx(&softc->sendordered_c, cam_periph_mtx(periph), 0); - callout_reset(&softc->sendordered_c, - (da_default_timeout * hz) / DA_ORDEREDTAG_INTERVAL, - dasendorderedtag, periph); + callout_reset_sbt(&softc->sendordered_c, + SBT_1S / DA_ORDEREDTAG_INTERVAL * da_default_timeout, 0, + dasendorderedtag, periph, C_PREL(1)); cam_periph_unlock(periph); /* @@ -3003,9 +3003,10 @@ daregister(struct cam_periph *periph, void *arg) callout_init_mtx(&softc->mediapoll_c, cam_periph_mtx(periph), 0); if ((softc->flags & DA_FLAG_PACK_REMOVABLE) && (cgd->inq_flags & SID_AEN) == 0 && - da_poll_period != 0) - callout_reset(&softc->mediapoll_c, da_poll_period * hz, - damediapoll, periph); + da_poll_period != 0) { + callout_reset_sbt(&softc->mediapoll_c, da_poll_period * SBT_1S, + 0, damediapoll, periph, C_PREL(1)); + } xpt_schedule(periph, CAM_PRIORITY_DEV); @@ -6035,9 +6036,12 @@ damediapoll(void *arg) daschedule(periph); } } + /* Queue us up again */ - if (da_poll_period != 0) - callout_schedule(&softc->mediapoll_c, da_poll_period * hz); + if (da_poll_period != 0) { + callout_schedule_sbt(&softc->mediapoll_c, + da_poll_period * SBT_1S, 0, C_PREL(1)); + } } static void @@ -6224,9 +6228,9 @@ dasendorderedtag(void *arg) } /* Queue us up again */ - callout_reset(&softc->sendordered_c, - (da_default_timeout * hz) / DA_ORDEREDTAG_INTERVAL, - dasendorderedtag, periph); + callout_schedule_sbt(&softc->sendordered_c, + SBT_1S / DA_ORDEREDTAG_INTERVAL * da_default_timeout, 0, + C_PREL(1)); } /* diff --git a/sys/cam/scsi/scsi_enc.c b/sys/cam/scsi/scsi_enc.c index ad6c09c99f58..e01f613514fb 100644 --- a/sys/cam/scsi/scsi_enc.c +++ b/sys/cam/scsi/scsi_enc.c @@ -844,8 +844,8 @@ enc_daemon(void *arg) */ root_mount_rel(&enc->enc_rootmount); - callout_reset(&enc->status_updater, 60*hz, - enc_status_updater, enc); + callout_reset_sbt(&enc->status_updater, 60 * SBT_1S, 0, + enc_status_updater, enc, C_PREL(1)); cam_periph_sleep(enc->periph, enc->enc_daemon, PUSER, "idle", 0);