ionic: check for queue deadline in doorbell_napi_work

Check the deadline against the last time run and only
schedule a new napi if we haven't been run recently.

Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
Link: https://lore.kernel.org/r/20240619003257.6138-7-shannon.nelson@amd.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Shannon Nelson 2024-06-18 17:32:55 -07:00 committed by Jakub Kicinski
parent d7f9bc6859
commit 55a3982ec7

View File

@ -58,7 +58,14 @@ void ionic_doorbell_napi_work(struct work_struct *work)
{
struct ionic_qcq *qcq = container_of(work, struct ionic_qcq,
doorbell_napi_work);
ionic_napi_schedule_do_softirq(&qcq->napi);
unsigned long now, then, dif;
now = READ_ONCE(jiffies);
then = qcq->q.dbell_jiffies;
dif = now - then;
if (dif > qcq->q.dbell_deadline)
ionic_napi_schedule_do_softirq(&qcq->napi);
}
static int ionic_get_preferred_cpu(struct ionic *ionic,