From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: Luca Veraldi <luca.veraldi@katamail.com>
Cc: arjanv@redhat.com,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Efficient IPC mechanism on Linux
Date: Wed, 10 Sep 2003 13:47:41 +0100 [thread overview]
Message-ID: <1063198060.32726.32.camel@dhcp23.swansea.linux.org.uk> (raw)
In-Reply-To: <01c601c3777f$97c92680$5aaf7450@wssupremo>
On Mer, 2003-09-10 at 10:40, Luca Veraldi wrote:
> To set the accessed or dirty bit you use
>
> 38 __asm__ __volatile__( LOCK_PREFIX
> 39 "btsl %1,%0"
> 40 :"=m" (ADDR)
> 41 :"Ir" (nr));
>
> which is a ***SINGLE CLOCK CYCLE*** of cpu.
Its a _lot_ more than that in the normal case. Upwards of 60 clocks on
a PIV. You then need to reload cr3 if you touched permissions which
means every cached TLB in the system is lost, and you may need to do
a cross CPU IPI on SMP (which takes a long time)
> You say "tlb's and internal cpu state will need to be flushed".
> The other cpus in an SMP environment can continue to work, indipendently.
> TLBs and cpu state registers are ***PER-CPU*** resorces.
Think of a threaded app passing a message to another app. You have to do
the cross CPU flush in order to prevent races where another thread can
scribble on data it doesnt own. Assuming a reasonable TLB reuse rate
thats 120 plus TLB reloads. The newer CPU's cache TLB's in L1/L2 so
thats not too bad but it all adds up. On SMP its a real pain
> Probably, it is worse the case of copying a memory page,
> because you have to hold some global lock all the time.
> This is deadly in an SMP environment,
You don't need a global lock to copy memory.
One thing I do agree with you on is the API aspect - and that is
problematic. The current API leaves data also owned by the source.
If I write "fred" down a pipe I still own the "fred" bits. The
method you propose was added long ago go to Solaris (see "doors") and
its not exactly the most used interface even there.
next prev parent reply other threads:[~2003-09-10 12:49 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-09 17:30 Luca Veraldi
2003-09-09 21:17 ` Alan Cox
2003-09-09 21:57 ` Luca Veraldi
2003-09-09 23:11 ` Alan Cox
2003-09-10 9:04 ` Luca Veraldi
2003-09-10 12:56 ` Alan Cox
[not found] ` <20030909175821.GL16080@Synopsys.COM>
[not found] ` <001d01c37703$8edc10e0$36af7450@wssupremo>
[not found] ` <20030910064508.GA25795@Synopsys.COM>
2003-09-10 9:18 ` Luca Veraldi
2003-09-10 9:23 ` Arjan van de Ven
2003-09-10 9:40 ` Luca Veraldi
2003-09-10 9:44 ` Arjan van de Ven
2003-09-10 10:09 ` Luca Veraldi
2003-09-10 10:14 ` Arjan van de Ven
2003-09-10 10:25 ` Luca Veraldi
2003-09-12 18:41 ` Timothy Miller
2003-09-12 19:05 ` Luca Veraldi
2003-09-12 22:37 ` Alan Cox
2003-09-10 12:50 ` Alan Cox
2003-09-10 19:16 ` Shawn
2003-09-10 20:05 ` Rik van Riel
2003-09-17 9:52 ` Rik's list of CS challenges Terje Eggestad
2003-09-17 13:40 ` Alan Cox
2003-09-18 8:26 ` Helge Hafting
2003-09-10 12:47 ` Alan Cox [this message]
2003-09-10 13:56 ` Efficient IPC mechanism on Linux Luca Veraldi
2003-09-10 15:59 ` Alan Cox
2003-09-10 9:52 ` Jamie Lokier
2003-09-10 10:07 ` Arjan van de Ven
2003-09-10 10:17 ` Luca Veraldi
2003-09-10 10:37 ` Jamie Lokier
2003-09-10 10:41 ` Arjan van de Ven
2003-09-10 10:54 ` Luca Veraldi
2003-09-10 10:54 ` Arjan van de Ven
2003-09-10 11:16 ` Nick Piggin
2003-09-10 11:30 ` Luca Veraldi
2003-09-10 11:44 ` Nick Piggin
2003-09-10 12:14 ` Luca Veraldi
2003-09-10 12:42 ` Alan Cox
2003-09-10 10:11 ` Luca Veraldi
2003-09-10 19:24 ` Pavel Machek
2003-09-10 19:40 ` Jamie Lokier
2003-09-10 21:35 ` Pavel Machek
2003-09-10 22:06 ` Jamie Lokier
2003-09-10 11:52 ` Alex Riesen
2003-09-10 12:14 ` Luca Veraldi
2003-09-10 12:11 ` Alex Riesen
2003-09-10 12:29 ` Luca Veraldi
2003-09-10 12:28 ` Alex Riesen
2003-09-10 12:36 ` Luca Veraldi
2003-09-10 12:36 ` Alex Riesen
2003-09-10 13:33 ` Gábor Lénárt
2003-09-10 14:04 ` Luca Veraldi
2003-09-10 14:21 ` Stewart Smith
2003-09-10 14:39 ` Luca Veraldi
2003-09-10 16:59 ` Andrea Arcangeli
2003-09-10 17:05 ` Andrea Arcangeli
2003-09-10 17:21 ` Luca Veraldi
2003-09-10 17:41 ` Andrea Arcangeli
2003-09-10 17:39 ` Martin Konold
2003-09-10 18:01 ` Andrea Arcangeli
2003-09-10 18:05 ` Martin Konold
2003-09-10 18:31 ` Chris Friesen
2003-09-10 18:08 ` Inappropriate signatures Larry McVoy
2003-09-10 18:52 ` Jamie Lokier
2003-09-10 19:54 ` rsync head? [was inappropriate signatures] Joe Perches
2003-09-13 15:39 ` Inappropriate signatures Pavel Machek
2003-09-13 16:49 ` Larry McVoy
2003-09-09 18:59 Efficient IPC mechanism on Linux Luca Veraldi
2003-09-09 22:15 Luca Veraldi
[not found] <F71B37536F3B3D4FA521FEC7FCA17933164A@twinsrv.twinox.se>
2003-09-10 10:36 ` Luca Veraldi
[not found] <E19x3el-0002Fc-Rj@phoenix.hadiko.de>
2003-09-10 12:16 ` Luca Veraldi
2003-09-10 14:53 ` Larry McVoy
[not found] <fa.h06p421.1s00ojt@ifi.uio.no>
[not found] ` <fa.gc37hsp.34id89@ifi.uio.no>
[not found] ` <E19x47V-0002JG-J8@phoenix.hadiko.de>
2003-09-10 12:45 ` Luca Veraldi
[not found] <u9j3.1VB.27@gated-at.bofh.it>
[not found] ` <u9j3.1VB.29@gated-at.bofh.it>
[not found] ` <u9j3.1VB.31@gated-at.bofh.it>
[not found] ` <u9j3.1VB.25@gated-at.bofh.it>
[not found] ` <ubNY.5Ma.19@gated-at.bofh.it>
[not found] ` <uc79.6lg.13@gated-at.bofh.it>
[not found] ` <uc7d.6lg.23@gated-at.bofh.it>
[not found] ` <uch0.6zx.17@gated-at.bofh.it>
[not found] ` <ucqs.6NC.3@gated-at.bofh.it>
[not found] ` <ucqy.6NC.19@gated-at.bofh.it>
[not found] ` <udmB.8eZ.15@gated-at.bofh.it>
[not found] ` <udPF.BD.11@gated-at.bofh.it>
[not found] ` <3F5F37CD.6060808@softhome.net>
2003-09-10 15:28 ` Luca Veraldi
2003-09-10 18:41 Manfred Spraul
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=1063198060.32726.32.camel@dhcp23.swansea.linux.org.uk \
--to=alan@lxorguk.ukuu.org.uk \
--cc=arjanv@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luca.veraldi@katamail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®