All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Cc: dev@dpdk.org
Subject: Re: [PATCH 2/2] virtio: clean up space checks on xmit
Date: Sat, 5 Dec 2015 11:50:07 -0800	[thread overview]
Message-ID: <20151205115007.2230a16a@xeon-e3> (raw)
In-Reply-To: <20151204032858.GB29571@yliu-dev.sh.intel.com>

	int error;
> >  
> > @@ -846,58 +845,49 @@ virtio_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
> >  	if (likely(nb_used > txvq->vq_nentries - txvq->vq_free_thresh))
> >  		virtio_xmit_cleanup(txvq, nb_used);
> >  
> > -	nb_tx = 0;
> > -
> > -	while (nb_tx < nb_pkts) {
> > +	for (nb_tx = 0; nb_tx < nb_pkts; nb_tx++) {
> > +		struct rte_mbuf *txm = tx_pkts[nb_tx];
> >  		/* Need one more descriptor for virtio header. */
> > -		int need = tx_pkts[nb_tx]->nb_segs - txvq->vq_free_cnt + 1;
> > +		int need = txm->nb_segs - txvq->vq_free_cnt + 1;
> 
> While reviewing the code, I found the var name `need' is not properly
> taken. Maybe `need_cleanup' is better, and it's better to be defined
> as bool type. What do you think of that?

The variable need indicates how many more buffers are needed to
complete the transmit.  In later patches, there is a variable slots
so:
  needed = slots - free

So if needed is positive, then more buffers are needed than available
and transmit is blocked. If needed is negative then there is free
space available.

> 
> (And yes, it has nothing to do with your patch, I just found it we
> can rename it to a better name to improve the code readability a bit.
> If you agree, would you submit a patch, or should I do it?)
> 
> >  
> > -		/*Positive value indicates it need free vring descriptors */
> > +		/* Positive value indicates it need free vring descriptors */
> >  		if (unlikely(need > 0)) {
> >  			nb_used = VIRTQUEUE_NUSED(txvq);
> >  			virtio_rmb();
> >  			need = RTE_MIN(need, (int)nb_used);
> >  
> >  			virtio_xmit_cleanup(txvq, need);
> > -			need = (int)tx_pkts[nb_tx]->nb_segs -
> > -				txvq->vq_free_cnt + 1;
> > +			need = txm->nb_segs - txvq->vq_free_cnt + 1;
> > +			if (unlikely(need > 0)) {
> > +				PMD_TX_LOG(ERR,
> > +					   "No free tx descriptors to transmit");
> > +				break;
> > + 			}
>    ^
> 
> Minor nit: I found a leading white space there.

Hmm. I didn't see it in checkpatch.

  reply	other threads:[~2015-12-07 18:10 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-04  1:12 [PATCH 0/2] virtio: bugfix and cleanup Stephen Hemminger
2015-12-04  1:12 ` [PATCH 1/2] virtio: make sure rcv mbuf initialized correctly Stephen Hemminger
2015-12-04  3:18   ` Yuanhan Liu
2015-12-04  1:12 ` [PATCH 2/2] virtio: clean up space checks on xmit Stephen Hemminger
2015-12-04  3:28   ` Yuanhan Liu
2015-12-05 19:50     ` Stephen Hemminger [this message]
2015-12-08  1:54       ` Yuanhan Liu
2015-12-06 23:02 ` [PATCH 0/2] virtio: bugfix and cleanup Thomas Monjalon

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=20151205115007.2230a16a@xeon-e3 \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.org \
    --cc=yuanhan.liu@linux.intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.