Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: Ralf Baechle <ralf@linux-mips.org>
To: Franck Bui-Huu <vagabon.xyz@gmail.com>
Cc: Andrew Haley <aph-gcc@littlepinkcloud.com>,
	David Daney <ddaney@avtrex.com>,
	linux-mips@linux-mips.org,
	Richard Sandiford <rsandifo@nildram.co.uk>,
	gcc@gcc.gnu.org
Subject: Re: Cannot unwind through MIPS signal frames with ICACHE_REFILLS_WORKAROUND_WAR
Date: Tue, 13 Nov 2007 15:01:46 +0000	[thread overview]
Message-ID: <20071113150146.GC7650@linux-mips.org> (raw)
In-Reply-To: <cda58cb80711130622u7ef77870iae407f7c8054e9da@mail.gmail.com>

On Tue, Nov 13, 2007 at 03:22:33PM +0100, Franck Bui-Huu wrote:

> > > And the stack wouldn't need to have exec permission anymore.
> >
> > Oh?
> >
> > extern void frob(void (*)(void));
> >
> > int foo(void)
> > {
> >         int x;
> >
> >         void bar(void)
> >         {
> >                 x++;
> >         }
> >
> >         frob(&bar);
> >         print("x is %d\n", x);
> > }
> >
> > Compile and enjoy.
> >
> 
> Sorry Ralf, I missed your point.

This piece of code compiles to something that copies a trampoline to the
stack.  The address of that trampoline is what is then passed as argument
to frob().

Old versions of glibc were probable the most notorious users of trampolines.
Objective C also generates them.  Since a cacheflush that is a syscall is
required performance is less than great.

Which means the libc() cacheflush() function is another candidate for a
vDSO, it can be optimized by using SYNCI on some configurations.

  Ralf

  reply	other threads:[~2007-11-13 15:04 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-13  7:52 Cannot unwind through MIPS signal frames with ICACHE_REFILLS_WORKAROUND_WAR David Daney
2007-11-13 11:48 ` Andrew Haley
2007-11-13 12:10   ` Ralf Baechle
2007-11-13 13:14     ` Franck Bui-Huu
2007-11-13 14:00       ` Ralf Baechle
2007-11-13 14:22         ` Franck Bui-Huu
2007-11-13 15:01           ` Ralf Baechle [this message]
2007-11-13 22:11             ` Andrew Pinski
2007-11-13 14:37       ` Kevin D. Kissell
2007-11-13 14:37         ` Kevin D. Kissell
2007-11-13 14:49         ` Franck Bui-Huu
2007-11-13 15:08         ` Ralf Baechle
2007-11-13 22:49           ` Cannot unwind through MIPS signal frames withICACHE_REFILLS_WORKAROUND_WAR Kevin D. Kissell
2007-11-13 22:49             ` Kevin D. Kissell
2007-11-13 21:26       ` VDSO on mips (was Re: Cannot unwind through MIPS signal frames with ICACHE_REFILLS_WORKAROUND_WAR) Franck Bui-Huu
2007-11-15  8:46     ` Cannot unwind through MIPS signal frames with ICACHE_REFILLS_WORKAROUND_WAR Franck Bui-Huu
2007-11-15 11:53       ` Ralf Baechle
2007-11-15 17:21         ` David Daney
2007-11-17  8:38           ` Franck Bui-Huu
2007-11-13 16:12 ` David Daney

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=20071113150146.GC7650@linux-mips.org \
    --to=ralf@linux-mips.org \
    --cc=aph-gcc@littlepinkcloud.com \
    --cc=ddaney@avtrex.com \
    --cc=gcc@gcc.gnu.org \
    --cc=linux-mips@linux-mips.org \
    --cc=rsandifo@nildram.co.uk \
    --cc=vagabon.xyz@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