[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200914141041.570370fd@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
Date: Mon, 14 Sep 2020 14:10:41 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: Shannon Nelson <snelson@...sando.io>
Cc: netdev@...r.kernel.org, davem@...emloft.net
Subject: Re: [PATCH net-next] ionic: dynamic interrupt moderation
On Sun, 13 Sep 2020 14:28:13 -0700 Shannon Nelson wrote:
> Use the dim library to manage dynamic interrupt
> moderation in ionic.
>
> Signed-off-by: Shannon Nelson <snelson@...sando.io>
Let me advertise my people.kernel entry ;)
https://people.kernel.org/finqi53erl
My somewhat short production experience leads me to question the value
of DIM on real life workloads, but I know customers like to benchmark
adapters using ping and iperf, so do what you gotta do :(
> diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c b/drivers/net/ethernet/pensando/ionic/ionic_lif.c
> index 895e2113bd6b..f1c8ab439080 100644
> --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c
> +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c
> @@ -42,6 +42,19 @@ static int ionic_start_queues(struct ionic_lif *lif);
> static void ionic_stop_queues(struct ionic_lif *lif);
> static void ionic_lif_queue_identify(struct ionic_lif *lif);
>
> +static void ionic_dim_work(struct work_struct *work)
> +{
> + struct dim *dim = container_of(work, struct dim, work);
> + struct dim_cq_moder cur_moder =
> + net_dim_get_rx_moderation(dim->mode, dim->profile_ix);
Could you move this out of the variable init? Make things hard to read.
> + struct ionic_qcq *qcq = container_of(dim, struct ionic_qcq, dim);
> + u32 new_coal;
> +
> + new_coal = ionic_coal_usec_to_hw(qcq->q.lif->ionic, cur_moder.usec);
> + qcq->intr.dim_coal_hw = new_coal ? new_coal : 1;
> + dim->state = DIM_START_MEASURE;
> +}
Interesting, it seem that you don't actually talk to FW to update
the parameters? DIM causes noticeable increase in scheduler pressure
with those work entries it posts. I'd be tempted to not use a work
entry if you don't have to sleep.
Powered by blists - more mailing lists