From nobody Sun Jan 14 21:53:55 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 4TCpv82flVz57DfX; Sun, 14 Jan 2024 21:53:56 +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 4TCpv80hf3z4FDQ; Sun, 14 Jan 2024 21:53:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1705269236; 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=4brFaU/krOQvGQkKbFoQWOP7NjwOOzTrJUfm3igKNh8=; b=VDHm0srux9wY7eU5d50/YHWzeXiMQyNxASeG7chd0svynyMaUTVNP32MdMKPyKduCIcwOq I9ygiajmen2QFNdDdz4h72wAO/dsNKIOqzHauONLFJKmT5td4RL7yl4PcCCLAAcpB5kMcP GARKVg35k47Bn4ViH0od24fJkNEBpGnjNCWU0W+gKMWqOR4kXdshT/MpyoHYUqxDOBAPrv dIp/GE3cvkcO0OAxmauuB8BpRMkRE4pltGkdaEsDWv4RtUVMGTw2F9QK7I5rDNIfs7jQtD zw0mMysmivWeAU8v9TL208/SpdCS4Pz85dzqB9yFjauUpH2FVJCXMe++ImXqAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1705269236; 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=4brFaU/krOQvGQkKbFoQWOP7NjwOOzTrJUfm3igKNh8=; b=uiswNvy9hI/nj7eztr6sUdz5ZJ4TQLm5D1ITEsPclwbOytISOA5Xt65Cm7vxQTOW06EdZ2 wlQpOk0EXZyj2/3iZEq6/mX0zfWVKaaDWdvfVGdFokJKajQiU2rsRTmBELhiS1oNe507wp Y0fCB9+jj2LiQNLXkmw3zld0q8jOY7Q8fj4HzR2hgwZr26w6OFe/PFxBkI1P1eop8SiKEb ivSoDgnZbuq5mlsc2pex2uv18Cb2YMZdebiPgH/qd9F89Kfui9zpovdsqpVIJ6AhZ+kmiv soxalwZ+tNG8Ihrukr/5rRb/FemblaAnhpKJH9BCprYnkJDMmEpoWAPhDKD+tw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1705269236; a=rsa-sha256; cv=none; b=U4uOFbaszRHsuWodN3inKft65VipX456hHPJkJCa8QbzpPaiAMXlTU2SQWgC4pcgHDLyu7 KG0nBFxiGNiGlNDv+nC7z5yc/gvhZy5mm1irmNMK3Sc02QzzcZFi6OEneFz7BIqBthF9Ri qZxYXq3zRQ+nk5R5DWPQI5nTsttj2GID8UKoBM269fkascQ0DVrj/6RlZ/F/KYRoo18b5v a3rh9J0FaHn2TWwliXCBQMu1LDzxobTVy5St5K4VIVMD2O8iJWY90m7zl47hiiO5NnuAgG YtNfawW3bUI8SdBaYa6b2WGKaB5eQnDgeC5/77ghQSUVfec2zhI5QoXgHErWSw== 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 4TCpv76vRRzWvl; Sun, 14 Jan 2024 21:53:55 +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 40ELrtm0041634; Sun, 14 Jan 2024 21:53:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 40ELrtAh041631; Sun, 14 Jan 2024 21:53:55 GMT (envelope-from git) Date: Sun, 14 Jan 2024 21:53:55 GMT Message-Id: <202401142153.40ELrtAh041631@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: 79c446badb02 - stable/14 - 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/14 X-Git-Reftype: branch X-Git-Commit: 79c446badb02c3458f061925d6ccbe073af3dcd9 Auto-Submitted: auto-generated The branch stable/14 has been updated by akiyano: URL: https://cgit.FreeBSD.org/src/commit/?id=79c446badb02c3458f061925d6ccbe073af3dcd9 commit 79c446badb02c3458f061925d6ccbe073af3dcd9 Author: Osama Abboud AuthorDate: 2023-09-12 10:13:48 +0000 Commit: Arthur Kiyanovski CommitDate: 2024-01-14 21:18:11 +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 aca2e0b43041..f6357a43ea34 100644 --- a/sys/dev/ena/ena.c +++ b/sys/dev/ena/ena.c @@ -3321,19 +3321,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();