Netdev List
 help / color / mirror / Atom feed
From: David Miller <davem@davemloft.net>
To: gvaradar@cisco.com
Cc: netdev@vger.kernel.org, govindarajulu90@gmail.com, benve@cisco.com
Subject: Re: [PATCH net] enic: add wq clean up budget
Date: Wed, 06 Dec 2017 14:09:33 -0500 (EST)	[thread overview]
Message-ID: <20171206.140933.1944224659407579701.davem@davemloft.net> (raw)
In-Reply-To: <20171205191441.7288-1-gvaradar@cisco.com>

From: Govindarajulu Varadarajan <gvaradar@cisco.com>
Date: Tue,  5 Dec 2017 11:14:41 -0800

> In case of tx clean up, we set '-1' as budget. This means clean up until
> wq is empty or till (1 << 32) pkts are cleaned. Under heavy load this
> will run for long time and cause
> "watchdog: BUG: soft lockup - CPU#25 stuck for 21s!" warning.
> 
> This patch sets wq clean up budget to 256.
> 
> Signed-off-by: Govindarajulu Varadarajan <gvaradar@cisco.com>

This driver with all of it's indirection and layers upon layers of
macros for queue processing is so difficult to read, and this can't
be generating nice optimal code either...

Anyways, I was walking over the driver to see if the logic is
contributing to this.

The limit you are proposing sounds unnecessary, nobody else I can
see needs this, and that includes all of the most heavily used
drivers under load.

If I had to guess I'd say that the problem is that the queue loop
keeps sampling the head and tail pointers, where as it should just
do that _once_ and only process that TX entries found in that
snapshot and return to the poll() routine immedately afterwards.

Thanks.

  reply	other threads:[~2017-12-06 19:09 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-05 19:14 [PATCH net] enic: add wq clean up budget Govindarajulu Varadarajan
2017-12-06 19:09 ` David Miller [this message]
2017-12-09  0:14   ` Govindarajulu Varadarajan
2017-12-20  0:37     ` Govindarajulu Varadarajan
2017-12-20 18:50       ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171206.140933.1944224659407579701.davem@davemloft.net \
    --to=davem@davemloft.net \
    --cc=benve@cisco.com \
    --cc=govindarajulu90@gmail.com \
    --cc=gvaradar@cisco.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox