From: Andrea Arcangeli <andrea@suse.de>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: george anzinger <george@mvista.com>,
Stephen Hemminger <shemminger@osdl.org>,
john stultz <johnstul@us.ibm.com>,
Michael Hohnbaum <hbaum@us.ibm.com>,
"Martin J. Bligh" <mbligh@aracnet.com>,
lkml <linux-kernel@vger.kernel.org>
Subject: Re: [RFC][PATCH] linux-2.5.34_vsyscall_A0
Date: Fri, 18 Oct 2002 19:21:21 +0200 [thread overview]
Message-ID: <20021018172121.GO23930@dualathlon.random> (raw)
In-Reply-To: <Pine.LNX.4.44.0210181018070.21302-100000@home.transmeta.com>
On Fri, Oct 18, 2002 at 10:19:58AM -0700, Linus Torvalds wrote:
>
> On Fri, 18 Oct 2002, Andrea Arcangeli wrote:
>
> > On Fri, Oct 18, 2002 at 09:45:41AM -0700, george anzinger wrote:
> > > Stephen Hemminger wrote:
> > > > current cpu (and maybe current pid) somehow. And it would be possible
> > > > to avoid preemption while in a vsyscall text page, some other Unix
> > > > variants do this to implement portions of the thread library in kernel
> > > > provided user text pages.
> > > >
> > > Now there is an idea! Lock preemption in user space if and
> >
> > sounds not good to me, you would miss a wakeup and you would delay the
> > schedule of 1/HZ in the worst (close to the common) case.
>
> That's not the real problem.
>
> The real problem is that somebody can jump into the middle of a function
> (or even into the middle of an instruction), causing the function to do
> something totally different from the intended effect.
>
> In particular, it can cause the function to loop forever.
>
> If you disable preemption of user space, you now killed the machine.
>
> In short - others may do it, but it's a total _DISASTER_ from a security
> and stability standpoint. Don't go there.
agreed. Hear my idea:
actually my idea on 64bit was to use the high 8 bit of each 64bit word to
give you the cpuid, to get out the coherent data, including the sequence
number that are read and written inversely with mb() like now (the
sequence number as well will become per-cpu), so it is definitely doable
without any single problem and in a very performant way, just not as
easy as without the per-cpu info. Even if segmentation per-cpu tricks
would be possible or available (remeber long mode is pure paging, no
segmentation) it would be not worthwhile IMHO, the cpuid encoded
atomically in each 64bit data provided by the vsyscall seems a much
simpler and possibly more performant solution. You set a different
per-cpu data-mapping with different pte settings in each cpu. The
vsyscall bytecode remains the same, aware about this cpuid encoded in
each 64bit word. Doing it in 32bit is ugly (or at least much slower)
since most data is natively at least 32bit, it would need some slow
demultiplexing.
Andrea
next prev parent reply other threads:[~2002-10-18 17:28 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-10-18 4:25 [RFC][PATCH] linux-2.5.34_vsyscall_A0 john stultz
2002-10-18 4:26 ` [RFC] linux-2.5.34_vsyscall_A0 - Test App john stultz
2002-10-18 11:14 ` [RFC][PATCH] linux-2.5.34_vsyscall_A0 Andrea Arcangeli
2002-10-18 16:13 ` Stephen Hemminger
2002-10-18 16:45 ` george anzinger
2002-10-18 17:11 ` Andrea Arcangeli
2002-10-18 17:19 ` Linus Torvalds
2002-10-18 17:21 ` Andrea Arcangeli [this message]
2002-10-18 18:37 ` Stephen Hemminger
2002-10-18 18:51 ` Andrea Arcangeli
2002-10-18 19:30 ` george anzinger
2002-10-18 17:01 ` Andrea Arcangeli
2002-10-21 13:18 ` Alan Cox
2002-10-21 17:15 ` john stultz
2002-10-18 16:39 ` john stultz
2002-10-18 18:54 ` [RFC] vsyscall_A0 LD_PRELOAD implementation john stultz
2002-10-21 22:44 ` [RFC][PATCH] linux-2.5.34_vsyscall_A0 Stephen Hemminger
-- strict thread matches above, loose matches on Subject: below --
2002-10-18 18:21 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=20021018172121.GO23930@dualathlon.random \
--to=andrea@suse.de \
--cc=george@mvista.com \
--cc=hbaum@us.ibm.com \
--cc=johnstul@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mbligh@aracnet.com \
--cc=shemminger@osdl.org \
--cc=torvalds@transmeta.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.