lkml.org 
[lkml]   [2023]   [Mar]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [net-next Patch v5 5/6] octeontx2-pf: Add support for HTB offload
    On Sun, Mar 26, 2023 at 11:42:44PM +0530, Hariprasad Kelam wrote:
    > From: Naveen Mamindlapalli <naveenm@marvell.com>
    >
    > This patch registers callbacks to support HTB offload.
    >
    > Below are features supported,
    >
    > - supports traffic shaping on the given class by honoring rate and ceil
    > configuration.
    >
    > - supports traffic scheduling, which prioritizes different types of
    > traffic based on strict priority values.
    >
    > - supports the creation of leaf to inner classes such that parent node
    > rate limits apply to all child nodes.
    >
    > Signed-off-by: Naveen Mamindlapalli <naveenm@marvell.com>
    > Signed-off-by: Hariprasad Kelam <hkelam@marvell.com>
    > Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>

    Reviewed-by: Simon Horman <simon.horman@corigine.com>

    > ---
    > .../ethernet/marvell/octeontx2/af/common.h | 2 +-
    > .../ethernet/marvell/octeontx2/nic/Makefile | 2 +-
    > .../marvell/octeontx2/nic/otx2_common.c | 35 +-
    > .../marvell/octeontx2/nic/otx2_common.h | 8 +-
    > .../marvell/octeontx2/nic/otx2_ethtool.c | 31 +-
    > .../ethernet/marvell/octeontx2/nic/otx2_pf.c | 56 +-
    > .../ethernet/marvell/octeontx2/nic/otx2_reg.h | 13 +
    > .../ethernet/marvell/octeontx2/nic/otx2_tc.c | 7 +-
    > .../net/ethernet/marvell/octeontx2/nic/qos.c | 1460 +++++++++++++++++
    > .../net/ethernet/marvell/octeontx2/nic/qos.h | 58 +-
    > .../ethernet/marvell/octeontx2/nic/qos_sq.c | 20 +-
    > 11 files changed, 1657 insertions(+), 35 deletions(-)

    nit: this is a rather long patch.

    ...

    > diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c

    ...

    > @@ -159,7 +165,7 @@ static void otx2_get_qset_stats(struct otx2_nic *pfvf,
    > [otx2_queue_stats[stat].index];
    > }
    >
    > - for (qidx = 0; qidx < pfvf->hw.tx_queues; qidx++) {
    > + for (qidx = 0; qidx < otx2_get_total_tx_queues(pfvf); qidx++) {

    nit: extra whitespace after '<'

    > if (!otx2_update_sq_stats(pfvf, qidx)) {
    > for (stat = 0; stat < otx2_n_queue_stats; stat++)
    > *((*data)++) = 0;

    ...

    > diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/qos.c b/drivers/net/ethernet/marvell/octeontx2/nic/qos.c

    ...

    > +static int otx2_qos_update_tx_netdev_queues(struct otx2_nic *pfvf)
    > +{
    > + int tx_queues, qos_txqs, err;
    > + struct otx2_hw *hw = &pfvf->hw;

    nit: reverse xmas tree - longest line to shortest -
    for local variable declarations.

    > diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/qos.h b/drivers/net/ethernet/marvell/octeontx2/nic/qos.h

    ...

    > +struct otx2_qos_node {
    > + struct list_head list; /* list managment */

    nit: s/managment/management/

    > + struct list_head child_list;
    > + struct list_head child_schq_list;
    > + struct hlist_node hlist;
    > + DECLARE_BITMAP(prio_bmap, OTX2_QOS_MAX_PRIO + 1);
    > + struct otx2_qos_node *parent; /* parent qos node */
    > + u64 rate; /* htb params */
    > + u64 ceil;
    > + u32 classid;
    > + u32 prio;
    > + u16 schq; /* hw txschq */
    > + u16 qid;
    > + u16 prio_anchor;
    > + u8 level;
    > +};
    > +
    >
    > #endif

    ...

    \
     
     \ /
      Last update: 2023-03-28 16:42    [W:8.066 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site