All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rusty Russell <rusty@rustcorp.com.au>
To: Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
Cc: xen-devel@lists.xensource.com, Christian.Limpach@cl.cam.ac.uk
Subject: Re: /proc/xen/xenbus supports watch?
Date: Mon, 19 Sep 2005 10:11:01 +1000	[thread overview]
Message-ID: <1127088661.23870.47.camel@localhost.localdomain> (raw)
In-Reply-To: <bf4f0a8e8b96fd1ac2701daa78ca52c6@cl.cam.ac.uk>

On Sat, 2005-09-17 at 09:33 +0100, Keir Fraser wrote:
> On 17 Sep 2005, at 09:26, Rusty Russell wrote:
> 
> >> How does two connections being 'logically separate' imply that it is
> >> improper for them not to also be 'physically separate'? Multiplexing
> >> multiple simultaneous connections/transactions onto a single 
> >> underlying
> >> page-level transport would seem fine to me!
> >
> > Um, multiplexing, like any feature, adds complexity: if we don't need
> > it, don't do it.  <shrug>
> 
> That doesn't make it a 'hack'.

That's quoting a little out of context.  The current partial exposure of
the kernel's channel is a hack, since the current model is a 1:1 mapping
between the transport and the connection.  The term hack is not a bad
thing in itself, but it does accurately reflect that it's limited, as in
this case where we're asked to add watch support.

> > We have a way of establishing new ringbuffers to talk to the store, we
> > just currently assume one per domain.  Loosening that seems simpler and
> > more robust than introducing a multiplexing layer, unless you two can
> > see something I can't?
> 
> Multiplexing will require user-space reads/writes to be passed to the 
> kernel rather than stuffing its own comms page directly. This has the 
> advantage of being what we already do, and any performance 
> disadvantages really don't matter.

No, I'm proposing we keep the device in the domU kernel exactly as now,
but rather than sharing the same page, use separate pages.  This means
we don't have to share the same lock or worry about userspace messing
up, etc.

> On the xenstored side it ought simply to be a matter of picking a 
> transaction or connection id out of the message to index into some kind 
> of state table.

Sure, I can write multiplexing and demultiplexing code for the store
daemon, separate the data structures, duplicate that code in libxenstore
and xenbus.  But AFAICT it's code which simply doesn't need to exist.

> If we have multiple pages the client driver is complicated by reserving 
> user pages and creating grant references for them, and cleanly tearing 
> down and dealloc'ing grant references at the appropriate point(s). I 
> agree the daemon doesn't really get any more complicated, but I think 
> save/restore will need extra code, either in the domain0 tools or in 
> the guest os, to reconnect pages through to xenstored.

No, this is the beauty of it: save/restore should be exactly to
libxenstored as the restarting of store daemon; Christian and I have
been vigorously debating semantics to get them the same (and I think
we're close).  Then on save, the device simply closes; on restore, the
library reconnects.

So, in summary: separating the concept of transport from connection is
possible, but I don't think it actually buys us anything except another
layer of indirection.

Rusty.
-- 
A bad analogy is like a leaky screwdriver -- Richard Braakman

  reply	other threads:[~2005-09-19  0:11 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-08  8:02 /proc/xen/xenbus supports watch? NAHieu
2005-09-08 10:38 ` Christian Limpach
2005-09-09  0:43   ` Rusty Russell
2005-09-13  9:42     ` Christian Limpach
2005-09-14  0:21       ` Rusty Russell
2005-09-14  8:24         ` Christian Limpach
2005-09-14  9:18         ` Rusty Russell
2005-09-14 12:55           ` Christian Limpach
2005-09-15  1:39             ` Rusty Russell
2005-09-15 10:53               ` Keir Fraser
2005-09-17  8:26                 ` Rusty Russell
2005-09-17  8:33                   ` Keir Fraser
2005-09-19  0:11                     ` Rusty Russell [this message]
2005-09-19  8:54                       ` Keir Fraser
2005-09-20 11:01                         ` Rusty Russell
2005-09-21  9:35                           ` Keir Fraser
2005-09-22  2:07                             ` Rusty Russell
2005-09-22  9:36                               ` Keir Fraser
2005-09-22 22:54                                 ` Rusty Russell
2005-09-23  9:17                                   ` Keir Fraser
2005-09-25  3:29                                     ` Rusty Russell
2005-09-25 11:02                                       ` Keir Fraser
2005-09-25 11:33                                         ` Keir Fraser
2005-09-25 18:55                                           ` Christian Limpach
2005-09-26  6:36                                             ` Rusty Russell
2005-09-26  7:33                                               ` Keir Fraser
2005-09-26 18:51                                               ` Christian Limpach
2005-09-26 19:30                                                 ` Keir Fraser
2005-09-27  6:48                                                   ` Rusty Russell
2005-09-27  7:15                                                 ` Rusty Russell
2005-09-27 23:31                                                   ` David Hopwood
2005-09-25 23:06                                           ` Rusty Russell
2005-09-21  9:39                           ` Keir Fraser
2005-09-21 11:42                             ` harry
2005-09-22  2:22                             ` Rusty Russell
2005-09-22  9:35                               ` Keir Fraser
2005-09-22 23:51                                 ` Rusty Russell
2005-09-23  1:01                                   ` Andrew Warfield
2005-09-25  0:57                                     ` Rusty Russell
2005-09-25 11:09                                       ` Keir Fraser
2005-09-25 22:52                                         ` Rusty Russell
2005-09-23  9:24                                   ` Keir Fraser
2005-09-25  1:09                                     ` Rusty Russell
2005-09-17 17:40                   ` Christian Limpach
2005-09-19  0:19                     ` Rusty Russell
2005-09-15 11:02               ` Christian Limpach

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=1127088661.23870.47.camel@localhost.localdomain \
    --to=rusty@rustcorp.com.au \
    --cc=Christian.Limpach@cl.cam.ac.uk \
    --cc=Keir.Fraser@cl.cam.ac.uk \
    --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.