From: Mike Frysinger <vapier@gentoo.org>
To: James Bottomley <James.Bottomley@hansenpartnership.com>
Cc: John David Anglin <dave.anglin@bell.net>,
Kyle McMartin <kyle@mcmartin.ca>,
"Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com>,
"linux-man" <linux-man@vger.kernel.org>,
Kyle McMartin <kyle@infradead.org>, Helge Deller <deller@gmx.de>,
"James E.J. Bottomley" <jejb@parisc-linux.org>,
linux-parisc@vger.kernel.org
Subject: Re: [PATCH] man2 : syscall.2 : document syscall calling conventions
Date: Fri, 12 Apr 2013 14:45:05 -0400 [thread overview]
Message-ID: <201304121445.08948.vapier@gentoo.org> (raw)
In-Reply-To: <1365741912.6982.8.camel@dabdike>
[-- Attachment #1: Type: Text/Plain, Size: 3533 bytes --]
On Friday 12 April 2013 00:45:12 James Bottomley wrote:
> On Thu, 2013-04-11 at 23:38 -0400, Mike Frysinger wrote:
> > On Thursday 11 April 2013 22:34:43 John David Anglin wrote:
> > > On 11-Apr-13, at 9:55 PM, Mike Frysinger wrote:
> > > > On Sunday 07 April 2013 14:48:42 John David Anglin wrote:
> > > >> On 7-Apr-13, at 2:39 PM, Mike Frysinger wrote:
> > > >>> just to be clear, the only insn you need is:
> > > >>> ble 0x100(%sr2, %r0);
> > > >>>
> > > >>> the kernel docs say sr2 holds the kernel gateway page (so i guess
> > > >>> 0x100 is a
> > > >>> known offset into that). the docs don't mention r0 that i can see,
> > > >>> so i'm
> > > >>> guessing it's one of those "always 0" registers ?
> > > >>
> > > >> Yes. There is also an entry at offset 0xb0 for light-weight-
> > > >> syscalls. Currently,
> > > >> this implements an atomic CAS operation used for pthread support.
> > > >
> > > > interesting. sounds like a poor man's vDSO. i'll document this the
> > > > new
> > > > vdso(7) man page.
> > >
> > > Not exactly, the code runs on the gateway page which is in kernel
> > > space. The main reason for doing the operation in kernel space is to
> > > prevent processes from being preempted while executing in the lock
> > > region. In general,
> > > parisc processes are not preempted on the gateway page. There are
> > > some subtleties regarding fault handling.
> >
> > sure ... the Blackfin arch does a similar thing for providing fast atomic
> > primitives to userspace since the ISA can't.
> >
> > what do you think of this section for vdso(7) ? i might have to split
> > the "real" vdso arches from these others since there's a couple now
> > (arm, bfin, parisc), and i think there might be more down the line
> > (microblaze).
>
> I've got to say, I really don't think this can be classified as a vdso.
> For a vdso, the kernel exports an ELF object that can be linked
> dynamically into any elf binary requiring it. The ELF section
> information provides full details and so vdso entries can be called by
> symbol.
strictly speaking, sure, a vDSO is only a vDSO if it's an ELF (since the
acronym is literally "virtual dynamic shared object"). however, i see the
vdso as being a bit more of a flexible concept -- it's a place of shared code
that the kernel manages and exports for all userspace processes.
fundamentally, the point of the vDSO is to provide services to greatly speed
up userspace. in that regard, these mapped pages are exactly like vDSOs.
thus i think it's appropriate to document these "fixed code" regions that many
arches export (ARM, Blackfin, Itanium, Microblaze, PA-RISC) in the same man
page as the vdso. especially since (currently) arches do one or the other,
but not both.
> In the parisc gateway page implementation, we have a set of "hidden"
> primitives which the executable must know how to call (no self
> description like a vdso). This mechanism is identical to the original
> intent of the x86 int <n> instruction (an instruction that traps into
> the kernel and performs some primitive action but to use it, you have to
> know which function corresponds to which value of <n>).
would it be useful to document all of them ? or just the ones that userspace
actively uses (like syscall/cas) ? or should all of this be recorded in the
kernel's Documentation/parisc/ subdir and just have the man page refer people
there (like it does for ARM & Blackfin currently) ?
-mike
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2013-04-12 18:45 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1364361092-5948-1-git-send-email-ch0.han@lge.com>
[not found] ` <201304010632.41520.vapier@gentoo.org>
[not found] ` <CAKgNAkgG2kdCC1tyZQkYU7O_nP7RB8VoCmx6eb8FcudU1s6RgA@mail.gmail.com>
[not found] ` <201304021917.17659.vapier@gentoo.org>
2013-04-07 10:00 ` [PATCH] man2 : syscall.2 : document syscall calling conventions Michael Kerrisk (man-pages)
2013-04-07 13:55 ` Kyle McMartin
2013-04-07 14:56 ` James Bottomley
2013-04-07 15:11 ` Kyle McMartin
[not found] ` <20130407151134.GX12938-PfSpb0PWhxZc2C7mugBRk2EX/6BAtgUQ@public.gmane.org>
2013-04-07 15:38 ` James Bottomley
2013-04-08 9:18 ` Michael Kerrisk (man-pages)
[not found] ` <20130407135514.GW12938-PfSpb0PWhxZc2C7mugBRk2EX/6BAtgUQ@public.gmane.org>
2013-04-07 18:39 ` Mike Frysinger
2013-04-07 18:48 ` John David Anglin
[not found] ` <BLU0-SMTP986B123D17DB8B88214F797C40-MsuGFMq8XAE@public.gmane.org>
2013-04-08 9:20 ` Michael Kerrisk (man-pages)
2013-04-12 1:55 ` Mike Frysinger
[not found] ` <201304112155.46349.vapier-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org>
2013-04-12 2:34 ` John David Anglin
2013-04-12 3:38 ` Mike Frysinger
2013-04-12 4:45 ` James Bottomley
2013-04-12 12:17 ` John David Anglin
2013-04-12 18:45 ` Mike Frysinger [this message]
2013-04-12 19:14 ` James Bottomley
2013-04-12 19:46 ` Mike Frysinger
2013-04-12 20:25 ` James Bottomley
2013-04-12 14:01 ` Kyle McMartin
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=201304121445.08948.vapier@gentoo.org \
--to=vapier@gentoo.org \
--cc=James.Bottomley@hansenpartnership.com \
--cc=dave.anglin@bell.net \
--cc=deller@gmx.de \
--cc=jejb@parisc-linux.org \
--cc=kyle@infradead.org \
--cc=kyle@mcmartin.ca \
--cc=linux-man@vger.kernel.org \
--cc=linux-parisc@vger.kernel.org \
--cc=mtk.manpages@gmail.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