All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Mosberger <davidm@hpl.hp.com>
To: linux-ia64@vger.kernel.org
Subject: Re: [Linux-ia64] Unwind problem for __attribute__ noreturn
Date: Wed, 21 Mar 2001 07:54:44 +0000	[thread overview]
Message-ID: <marc-linux-ia64-105590693005313@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590693005303@msgid-missing>

>>>>> On Tue, 20 Mar 2001 23:12:49 -0800, Jim Wilson <wilson@cygnus.com> said:

  Jim> But if the kernel is setting b0 differently than a call
  Jim> instruction does, then the kernel must be broken.  If the
  Jim> kernel is setting b0 to point someplace else to optimize away a
  Jim> branch, then I don't understand how unwinding could work
  Jim> anyways, because the unwind info will likely be different at
  Jim> the target than where we are coming from.  I would need a
  Jim> really good description of what the kernel is doing here before
  Jim> I could accept this as a valid reason to de-optimize code.

The code path needed to leave the kernel is shared for all types of
interruptions.  Before calling an interruption handler, the kernel
arranges things so that the handler will return directly to the shared
exit path, instead of returning to the call site first.  This works
fine because the unwind state at the call site and return site are
always the same.

  Jim> If what the kernel is doing is valid, then why not suggest that
  Jim> the kernel be modified to insert nops before the places where
  Jim> the funny b0 stuff is done, so that b0-1 is still valid.

I also doubt that adding "nop"s in the compiler is the right solution.
There is only one place in the kernel that the short-circuit return is
done, so that should be easily fixable.

  Jim> We use the unwind info for C++ exceptions, but there would be
  Jim> no problem there I think, because we already subtract one from
  Jim> the return address before using it.

Perhaps that is the right solution.  But I need to think about this
some more.

	--david


  parent reply	other threads:[~2001-03-21  7:54 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-03-20  2:10 [Linux-ia64] Unwind problem for __attribute__ noreturn Keith Owens
2001-03-21  0:24 ` Jim Wilson
2001-03-21  6:03 ` Keith Owens
2001-03-21  6:53 ` David Mosberger
2001-03-21  7:12 ` Jim Wilson
2001-03-21  7:54 ` David Mosberger [this message]
2001-03-21  8:54 ` Keith Owens
2001-03-21 17:54 ` David Mosberger
2001-03-21 18:48 ` Cary Coutant
2001-03-21 19:07 ` Jim Wilson
2001-03-21 19:13 ` David Mosberger
2001-03-21 19:13 ` Jim Wilson
2001-03-21 19:26 ` Cary Coutant
2001-03-21 19:40 ` Jim Wilson
2001-03-21 19:58 ` David Mosberger
2001-03-21 20:00 ` Jim Wilson
2001-03-21 20:38 ` Jim Wilson
2001-03-21 22:54 ` David Mosberger
2001-03-21 23:42 ` Cary Coutant
2001-03-22 17:00 ` Rich Altmaier
2001-03-23 20:28 ` Jim Wilson
2001-03-24  0:58 ` Cary Coutant
2001-03-24  1:27 ` Keith Owens
2001-03-24  1:37 ` Jim Wilson
2001-03-26 22:06 ` DE-DINECHIN,CHRISTOPHE (HP-Cupertino,ex1)
2001-03-26 22:58 ` Cary Coutant

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=marc-linux-ia64-105590693005313@msgid-missing \
    --to=davidm@hpl.hp.com \
    --cc=linux-ia64@vger.kernel.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 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.