[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210415094651.06041834@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
Date: Thu, 15 Apr 2021 09:46:51 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: Tony Nguyen <anthony.l.nguyen@...el.com>
Cc: davem@...emloft.net, Jacob Keller <jacob.e.keller@...el.com>,
netdev@...r.kernel.org, sassmann@...hat.com,
Jesse Brandeburg <jesse.brandeburg@...el.com>,
Tony Brelinski <tonyx.brelinski@...el.com>
Subject: Re: [PATCH net-next 05/15] ice: replace custom AIM algorithm with
kernel's DIM library
On Wed, 14 Apr 2021 17:30:03 -0700 Tony Nguyen wrote:
> +static void ice_tx_dim_work(struct work_struct *work)
> +{
> + struct ice_ring_container *rc;
> + struct ice_q_vector *q_vector;
> + struct dim *dim;
> + u16 itr, intrl;
> +
> + dim = container_of(work, struct dim, work);
> + rc = container_of(dim, struct ice_ring_container, dim);
> + q_vector = container_of(rc, struct ice_q_vector, tx);
> +
> + if (dim->profile_ix >= ARRAY_SIZE(tx_profile))
> + dim->profile_ix = ARRAY_SIZE(tx_profile) - 1;
> +
> + /* look up the values in our local table */
> + itr = tx_profile[dim->profile_ix].itr;
> + intrl = tx_profile[dim->profile_ix].intrl;
> +
> + ice_write_itr(rc, itr);
> + ice_write_intrl(q_vector, intrl);
> +
> + dim->state = DIM_START_MEASURE;
Are you only doing register writes in ice_write_itr/intrl or talk to FW?
Scheduler is expensive so you can save real cycles if you don't have to
rely on a work to do the programming (not sure how hard that is with
DIM, but since you're already sorta poking at the internals I thought
I'd ask).
Powered by blists - more mailing lists