public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Ivan Godard" <igodard@pacbell.net>
To: "Davide Libenzi" <davidel@xmailserver.org>
Cc: "Paul Mackerras" <paulus@samba.org>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>
Subject: Re: Kernel support for peer-to-peer protection models...
Date: Mon, 29 Mar 2004 12:53:19 -0800	[thread overview]
Message-ID: <000501c415d1$8d300860$fc82c23f@pc21> (raw)
In-Reply-To: Pine.LNX.4.44.0403291019290.2275-100000@bigblue.dev.mdolabs.com


----- Original Message ----- 
From: "Davide Libenzi" <davidel@xmailserver.org>
To: "Ivan Godard" <igodard@pacbell.net>
Cc: "Paul Mackerras" <paulus@samba.org>; "Linux Kernel Mailing List"
<linux-kernel@vger.kernel.org>
Sent: Monday, March 29, 2004 10:45 AM
Subject: Re: Kernel support for peer-to-peer protection models...


> On Sun, 28 Mar 2004, Ivan Godard wrote:
>
> > Ah! you wanted to know about exec, not fork. A true fork() is pretty
rare
> > these days anyway. Still, the answer is pretty much the same: the fork()
> > gets you a new data space, retaining the old code space, and the exec()
> > finds (or creates) the code space that cmd's code is in and switches the
> > active code space to that space. Heritable data, such as file
descriptors,
> > won't have been in the old data space anyway, so the child references
them
> > through syscalls just as in a conventional.
> >
> > Perhaps I'm missing your question here, but in general we see no problem
> > with fork/exec in our model - it's one of the least changed things. You
> > always get a new address space on a conventional, and you also do with a
> > Mill; the only difference is that you don't have to shoot down the cache
or
> > TLB, so a fork/exec should be quite a bit faster.
>
> No, sorry. Lossy email compression (sometimes being concise is a virtue
> but I usually fall way too far). Reading thru previous messages seems
> confusing to me. On one side you say that fork() uses a std COW, on the
> other side you say that the unified virtual address space combined with
> virtually tagged cache let you avoid cache flushes. As soon as you COW,
> you have one virtual address that refer to two different physical
addresses.
> Does the virtual address have extra tag bits to identify the task?

No, but it has a mechanism (unfortunately I can't explain yet  how it works)
which amount to the same thing. In fact, the hardware can distinguish
between the case where a particular address in the child is supposed to
refer to the child, and the case where it's supposed to refer back into the
parent. This is a novel feature that is not supportd by the conventional
model. We expect to expose it through an API. For example a server can spawn
worker processes such that each worker has its own space (and is protected
from other workers) but can communicate with the server via data structures
in the server, where the new worker COW comes up with the back-references
already created. This gives the convenience of thread-workers with the
protection of process-workers using a mmap communication region, but without
the overhead of creating the region.

Ivan



  reply	other threads:[~2004-03-29 21:30 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-03-27  4:23 Kernel support for peer-to-peer protection models Ivan Godard
2004-03-29  0:17 ` Paul Mackerras
2004-03-29  3:18   ` Ivan Godard
2004-03-29  3:48     ` Davide Libenzi
2004-03-29  7:52       ` Ivan Godard
2004-03-29 18:45         ` Davide Libenzi
2004-03-29 20:53           ` Ivan Godard [this message]
     [not found] <048e01c413b3$3c3cae60$fc82c23f@pc21.suse.lists.linux.kernel>
2004-03-27  6:29 ` Andi Kleen
2004-03-28 20:21   ` Ivan Godard
2004-03-28 23:14     ` Andi Kleen
2004-03-29  8:09       ` Ivan Godard
2004-03-29 15:36       ` Pavel Machek
2004-03-30 14:06         ` Andi Kleen
2004-03-30 15:09         ` Ivan Godard
     [not found] <048e01c413b3_3c3cae60_fc82c23f@pc21>
2004-03-27 10:34 ` Pavel Machek
2004-03-28  1:32   ` Ivan Godard
2004-03-28  6:24     ` Pavel Machek
2004-03-28  6:32       ` Ivan Godard
2004-03-28 18:54         ` Pavel Machek
2004-03-28 19:56           ` Ivan Godard
2004-03-28 20:35             ` Pavel Machek

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='000501c415d1$8d300860$fc82c23f@pc21' \
    --to=igodard@pacbell.net \
    --cc=davidel@xmailserver.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paulus@samba.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