All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Vrabel <david.vrabel@citrix.com>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Paul Durrant <Paul.Durrant@citrix.com>,
	"Wei Liu (Intern)" <wei.liu2@citrix.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
	"konrad.wilk@oracle.com" <konrad.wilk@oracle.com>
Subject: Re: [Xen-devel] [RFC PATCH 3/6] netback: switch to NAPI + kthread model
Date: Mon, 16 Jan 2012 11:46:03 +0000	[thread overview]
Message-ID: <4F140DFB.60009@citrix.com> (raw)
In-Reply-To: <1326712173.17210.412.camel@zakaz.uk.xensource.com>

On 16/01/12 11:09, Ian Campbell wrote:
> I think you'd want to keep moving the event pointer to
> handle wrap around, i.e. by keeping it always either far enough away or
> right behind. (I think "req_cons - 1" is probably the correct option
> BTW).

When using RING_FINAL_CHECK_FOR_REQUESTS() as-is you will get an
additional spurious event every 4 billion events.

Something like this would fix it.

#define RING_FINAL_CHECK_FOR_REQUESTS(_r, _work_to_do) do {
    (_work_to_do) = RING_HAS_UNCONSUMED_REQUESTS(_r);
    if (_work_to_do) {
        /* ensure req_event is always in the past to avoid spurious
           interrupt on wrap-around. */
        (_r)->sring->req_event = (_r)->req_cons;
        break;
    }
    (_r)->sring->req_event = (_r)->req_cons + 1;
    mb();
    (_work_to_do) = RING_HAS_UNCONSUMED_REQUESTS(_r);
} while (0)

And similarly for RING_FINAL_CHECK_FOR_RESPONSES().

David

  reply	other threads:[~2012-01-16 11:46 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-13 16:59 [RFC PATCH] New Xen netback implementation Wei Liu
2012-01-13 16:59 ` [RFC PATCH 1/6] netback: page pool version 1 Wei Liu
2012-01-13 17:37   ` Konrad Rzeszutek Wilk
2012-01-16  9:31     ` Wei Liu
2012-01-16  9:31       ` Wei Liu
2012-01-13 16:59 ` [RFC PATCH 2/6] netback: add module unload function Wei Liu
2012-01-13 17:57   ` [Xen-devel] " David Vrabel
2012-01-16  9:31     ` Wei Liu
2012-01-16  9:31       ` Wei Liu
2012-01-13 18:47   ` David Vrabel
2012-01-13 16:59 ` [RFC PATCH 3/6] netback: switch to NAPI + kthread model Wei Liu
2012-01-13 18:21   ` [Xen-devel] " David Vrabel
2012-01-13 18:21     ` David Vrabel
2012-01-16  9:33     ` Wei Liu
2012-01-16  9:33       ` Wei Liu
2012-01-16 10:45       ` Ian Campbell
2012-01-16 10:49         ` Wei Liu
2012-01-16 10:49           ` Wei Liu
2012-01-16 10:56         ` Paul Durrant
2012-01-16 11:09           ` Ian Campbell
2012-01-16 11:46             ` David Vrabel [this message]
2012-01-16 10:14   ` Paul Durrant
2012-01-16 10:14     ` Paul Durrant
2012-01-16 10:31     ` Ian Campbell
2012-01-13 16:59 ` [RFC PATCH 4/6] netback: add module get/put operations along with vif connect/disconnect Wei Liu
2012-01-13 18:44   ` [Xen-devel] " David Vrabel
2012-01-16  9:43     ` Wei Liu
2012-01-16  9:43       ` Wei Liu
2012-01-13 16:59 ` [RFC PATCH 5/6] netback: melt xen_netbk into xenvif Wei Liu
2012-01-13 16:59 ` [RFC PATCH 6/6] netback: alter internal function/structure names Wei Liu

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=4F140DFB.60009@citrix.com \
    --to=david.vrabel@citrix.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=Paul.Durrant@citrix.com \
    --cc=konrad.wilk@oracle.com \
    --cc=netdev@vger.kernel.org \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xensource.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.