From: "Edgar E. Iglesias" <edgar.iglesias@axis.com>
To: jamal <hadi@cyberus.ca>
Cc: Jesse Brandeburg <jesse.brandeburg@gmail.com>,
Herbert Xu <herbert@gondor.apana.org.au>,
David Miller <davem@davemloft.net>,
shemminger@osdl.org, mchan@broadcom.com,
jesse.brandeburg@intel.com, auke-jan.h.kok@intel.com,
netdev@vger.kernel.org
Subject: Re: [PATCH] [e1000]: Remove unnecessary tx_lock
Date: Mon, 7 Aug 2006 22:28:26 +0200 [thread overview]
Message-ID: <20060807202826.GC10909@edgar.underground.se.axis.com> (raw)
In-Reply-To: <1154979270.5446.97.camel@jzny2>
On Mon, Aug 07, 2006 at 03:34:30PM -0400, jamal wrote:
> On Mon, 2006-07-08 at 21:14 +0200, Edgar E. Iglesias wrote:
>
> > > If yes, what is the likelihood they will sit there forever? I think
> > > perhaps some TX interupts will happen, no?
> >
> > with jamal undefined, absolutely. With jamal defined, TX interrupts will come
> > but I couldnt find a way into e1000_prune_tx_ring unless fdesc met the
> > conditions. Correct?
> >
>
> Forgive me since i am still missing something ..
>
> Observe that the same threshold used in two different ways:
>
> 1) in tx path tx_ring->prunet is to check on when we should _start_ to
> prune.
> 2) on rx path tx_ring->prunet is to check when to _stop_ pruning.
>
I can see two calls to e1000_prune_tx_ring with jamal _defined_.
1. tx path
+#ifdef jamal
+ {
+ int fdesc = E1000_DESC_UNUSED(tx_ring);
+ if (unlikely(fdesc < tx_ring->waket))
+ e1000_prune_tx_ring(adapter,tx_ring);
+ }
+#endif
2. tx and rx path
+#ifdef jamal
+ spin_lock(&tx_ring->tx_lock);
+ {
+ int fdesc = E1000_DESC_UNUSED(tx_ring);
+ if (fdesc < tx_ring->prunet) {
+ if (e1000_prune_tx_ring(adapter,tx_ring))
+ cleaned = TRUE;
}
}
+ spin_unlock(&tx_ring->tx_lock);
+#else
+ if (e1000_prune_tx_ring(adapter,tx_ring))
+ cleaned = TRUE;
+#endif
Assume a ring of 64 entries, prunet of 16, waket of 8. Now host sends 40 skbs
and stops. tx-ring holds 40 skbs, has 24 free. TX interrupts hit you, you may
even be receiveing packets but I don't see how you enter prune_tx_ring without
more packets going out via hard_start_xmit? skb's will sit on the ring until
more packets are sent from the quiet host.
As you can see, with jamal _undefined_ e1000_prune_tx_ring is called
unconditionally and I beleive things will work ok.
I am not familiar with this code nor the hw so I'm probably missing something
fundamental.
Best regards
--
Programmer
Edgar E. Iglesias <edgar.iglesias@axis.com> 46.46.272.1946
next prev parent reply other threads:[~2006-08-07 20:28 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-03 13:15 [PATCH] [e1000]: Remove unnecessary tx_lock jamal
2006-08-03 14:02 ` Herbert Xu
2006-08-03 14:24 ` jamal
2006-08-03 16:36 ` Brandeburg, Jesse
2006-08-03 18:05 ` Michael Chan
2006-08-03 22:08 ` jamal
2006-08-04 0:09 ` Michael Chan
2006-08-04 1:10 ` Herbert Xu
2006-08-04 8:37 ` Herbert Xu
2006-08-04 10:10 ` Herbert Xu
2006-08-04 10:16 ` jamal
2006-08-04 10:25 ` Herbert Xu
2006-08-04 10:45 ` jamal
2006-08-05 23:04 ` jamal
2006-08-05 23:06 ` Herbert Xu
2006-08-05 23:21 ` jamal
2006-08-05 23:30 ` Herbert Xu
2006-08-05 16:45 ` jamal
2006-08-04 17:12 ` Stephen Hemminger
2006-08-04 17:28 ` Michael Chan
2006-08-04 18:08 ` Stephen Hemminger
2006-08-04 23:31 ` David Miller
2006-08-05 16:56 ` jamal
2006-08-05 23:05 ` Herbert Xu
2006-08-05 23:17 ` jamal
2006-08-05 23:19 ` Herbert Xu
2006-08-05 23:36 ` jamal
2006-08-06 2:51 ` Herbert Xu
2006-08-06 7:14 ` Edgar E. Iglesias
2006-08-06 7:24 ` Herbert Xu
2006-08-06 7:30 ` Edgar E. Iglesias
2006-08-06 7:26 ` David Miller
2006-08-06 7:36 ` Herbert Xu
2006-08-06 8:06 ` Edgar E. Iglesias
2006-08-06 8:27 ` Herbert Xu
2006-08-06 9:03 ` Edgar E. Iglesias
2006-08-06 9:10 ` Herbert Xu
2006-08-06 9:18 ` Edgar E. Iglesias
2006-08-06 8:35 ` David Miller
2006-08-06 12:24 ` jamal
2006-08-06 12:33 ` jamal
2006-08-06 23:16 ` Jesse Brandeburg
2006-08-07 12:50 ` jamal
2006-08-07 15:21 ` Edgar E. Iglesias
2006-08-07 15:40 ` jamal
2006-08-07 15:59 ` Edgar E. Iglesias
2006-08-07 16:31 ` Jamal Hadi Salim
2006-08-07 17:04 ` Edgar E. Iglesias
2006-08-07 18:00 ` jamal
2006-08-07 18:47 ` Edgar E. Iglesias
2006-08-07 19:03 ` jamal
2006-08-07 19:14 ` Edgar E. Iglesias
2006-08-07 19:34 ` jamal
2006-08-07 20:28 ` Edgar E. Iglesias [this message]
2006-08-08 0:52 ` jamal
2006-08-07 20:53 ` Brandeburg, Jesse
2006-08-08 1:07 ` jamal
2006-08-07 23:23 ` Herbert Xu
2006-08-07 23:35 ` Brandeburg, Jesse
2006-08-07 23:40 ` Herbert Xu
2006-08-07 16:29 ` Edgar E. Iglesias
2006-08-07 16:36 ` jamal
2006-08-06 19:22 ` jamal
2006-08-08 1:19 ` jamal
2006-08-08 1:22 ` Herbert Xu
2006-08-08 1:33 ` jamal
2006-08-08 2:17 ` Herbert Xu
2006-08-08 3:10 ` jamal
2006-08-08 12:21 ` jamal
2006-08-08 12:39 ` Herbert Xu
2006-08-06 17:20 ` Michael Chan
2006-08-06 23:04 ` Herbert Xu
2006-08-07 3:56 ` Michael Chan
2006-08-07 4:21 ` Herbert Xu
2006-08-08 17:04 ` Benjamin LaHaise
2006-08-08 22:06 ` David Miller
2006-08-08 23:21 ` Benjamin LaHaise
2006-08-09 0:25 ` Herbert Xu
2006-08-09 1:25 ` Benjamin LaHaise
2006-08-04 1:16 ` jamal
2006-08-04 1:18 ` Herbert Xu
2006-08-04 1:25 ` jamal
2006-08-04 4:06 ` Michael Chan
2006-08-03 22:06 ` jamal
-- strict thread matches above, loose matches on Subject: below --
2006-08-08 5:43 Brandeburg, Jesse
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=20060807202826.GC10909@edgar.underground.se.axis.com \
--to=edgar.iglesias@axis.com \
--cc=auke-jan.h.kok@intel.com \
--cc=davem@davemloft.net \
--cc=hadi@cyberus.ca \
--cc=herbert@gondor.apana.org.au \
--cc=jesse.brandeburg@gmail.com \
--cc=jesse.brandeburg@intel.com \
--cc=mchan@broadcom.com \
--cc=netdev@vger.kernel.org \
--cc=shemminger@osdl.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;
as well as URLs for NNTP newsgroup(s).