Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp1405090pxx; Fri, 30 Oct 2020 09:12:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx3ZF7zBVSMaxmS8mqUNyTjLri8a3SyUFfIh9t2DL8G8x7/V5H8qHVSzerxaYe9E4jRu7/4 X-Received: by 2002:a05:6402:395:: with SMTP id o21mr3195367edv.2.1604074361982; Fri, 30 Oct 2020 09:12:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1604074361; cv=none; d=google.com; s=arc-20160816; b=RsnyqXoM5vIc4BB/euIaEh22fSbMwTW8H8E+JoPoPXSf96EIimNe4Y29ysTNWQrC11 oM9cbrBRiEJg8Vl84TM6aIgEk9xiev4g6N1gSsXOR20Q4HT0CmQy5h2JeFqqRc+hqeZT W5pUWm4ZlbRJ9/hBQWKS0/f6dQtZqzajCB0HyXbi9SGyj7cFsKt83bNBnI/06/+TJpkL 5z6JmsNMUpjmWuoI9POS2CuVxxtQjz8o4RJmHMxLPUs9ZuPpucr9oY8ySYYAIfdPQ0Tg /KHswbJfywsgMfvRlpVlpFq5Wfa3ueWmmqudqtWLOoo+bwSmnyMax/2jkJ7u7tOrjROC YJ0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=lgH2HVgV31P4DjI/tPjJyBLSMiXfmIXY4gCXmNECm8g=; b=Vg/q2Q/3QiTliycamQ5SCQ4Tqyy3O8esuMHWjzDXYogAKThLo1fTxRwrzBfAG21mXe W8K326nQ2pH0LF5hh1ehfDMPKjNMdJU+U7HBJRS88B8vFTjX0tLMnGK+ZbcFyVyudsEZ YcpwO5kpuQL0J16A+biqhrQv95qlt8cUCCUaors21bf5tlFUW3uC7cowwBFs0wFl37iY 6DVDm1Xe8Qb8EEpx9el+D6CsHRdZ45yDk9yiolvTZ6rkaY1w3WncigeAxwF+tw+rQraZ Ay+cY6wn6gVyPAAeUWuOzTNoK0nH+l2BbBMta8eB/XEaDMq9Q6q4kaq7O/mTa7WdUoQl rPEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=S3LvPdaE; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k12si4471645ejg.234.2020.10.30.09.12.16; Fri, 30 Oct 2020 09:12:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=S3LvPdaE; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725863AbgJ3QJt (ORCPT + 99 others); Fri, 30 Oct 2020 12:09:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50682 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725844AbgJ3QJt (ORCPT ); Fri, 30 Oct 2020 12:09:49 -0400 Received: from mail-vs1-xe44.google.com (mail-vs1-xe44.google.com [IPv6:2607:f8b0:4864:20::e44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D4B32C0613D2 for ; Fri, 30 Oct 2020 09:09:48 -0700 (PDT) Received: by mail-vs1-xe44.google.com with SMTP id y78so3681345vsy.6 for ; Fri, 30 Oct 2020 09:09:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=lgH2HVgV31P4DjI/tPjJyBLSMiXfmIXY4gCXmNECm8g=; b=S3LvPdaEXV8lvJr2SqoMGEjeEroT0Mv1NiU5Bz2u2bvxDJ3HlBz2lw54KINtH4dWRL Q/QwhrLdsTfx4oxl3CfMbiC3mLv8GJmYhm/QadtnsQP59Vtz3koij8gMUVkg/24xXtIo sDxwbWWKzmKqhZyMZIkmLTIojbyZfheLmqP9oTiBmfDuEgiN33JlqdOV+NTh3ZNmUISu JXhLUoROLjOPUa0tv/X0DAr6gD2rCwZdxC1mW4MLFUIiwXKmXXcp+Gs5AKAev15FCRSV ufR+MLtbnNUA9jTThbZMVTTw2PeIGCrOFQLqLKY/2uTMqjH/S4UaJv11itQ5gTvdJTjQ 816A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=lgH2HVgV31P4DjI/tPjJyBLSMiXfmIXY4gCXmNECm8g=; b=oeiccuetv5KdYwhc7/i04NxnITfe6wlC2prj1k+wb8n61YB7U7LJXhokkoYrYwkS5d RufCYqSKQva1mIevoLfbDr8/1iFCPTtG6nFR9Cd4XoLuOYxZxh3Ob4OF023N4f26kqTk Zf9+xBnUy6eomApInn3hniNB3lVXegcXbfvHU7y7gDqrVBumP8e1X04q/o8in51JmFop 70gQL/InTotQYBwVQ1H6FXL9dIa6/p/1LB2f7QqSuOHfWKJRL3qjWbLa+m2AyiIjeUTn iypMECNlw6Xuv0zwrnDV2Z6oAyotbPiARF/tTJJD887eFrysLxap/6d9C45LI7hjNEu9 Alxg== X-Gm-Message-State: AOAM530BV5x3dDSQv6mI5J59XYfQlm9h2cL4QSaQTJgmAVNxACDe+3go O3xY6SF2q6O3qT/qQPs5vkKg4RGUeKM= X-Received: by 2002:a67:e3a8:: with SMTP id j8mr8670045vsm.30.1604074187758; Fri, 30 Oct 2020 09:09:47 -0700 (PDT) Received: from mail-vs1-f46.google.com (mail-vs1-f46.google.com. [209.85.217.46]) by smtp.gmail.com with ESMTPSA id k27sm231851vsr.21.2020.10.30.09.09.41 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 30 Oct 2020 09:09:42 -0700 (PDT) Received: by mail-vs1-f46.google.com with SMTP id b3so3681410vsc.5 for ; Fri, 30 Oct 2020 09:09:41 -0700 (PDT) X-Received: by 2002:a05:6102:2f8:: with SMTP id j24mr7913538vsj.13.1604074180719; Fri, 30 Oct 2020 09:09:40 -0700 (PDT) MIME-Version: 1.0 References: <20201028145015.19212-1-schalla@marvell.com> <20201028145015.19212-4-schalla@marvell.com> In-Reply-To: <20201028145015.19212-4-schalla@marvell.com> From: Willem de Bruijn Date: Fri, 30 Oct 2020 12:09:04 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v8,net-next,03/12] octeontx2-af: add debugfs entries for CPT block To: Srujana Challa Cc: Herbert Xu , David Miller , Network Development , linux-crypto@vger.kernel.org, Jakub Kicinski , sgoutham@marvell.com, gakula@marvell.com, sbhatta@marvell.com, schandran@marvell.com, pathreya@marvell.com Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org On Wed, Oct 28, 2020 at 10:22 PM Srujana Challa wrote: > > Add entries to debugfs at /sys/kernel/debug/octeontx2/cpt. > > cpt_pc: dump cpt performance HW registers. > Usage: > cat /sys/kernel/debug/octeontx2/cpt/cpt_pc > > cpt_ae_sts: show cpt asymmetric engines current state > Usage: > cat /sys/kernel/debug/octeontx2/cpt/cpt_ae_sts > > cpt_se_sts: show cpt symmetric engines current state > Usage: > cat /sys/kernel/debug/octeontx2/cpt/cpt_se_sts > > cpt_engines_info: dump cpt engine control registers. > Usage: > cat /sys/kernel/debug/octeontx2/cpt/cpt_engines_info > > cpt_lfs_info: dump cpt lfs control registers. > Usage: > cat /sys/kernel/debug/octeontx2/cpt/cpt_lfs_info > > cpt_err_info: dump cpt error registers. > Usage: > cat /sys/kernel/debug/octeontx2/cpt/cpt_err_info > > Signed-off-by: Suheil Chandran > Signed-off-by: Srujana Challa > --- > .../net/ethernet/marvell/octeontx2/af/rvu.h | 1 + > .../marvell/octeontx2/af/rvu_debugfs.c | 304 ++++++++++++++++++ > 2 files changed, 305 insertions(+) > > diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu.h b/drivers/net/ethernet/marvell/octeontx2/af/rvu.h > index c37e106d7006..ba18171c87d6 100644 > --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu.h > +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu.h > @@ -50,6 +50,7 @@ struct rvu_debugfs { > struct dentry *npa; > struct dentry *nix; > struct dentry *npc; > + struct dentry *cpt; > struct dump_ctx npa_aura_ctx; > struct dump_ctx npa_pool_ctx; > struct dump_ctx nix_cq_ctx; > diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c > index 77adad4adb1b..24354bfb4e94 100644 > --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c > +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c > @@ -1676,6 +1676,309 @@ static void rvu_dbg_npc_init(struct rvu *rvu) > debugfs_remove_recursive(rvu->rvu_dbg.npc); > } > > +/* CPT debugfs APIs */ > +static int rvu_dbg_cpt_ae_sts_display(struct seq_file *filp, void *unused) > +{ > + struct rvu *rvu = filp->private; > + u64 busy_sts = 0, free_sts = 0; > + u32 e_min = 0, e_max = 0, e, i; > + u16 max_ses, max_ies, max_aes; > + int blkaddr; > + u64 reg; > + > + blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_CPT, 0); > + if (blkaddr < 0) > + return -ENODEV; > + > + reg = rvu_read64(rvu, blkaddr, CPT_AF_CONSTANTS1); > + max_ses = reg & 0xffff; > + max_ies = (reg >> 16) & 0xffff; > + max_aes = (reg >> 32) & 0xffff; > + > + e_min = max_ses + max_ies; > + e_max = max_ses + max_ies + max_aes; > + > + for (e = e_min, i = 0; e < e_max; e++, i++) { > + reg = rvu_read64(rvu, blkaddr, CPT_AF_EXEX_STS(e)); > + if (reg & 0x1) > + busy_sts |= 1ULL << i; > + > + if (reg & 0x2) > + free_sts |= 1ULL << i; > + } > + seq_printf(filp, "FREE STS : 0x%016llx\n", free_sts); > + seq_printf(filp, "BUSY STS : 0x%016llx\n", busy_sts); > + > + return 0; > +} > + > +RVU_DEBUG_SEQ_FOPS(cpt_ae_sts, cpt_ae_sts_display, NULL); > + > +static int rvu_dbg_cpt_se_sts_display(struct seq_file *filp, void *unused) > +{ > + struct rvu *rvu = filp->private; > + u64 busy_sts = 0, free_sts = 0; > + u32 e_min = 0, e_max = 0, e; > + u16 max_ses; > + int blkaddr; > + u64 reg; > + > + blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_CPT, 0); > + if (blkaddr < 0) > + return -ENODEV; > + > + reg = rvu_read64(rvu, blkaddr, CPT_AF_CONSTANTS1); > + max_ses = reg & 0xffff; > + > + e_min = 0; > + e_max = max_ses; > + > + for (e = e_min; e < e_max; e++) { > + reg = rvu_read64(rvu, blkaddr, CPT_AF_EXEX_STS(e)); > + if (reg & 0x1) > + busy_sts |= 1ULL << e; > + > + if (reg & 0x2) > + free_sts |= 1ULL << e; > + } > + seq_printf(filp, "FREE STS : 0x%016llx\n", free_sts); > + seq_printf(filp, "BUSY STS : 0x%016llx\n", busy_sts); > + > + return 0; > +} > + > +RVU_DEBUG_SEQ_FOPS(cpt_se_sts, cpt_se_sts_display, NULL); > + > +static int rvu_dbg_cpt_ie_sts_display(struct seq_file *filp, void *unused) > +{ > + struct rvu *rvu = filp->private; > + u64 busy_sts = 0, free_sts = 0; > + u32 e_min = 0, e_max = 0, e, i; > + u16 max_ses, max_ies; > + int blkaddr; > + u64 reg; > + > + blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_CPT, 0); > + if (blkaddr < 0) > + return -ENODEV; > + > + reg = rvu_read64(rvu, blkaddr, CPT_AF_CONSTANTS1); > + max_ses = reg & 0xffff; > + max_ies = (reg >> 16) & 0xffff; > + > + e_min = max_ses; > + e_max = max_ses + max_ies; > + > + for (e = e_min, i = 0; e < e_max; e++, i++) { > + reg = rvu_read64(rvu, blkaddr, CPT_AF_EXEX_STS(e)); > + if (reg & 0x1) > + busy_sts |= 1ULL << i; > + > + if (reg & 0x2) > + free_sts |= 1ULL << i; > + } > + seq_printf(filp, "FREE STS : 0x%016llx\n", free_sts); > + seq_printf(filp, "BUSY STS : 0x%016llx\n", busy_sts); > + > + return 0; > +} The above three are very similar. Could they use a single helper?