From: Paul Mackerras <paulus@cs.anu.edu.au>
To: kbhend@business.wm.edu
Cc: linuxppc-dev@lists.linuxppc.org
Subject: Re: PPC Kernel Gurus Help?
Date: Mon, 12 Apr 1999 14:38:40 +1000 [thread overview]
Message-ID: <199904120438.OAA20237@tango.anu.edu.au> (raw)
In-Reply-To: <v03010d00b336681cf21c@[209.96.179.223]> (kbhend@business.wm.edu)
Kevin B. Hendricks <kbhend@business.wm.edu> wrote:
> Unfortunately, things are not working very reliably. I was looking in the
> PPC Programmers Environment Manual found that in section 6.3 it specifies
> that the operating system when process switching should do an stwcx.
> instruction to a nonsense EA to clear any reservations held by the
> processor before starting the new process.
>
> Is this being done in Linux PPC kernels?
In fact, recent kernels do a dummy stwcx. on every entry to the
kernel, not just on context switches. If you want to check the kernel
source you're using, look for a stwcx. in the transfer_to_handler
routine in arch/ppc/kernel/head.S.
> Does anything special have to be done for threads created with the clone
> system call?
Not AFAICS, since you have to enter the kernel to switch from one
thread to another. If you have a user-level threads implementation,
it should do a dummy stwcx. in the context-switch code.
> What about in signal handlers? If a signal handler is invoked in the
> middle of the lwarx/stwcx. instruction pairs, should the handler be
> clearing the reservation bit?
Yes.
> Should we be clearing the reservation using an stwcx. instruction in the
> sigsetjmp / longjmp calls because they are often used to longjmp out of
> signal handlers which in turn might result in a mispaired ldwarx/stwcx. set
> of instructions similar to a process switch?
It is maybe worth considering doing a dummy stwcx. in [sig]longjmp.
However, the reservation should have been cleared by the time you get
into a signal handler anyway, so the only time you should see a
problem is if you do an explicit longjmp between the lwarx and
stwcx. :-)
Paul.
[[ This message was sent via the linuxppc-dev mailing list. Replies are ]]
[[ not forced back to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting. ]]
next prev parent reply other threads:[~1999-04-12 4:38 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <370E71B0.577788B0@synxis.com>
[not found] ` <19990411150328.032219@mail.mipsys.com>
1999-04-11 15:07 ` PPC Kernel Gurus Help? Kevin B. Hendricks
1999-04-12 4:38 ` Paul Mackerras [this message]
1999-04-11 18:15 Kevin B. Hendricks
1999-04-12 4:48 ` Paul Mackerras
1999-04-14 13:37 ` Benjamin Herrenschmidt
-- strict thread matches above, loose matches on Subject: below --
1999-04-12 20:49 Edward Swarthout
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=199904120438.OAA20237@tango.anu.edu.au \
--to=paulus@cs.anu.edu.au \
--cc=Paul.Mackerras@cs.anu.edu.au \
--cc=kbhend@business.wm.edu \
--cc=linuxppc-dev@lists.linuxppc.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;
as well as URLs for NNTP newsgroup(s).