From nobody Sun Jan 14 22:07:58 2024 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 4TCqCM0xCmz57G5Z; Sun, 14 Jan 2024 22:07:59 +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 4TCqCM0LT3z4K7J; Sun, 14 Jan 2024 22:07:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1705270079; 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=Cwd7+gSmkKNYkp9lesI96GDK/WbMvxQ7n/O5oWFWlIY=; b=N5mBZQ0lXYvg6Cw5gVNjt93cIRZ3Uat1fNkLGskeEW9tF/yYUURSH/wy5KY6a+LsC+XUXR obHIz6A2XdtEhWRLtD5QoMn4ezdtVdrQZ3tDcD2MDG75Sta7BRqSMsCIR5DJ60MW3Eo8n2 E5QzQt4BKyVjMRDJaqRu0UI2PhBpq5bqT/RkNpiqVo0xKNFCVoAfFu7ke0Gq38vJkg+Ua5 PmMgclC5iN+4TPZJV4Rolj9LMz2uKVJXRiSoIuEebyrwy65AL9W3c66iM7fF2Uqk4breAd GTzHR1n4L8QTrnbMKRllQBtMIrIfBn6d9CJO85Hhcv1j8pfA4OpL79Kj+uqtmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1705270079; 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=Cwd7+gSmkKNYkp9lesI96GDK/WbMvxQ7n/O5oWFWlIY=; b=e6oA4Fgmxxvh1vwM0E+xdma3Slv3OgxPyKtqra1G8KXJzgB04puCGCPavoYOT1H24Dlldr 7apEVpvXoKS9148T3izTgXgEhDrXul+cPTmkFrDwJaHkGSDhraDoLCE87BWuTj4ZmyYH4Q +wwbhsPIw3bOuBDfPPII8qorkQLM/+UBgBKSq/WMROd74JljKRLQB84cgnYwxX5O9n4hdN 9tsaBdNZJryudXONjMNOf83/Qxmf5alXEdPabuydjrAEnFtoM/AzRbOxq5C2Wbej8Zpy3r OcOcZemGPKNpZqe6OWXB4Mx5IZxOSpeXO07JhCjyU8mkAsKmyr8J7Uy5OVOPaA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1705270079; a=rsa-sha256; cv=none; b=tqZhtbRbrGrQ1e8+IWZ0fAOYs5/f4PKNKyKkoPZm/2xs+HSCVPU+ir8VATxiK2pn8mKCEf qiIIBE9xzapMDPZypqX65BM2Qxn0f0QiM6++AViN+ZLmbbWwT9pHwgAIH8pkmJGoRLt26T Tl/qfDo4Z8brPjtyp9pQ7bkHmiW1KHqUgtIQhXpbjsyqN4gzxDCQOPJAIROaHbv2oEvEvc 9a3zdfiuB7A+JLuAsP/+4XM5hget4SWu847p/fQG2xVNV9z0w+FZNA06A/EiP0oHKO6Wgj Ic92K5EgZGDh3sb+q1MwK///ol3FVlh4NGfRbMC9bGcMMGtTHpqWQp6jZVCpUA== 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 4TCqCL6V6jzXHN; Sun, 14 Jan 2024 22:07:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 40EM7wM1060243; Sun, 14 Jan 2024 22:07:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 40EM7wAF060240; Sun, 14 Jan 2024 22:07:58 GMT (envelope-from git) Date: Sun, 14 Jan 2024 22:07:58 GMT Message-Id: <202401142207.40EM7wAF060240@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Arthur Kiyanovski Subject: git: cdf3fb73ae13 - stable/13 - ena: Introduce shared sample interval for all stats 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: akiyano X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: cdf3fb73ae13214b6575f4761478c5be534cbed9 Auto-Submitted: auto-generated The branch stable/13 has been updated by akiyano: URL: https://cgit.FreeBSD.org/src/commit/?id=cdf3fb73ae13214b6575f4761478c5be534cbed9 commit cdf3fb73ae13214b6575f4761478c5be534cbed9 Author: Osama Abboud AuthorDate: 2023-09-12 10:13:48 +0000 Commit: Arthur Kiyanovski CommitDate: 2024-01-14 07:43:23 +0000 ena: Introduce shared sample interval for all stats Rename sample_interval node to stats_sample_interval and move it up in the sysctl tree to make it clear that it's relevant for all the stats and not only ENI metrics (Currently, sample interval node is found under eni_metrics node). Path to node: dev.ena..stats_sample_interval Once this parameter is set it will set the sample interval for all the stats node including SRD/customer metrics. Approved by: cperciva (mentor) MFC after: 2 weeks Sponsored by: Amazon, Inc. (cherry picked from commit 5b925280d9a54eaefd85827bf6e84049aea8fa98) --- sys/dev/ena/ena.c | 12 ++++++------ sys/dev/ena/ena.h | 4 ++-- sys/dev/ena/ena_sysctl.c | 42 +++++++++++++++++++++--------------------- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/sys/dev/ena/ena.c b/sys/dev/ena/ena.c index f078dbf78060..4ff1cb624a6a 100644 --- a/sys/dev/ena/ena.c +++ b/sys/dev/ena/ena.c @@ -3322,19 +3322,19 @@ ena_timer_service(void *data) check_for_empty_rx_ring(adapter); /* - * User controller update of the ENI metrics. + * User controller update of the ENA metrics. * If the delay was set to 0, then the stats shouldn't be updated at * all. - * Otherwise, wait 'eni_metrics_sample_interval' seconds, before + * Otherwise, wait 'metrics_sample_interval' seconds, before * updating stats. * As timer service is executed every second, it's enough to increment * appropriate counter each time the timer service is executed. */ - if ((adapter->eni_metrics_sample_interval != 0) && - (++adapter->eni_metrics_sample_interval_cnt >= - adapter->eni_metrics_sample_interval)) { + if ((adapter->metrics_sample_interval != 0) && + (++adapter->metrics_sample_interval_cnt >= + adapter->metrics_sample_interval)) { taskqueue_enqueue(adapter->metrics_tq, &adapter->metrics_task); - adapter->eni_metrics_sample_interval_cnt = 0; + adapter->metrics_sample_interval_cnt = 0; } diff --git a/sys/dev/ena/ena.h b/sys/dev/ena/ena.h index 3687e9b2522e..fd0c6e3692c7 100644 --- a/sys/dev/ena/ena.h +++ b/sys/dev/ena/ena.h @@ -480,8 +480,8 @@ struct ena_adapter { uint32_t missing_tx_threshold; bool disable_meta_caching; - uint16_t eni_metrics_sample_interval; - uint16_t eni_metrics_sample_interval_cnt; + uint16_t metrics_sample_interval; + uint16_t metrics_sample_interval_cnt; /* Statistics */ struct ena_stats_dev dev_stats; diff --git a/sys/dev/ena/ena_sysctl.c b/sys/dev/ena/ena_sysctl.c index 6668f9924787..bcf684e9e0ca 100644 --- a/sys/dev/ena/ena_sysctl.c +++ b/sys/dev/ena/ena_sysctl.c @@ -48,14 +48,14 @@ static int ena_sysctl_rx_queue_size(SYSCTL_HANDLER_ARGS); static int ena_sysctl_io_queues_nb(SYSCTL_HANDLER_ARGS); static int ena_sysctl_irq_base_cpu(SYSCTL_HANDLER_ARGS); static int ena_sysctl_irq_cpu_stride(SYSCTL_HANDLER_ARGS); -static int ena_sysctl_eni_metrics_interval(SYSCTL_HANDLER_ARGS); +static int ena_sysctl_metrics_interval(SYSCTL_HANDLER_ARGS); #ifndef RSS static int ena_sysctl_rss_key(SYSCTL_HANDLER_ARGS); static int ena_sysctl_rss_indir_table(SYSCTL_HANDLER_ARGS); #endif -/* Limit max ENI sample rate to be an hour. */ -#define ENI_METRICS_MAX_SAMPLE_INTERVAL 3600 +/* Limit max ENA sample rate to be an hour. */ +#define ENA_METRICS_MAX_SAMPLE_INTERVAL 3600 #define ENA_HASH_KEY_MSG_SIZE (ENA_HASH_KEY_SIZE * 2 + 1) static SYSCTL_NODE(_hw, OID_AUTO, ena, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, @@ -368,16 +368,6 @@ ena_sysctl_add_eni_metrics(struct ena_adapter *adapter) SYSCTL_ADD_U64(ctx, eni_list, OID_AUTO, "linklocal_allowance_exceeded", CTLFLAG_RD, &eni_metrics->linklocal_allowance_exceeded, 0, "Linklocal packet rate allowance exceeded"); - - /* - * Tuneable, which determines how often ENI metrics will be read. - * 0 means it's turned off. Maximum allowed value is limited by: - * ENI_METRICS_MAX_SAMPLE_INTERVAL. - */ - SYSCTL_ADD_PROC(ctx, eni_list, OID_AUTO, "sample_interval", - CTLTYPE_U16 | CTLFLAG_RW | CTLFLAG_MPSAFE, adapter, 0, - ena_sysctl_eni_metrics_interval, "SU", - "Interval in seconds for updating ENI emetrics. 0 turns off the update."); } static void @@ -411,6 +401,16 @@ ena_sysctl_add_tuneables(struct ena_adapter *adapter) SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "io_queues_nb", CTLTYPE_U32 | CTLFLAG_RW | CTLFLAG_MPSAFE, adapter, 0, ena_sysctl_io_queues_nb, "I", "Number of IO queues."); + + /* + * Tuneable, which determines how often ENA metrics will be read. + * 0 means it's turned off. Maximum allowed value is limited by: + * ENA_METRICS_MAX_SAMPLE_INTERVAL. + */ + SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "stats_sample_interval", + CTLTYPE_U16 | CTLFLAG_RW | CTLFLAG_MPSAFE, adapter, 0, + ena_sysctl_metrics_interval, "SU", + "Interval in seconds for updating Netword interface metrics. 0 turns off the update."); } /* Kernel option RSS prevents manipulation of key hash and indirection table. */ @@ -694,7 +694,7 @@ unlock: } static int -ena_sysctl_eni_metrics_interval(SYSCTL_HANDLER_ARGS) +ena_sysctl_metrics_interval(SYSCTL_HANDLER_ARGS) { struct ena_adapter *adapter = arg1; uint16_t interval; @@ -708,32 +708,32 @@ ena_sysctl_eni_metrics_interval(SYSCTL_HANDLER_ARGS) error = sysctl_wire_old_buffer(req, sizeof(interval)); if (error == 0) { - interval = adapter->eni_metrics_sample_interval; + interval = adapter->metrics_sample_interval; error = sysctl_handle_16(oidp, &interval, 0, req); } if (error != 0 || req->newptr == NULL) goto unlock; - if (interval > ENI_METRICS_MAX_SAMPLE_INTERVAL) { + if (interval > ENA_METRICS_MAX_SAMPLE_INTERVAL) { ena_log(adapter->pdev, ERR, - "ENI metrics update interval is out of range - maximum allowed value: %d seconds\n", - ENI_METRICS_MAX_SAMPLE_INTERVAL); + "ENA metrics update interval is out of range - maximum allowed value: %d seconds\n", + ENA_METRICS_MAX_SAMPLE_INTERVAL); error = EINVAL; goto unlock; } if (interval == 0) { ena_log(adapter->pdev, INFO, - "ENI metrics update is now turned off\n"); + "ENA metrics update is now turned off\n"); bzero(&adapter->eni_metrics, sizeof(adapter->eni_metrics)); } else { ena_log(adapter->pdev, INFO, - "ENI metrics update interval is set to: %" PRIu16 + "ENA metrics update interval is set to: %" PRIu16 " seconds\n", interval); } - adapter->eni_metrics_sample_interval = interval; + adapter->metrics_sample_interval = interval; unlock: ENA_LOCK_UNLOCK();