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
next prev parent 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 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.