All of lore.kernel.org
 help / color / mirror / Atom feed
From: Keir Fraser <keir.xen@gmail.com>
To: Tim Deegan <Tim.Deegan@citrix.com>
Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: [PATCH 6 of 8] Xen: remove run_in_exception_handler() and recode its only caller
Date: Mon, 07 Mar 2011 15:44:51 +0000	[thread overview]
Message-ID: <C99AADF3.14421%keir.xen@gmail.com> (raw)
In-Reply-To: <20110307153841.GA28479@whitby.uk.xensource.com>

On 07/03/2011 15:38, "Tim Deegan" <Tim.Deegan@citrix.com> wrote:

> At 15:15 +0000 on 07 Mar (1299510944), Keir Fraser wrote:
>> On 07/03/2011 15:05, "Keir Fraser" <keir.xen@gmail.com> wrote:
>> 
>>> On 07/03/2011 11:26, "Tim Deegan" <Tim.Deegan@citrix.com> wrote:
>>> 
>>>> (dump_execution_state()) as its own bug-trap.
>>>> 
>>>> This is needed to compile xen with clang, which can't handle using a
>>>> function name in an asm immediate.
>>> 
>>> Actually run_in_exception_handler() does have another user, in ns16550.c.
>>> Although non-essential, it makes the 'd' debug key much more useful when
>>> running the UART in polled mode.
>>> 
>>> So I suggest we keep run_in_exception_handler but modify it to pass the
>>> function pointer in (say) rAX.
>> 
>> Like the attached patch (against latest tip).
> 
> Sorry, I had missed that other user.  I'll see if I can find a way to
> make clang use the function address directly; if not, I'd be inclined to
> have dump_execution_state have its own ID anyway, to keep %rax valid(er)
> in BUG()s.

But actually dump_execution_state() isn't used for BUGs and WARNs and
ASSERTs. In fact it's practically dead on x86 -- it's used in one rather
unlikely ACPI error function, and also in __bug/__warn which are never used
on x86. And that's it. Actually the user of run_in_exception_handler() in
ns16550.c is really the only one we care about!

 -- Keir

> Tim.
> 
>>> I think we won't easily be able to use
>>> BUG_STR() logic but r_i_e_h is only used (directly or indirectly) in a few
>>> places so the BUG_STR optimisation is unimportant. The only other
>>> disadvantage is that rAX is less interesting in the state dump, but any
>>> value the function pointer displaces can still be found in the stack dump,
>>> albeit with likely a little extra effort.
>>> 
>>> Sound good?
>>> 
>>>  -- Keir 
>>> 
>>>> Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Xen-devel mailing list
>>>> Xen-devel@lists.xensource.com
>>>> http://lists.xensource.com/xen-devel
>>> 
>>> 
>> 
> 
> 

  reply	other threads:[~2011-03-07 15:44 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-07 11:26 [PATCH 0 of 8] Allow building xen with clang/llvm Tim Deegan
2011-03-07 11:26 ` [PATCH 1 of 8] x86: make spinlock's 16-bit asm operand explicitly 16-bit Tim Deegan
2011-03-07 11:26 ` [PATCH 2 of 8] x86: add explicit size suffixes to some assembly instructions Tim Deegan
2011-03-08  9:27   ` Jan Beulich
2011-03-08 10:44     ` Tim Deegan
2011-03-08 11:01       ` Jan Beulich
2011-03-08 16:29         ` Keir Fraser
2011-03-07 11:26 ` [PATCH 3 of 8] x86: redefine a few empty macros as explicit nops Tim Deegan
2011-03-07 11:26 ` [PATCH 4 of 8] xen: adjust cpumask initializers to suit clang's incomplete gccisms Tim Deegan
2011-03-07 11:26 ` [PATCH 5 of 8] credit2: remove two nested functions, replacing them with static ones Tim Deegan
2011-03-07 15:22   ` George Dunlap
2011-03-07 11:26 ` [PATCH 6 of 8] Xen: remove run_in_exception_handler() and recode its only caller Tim Deegan
2011-03-07 15:05   ` Keir Fraser
2011-03-07 15:15     ` Keir Fraser
2011-03-07 15:38       ` Tim Deegan
2011-03-07 15:44         ` Keir Fraser [this message]
2011-03-07 15:49           ` Keir Fraser
2011-03-07 15:56         ` Tim Deegan
2011-03-07 16:00           ` Keir Fraser
2011-03-07 16:06             ` Tim Deegan
2011-03-07 11:26 ` [PATCH 7 of 8] x86: redefine REX64_PREFIX for clang, which doesn't like 'rex64/' Tim Deegan
2011-03-07 11:26 ` [PATCH 8 of 8] xen: add "clang=y" option to build Xen with clang/llvm instead of gcc Tim Deegan
2011-03-07 14:54   ` Ian Campbell
2011-03-07 16:29     ` Tim Deegan
2011-03-07 17:01       ` Keir Fraser
2011-03-08 10:29         ` Tim Deegan
2011-03-08 10:00       ` Ian Campbell
2011-03-07 12:03 ` [PATCH 0 of 8] Allow building xen with clang/llvm Keir Fraser

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=C99AADF3.14421%keir.xen@gmail.com \
    --to=keir.xen@gmail.com \
    --cc=Tim.Deegan@citrix.com \
    --cc=xen-devel@lists.xensource.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.