xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Jean Guyader <jean.guyader@citrix.com>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: "Tim (Xen.org)" <tim@xen.org>,
	Jean Guyader <jean.guyader@gmail.com>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: [RFC][PATCH 0/5] Add V4V to Xen
Date: Thu, 28 Jun 2012 14:43:09 +0100	[thread overview]
Message-ID: <20120628134308.GD15863@spongy> (raw)
In-Reply-To: <1340887016.10942.42.camel@zakaz.uk.xensource.com>

On 28/06 01:36, Ian Campbell wrote:
> On Thu, 2012-06-28 at 13:10 +0100, Jean Guyader wrote:
> > On 28/06 12:58, Ian Campbell wrote:
> > > On Thu, 2012-06-28 at 12:43 +0100, Jean Guyader wrote:
> > > > On 28/06 12:34, Ian Campbell wrote:
> > > > > On Thu, 2012-06-28 at 11:38 +0100, Jean Guyader wrote:
> > > > > > On 26/06 03:38, Ian Campbell wrote:
> > > > > > > Hi,
> > > > > > > 
> > > > > > > Sorry it's taken me so long to get round to responding to this.
> > > > > > > 
> > > > > > > On Mon, 2012-06-25 at 10:05 +0100, Tim Deegan wrote:
> > > > > > > > At 22:14 +0100 on 14 Jun (1339712061), Jean Guyader wrote:
> > > > > > > > > On 14 June 2012 16:35, Tim Deegan <tim@xen.org> wrote:
> > > > > > > > > > At 16:10 +0100 on 14 Jun (1339690244), Jean Guyader wrote:
> > > > > > > > > >> On 14/06 03:56, Tim Deegan wrote:
> > > > > > > > > >> > At 11:55 +0100 on 14 Jun (1339674908), Jean Guyader wrote:
> > > > > > > > > >> > > Are you talking about having different version of V4V driver running
> > > > > > > > > >> > > in the same VM?
> > > > > > > > > >> >
> > > > > > > > > >> > Yes.
> > > > > > > > > >> >
> > > > > > > > > >> > > I don't think that is a problem they both interact with Xen via
> > > > > > > > > >> > > hypercall directly so if they follow the v4v hypercall interface it's
> > > > > > > > > >> > > all fine.
> > > > > > > > > >> >
> > > > > > > > > >> > AFAICS if they both try to register the same port then one of them will
> > > > > > > > > >> > silently get its ring discarded.  And if they both try to communicate
> > > > > > > > > >> > with the same remote port their entries on the pending lists will get
> > > > > > > > > >> > merged (which is probably not too bad).  I think the possibility for
> > > > > > > > > >> > confusion depends on how you use the service.  Still, it seems better
> > > > > > > > > >> > than the xenstore case, anyway. :)
> > > > > > > > > >> >
> > > > > > > > > >>
> > > > > > > > > >> Not silently, register_ring will return an error.
> > > > > > > > > >
> > > > > > > > > > Will it?  It looks to me like v4v_ring_add just clobbers the old MFN
> > > > > > > > > > list.
> > > > > > > > > >
> > > > > > > > > 
> > > > > > > > > Ha yes. It does that now but I think it should return an error
> > > > > > > > > informing up the stack that a ring has already been registered.
> > > > > > > > 
> > > > > > > > Actually, I think it's deliberate, to allow a guest to re-register all
> > > > > > > > its rings after a suspend/resume or migration, without having to worry
> > > > > > > > about whether it was actually migrated into a new domain or not. 
> > > > > > > 
> > > > > > > Which takes us back to the original issue Tim asked about with
> > > > > > > cohabitation of multiple (perhaps just plain buggy or even malicious)
> > > > > > > v4v clients in a single domain, doesn't it?
> > > > > > > 
> > > > > > 
> > > > > > There is nothing wrong the two v4v driver running in the same guest.
> > > > > > The probably that Tim reported was about trying to create two connections
> > > > > > on the same port. Today with the code that I've submited in the RFC
> > > > > > one will overwrite the other silently which isn't a good thing, that can
> > > > > > easily be changed to notify which one got registered up the stack.
> > > > > 
> > > > > So they'd somehow need to randomise (and retry) their use of source
> > > > > ports in order to co-exist?
> > > > >
> > > > 
> > > > That can be assimilated to two userspace programs trying to bind to the
> > > > same TCP port. I think it's not v4v's responsability to solve this problem.
> > > 
> > > An application using TCP doesn't need to worry about choosing its own
> > > source port though.
> > > 
> > > Or does this only effect destination / listening ports?
> > > 
> > 
> > The guest v4v driver knows which port are in used so if you put port 0
> > we will pick a random unused number for the source port.
> 
> Except when there are two such drivers each doesn't know which the other
> one is using.
> 

