[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20200914145657.26fd2946@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
Date: Mon, 14 Sep 2020 14:56:57 -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 Mon, 14 Sep 2020 14:50:19 -0700 Shannon Nelson wrote:
> >> + 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.
>
> net_dim() assumes a valid work_struct in struct dim, and would likely
> get annoyed if it wasn't set up. I suppose we could teach net_dim() to
> look into the work_struct to verify that .func is non-NULL before
> calling schedule_work(), but that almost feels like cheating.
Yeah, no strong feelings, DIM optimizations are probably best left to
someone with easy access to production workloads. Feel free to add my
ack on v2 with the nit above addressed.
Powered by blists - more mailing lists