Then the kernel will try to register the ring and the hypercall will fail
because it's already registered.

Jean

  reply	other threads:[~2012-06-28 13:43 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-31 15:07 [RFC][PATCH 0/5] Add V4V to Xen Jean Guyader
2012-05-31 15:07 ` [PATCH 1/5] xen: add ssize_t to types.h Jean Guyader
2012-05-31 15:29   ` Jan Beulich
2012-05-31 15:07 ` [PATCH 2/5] xen: Add headers to include/Makefile Jean Guyader
2012-05-31 15:37   ` Jan Beulich
2012-05-31 15:07 ` [PATCH 3/5] v4v: Introduce VIRQ_V4V Jean Guyader
2012-05-31 15:44   ` Jan Beulich
2012-05-31 15:07 ` [PATCH 4/5] xen: Enforce casting for guest_handle_cast Jean Guyader
2012-05-31 15:47   ` Jan Beulich
2012-06-14 14:08     ` Jean Guyader
2012-06-14 14:23       ` Jan Beulich
2012-06-14 14:26       ` Tim Deegan
2012-06-14 14:27         ` Tim Deegan
2012-06-14 14:40           ` Jean Guyader
2012-06-14 15:39             ` Jean Guyader
2012-06-14 15:50               ` Tim Deegan
2012-06-14 16:00               ` Jan Beulich
2012-06-14 21:19                 ` Jean Guyader
2012-06-18 11:36               ` Jan Beulich
2012-06-18 12:50                 ` Jean Guyader
2012-05-31 15:07 ` [PATCH 5/5] xen: Add V4V implementation Jean Guyader
2012-05-31 15:59   ` Jan Beulich
2012-06-01 12:41 ` [RFC][PATCH 0/5] Add V4V to Xen Jan Beulich
2012-06-01 13:24   ` George Dunlap
2012-06-14 14:01     ` Jean Guyader
2012-06-01 13:47 ` Ian Campbell
2012-06-07  8:47   ` Jean Guyader
2012-06-07  9:42   ` Jean Guyader
2012-06-07 11:40     ` Tim Deegan
2012-06-07 15:36       ` Tim Deegan
2012-06-13 10:48         ` Jean Guyader
2012-06-13 11:44           ` Tim Deegan
2012-06-14 10:55             ` Jean Guyader
2012-06-14 14:56               ` Tim Deegan
2012-06-14 15:10                 ` Jean Guyader
2012-06-14 15:35                   ` Tim Deegan
2012-06-14 21:14                     ` Jean Guyader
2012-06-25  9:05                       ` Tim Deegan
2012-06-26 14:38                         ` Ian Campbell
2012-06-28 10:38                           ` Jean Guyader
2012-06-28 10:50                             ` Tim Deegan
2012-06-28 11:24                               ` Jean Guyader
2012-06-28 11:34                             ` Ian Campbell
2012-06-28 11:43                               ` Jean Guyader
2012-06-28 11:58                                 ` Ian Campbell
2012-06-28 12:10                                   ` Jean Guyader
2012-06-28 12:36                                     ` Ian Campbell
2012-06-28 13:43                                       ` Jean Guyader [this message]
2012-06-28 13:47                                         ` Ian Campbell
2012-06-28 16:35                                           ` Jean Guyader
2012-07-02 14:14                                             ` Ian Campbell
2012-06-28 10:19                         ` Jean Guyader
  -- strict thread matches above, loose matches on Subject: below --
2012-05-31 14:52 Jean Guyader

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=20120628134308.GD15863@spongy \
    --to=jean.guyader@citrix.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=jean.guyader@gmail.com \
    --cc=tim@xen.org \
    --cc=xen-devel@lists.xen.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).