From: Alexander van Heukelum <heukelum@mailshack.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: LKML <linux-kernel@vger.kernel.org>,
Andi Kleen <andi@firstfloor.org>,
"H. Peter Anvin" <hpa@zytor.com>,
Jan Beulich <jbeulich@novell.com>,
Glauber Costa <gcosta@redhat.com>, Matt Mackall <mpm@selenic.com>,
Thomas Gleixner <tglx@linutronix.de>,
Nick Piggin <nickpiggin@yahoo.com.au>,
Cyrill Gorcunov <gorcunov@gmail.com>
Subject: Re: [PATCH] x86: clean up after: move entry_64.S register saving out of the macros
Date: Thu, 20 Nov 2008 16:57:44 +0100 [thread overview]
Message-ID: <20081120155744.GA4130@mailshack.com> (raw)
In-Reply-To: <20081120153954.GA22511@elte.hu>
On Thu, Nov 20, 2008 at 04:39:54PM +0100, Ingo Molnar wrote:
>
> * Alexander van Heukelum <heukelum@mailshack.com> wrote:
>
> > On Thu, Nov 20, 2008 at 04:04:12PM +0100, Ingo Molnar wrote:
> > >
> > > * Alexander van Heukelum <heukelum@mailshack.com> wrote:
> > >
> > > > This add-on patch to x86: move entry_64.S register saving out of the
> > > > macros visually cleans up the appearance of the code by introducing
> > > > some basic helper macro's. It also adds some cfi annotations which
> > > > were missing.
> > > >
> > > > Signed-off-by: Alexander van Heukelum <heukelum@fastmail.fm>
> > > > ---
> > > > arch/x86/kernel/entry_64.S | 220 ++++++++++++++++++++++----------------------
> > > > 1 files changed, 112 insertions(+), 108 deletions(-)
> > > >
> > > > Hello Ingo,
> > > >
> > > > This patch improves the CFI-situation in entry_64.S, but restricted
> > > > mostly to the areas touched by "x86: move entry_64.S register saving
> > > > out of the macros". I'm sure there will be some small errors
> > > > somewhere, but it compiles and runs fine.
> > >
> > > very nice cleanup! This is exactly what should be done. Applied to
> > > tip/x86/irq.
> > >
> > > Note, i did a small rename:
> > >
> > > cfi_pushq => pushq_cfi
> > > cfi_popq => popq_cfi
> > > cfi_store => movq_cfi
Does not work... But if you are attached to the underscores, I
think we can force it to work by using CPP to convert it to
something the assembler does parse right:
#define pushq_cfi pushq.cfi
etc?
Or is that just too ugly?
Alexander
> > > as the goal is to have the actual source code read mostly as regular
> > > assembly code. The fact that the macro is equivalent to a
> > > default-annotated pushq/popq/movq instruction is much more important
> > > than the fact that it also does CFI annotations.
> > >
> > > Also, while cfi_store is correct as well, the usual x86 assembly term
> > > (and instruction used here) is movq.
> >
> > Now I have a little problem with my next patch... I wanted to
> > introduce cfi_load. Guess what assembly instruction that maps to ;).
>
> heh ;-)
>
> the restore direction could be named movq_cfi_restore, and have the same
> order of arguments as the regular movq that it replaces. I.e.:
>
> movq 8(%rsp),%r11
> CFI_RESTORE r11
>
> would map to:
>
> movq_cfi_restore 8, r11
>
> or so.
>
> cfi_store has really a bad name: it's confusing whether it's the CFI
> info we are storing/registering (which we are), or a 'store' instruction
> (which this is too).
>
> If then we should name it movq_cfi_store or movq_cfi_register - but
> that's too long.
>
> movq_cfi for the frame construction direction and movq_cfi_restore for
> the frame deconstruction phase sounds like a good naming compromise, hm?
>
> Ingo
--
Alexander van Heukelum
next prev parent reply other threads:[~2008-11-20 16:00 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-16 14:29 [PATCH] trivial, entry_64: remove whitespace at end of lines Alexander van Heukelum
2008-11-16 14:29 ` [RFC] x86: save_args out of line Alexander van Heukelum
2008-11-17 12:14 ` Glauber Costa
2008-11-17 15:13 ` Alexander van Heukelum
2008-11-17 12:53 ` Andi Kleen
2008-11-17 15:37 ` Alexander van Heukelum
2008-11-17 18:23 ` Andi Kleen
2008-11-17 19:22 ` Cyrill Gorcunov
2008-11-17 19:29 ` Cyrill Gorcunov
2008-11-17 19:49 ` Alexander van Heukelum
2008-11-17 19:54 ` Cyrill Gorcunov
2008-11-17 19:43 ` Alexander van Heukelum
2008-11-17 19:49 ` Cyrill Gorcunov
2008-11-17 17:52 ` [RFC,v2] x86_64: " Alexander van Heukelum
2008-11-18 8:09 ` Jan Beulich
2008-11-18 11:16 ` Alexander van Heukelum
2008-11-18 12:51 ` Jan Beulich
2008-11-18 14:03 ` Ingo Molnar
2008-11-18 14:52 ` Jan Beulich
2008-11-18 15:00 ` Ingo Molnar
2008-11-18 22:53 ` Roland McGrath
2008-11-18 23:35 ` Andi Kleen
2008-11-18 23:36 ` Jeremy Fitzhardinge
2008-11-18 23:44 ` H. Peter Anvin
2008-11-19 0:08 ` Jeremy Fitzhardinge
2008-11-18 23:45 ` Roland McGrath
2008-11-19 0:06 ` Andi Kleen
2008-11-19 0:01 ` H. Peter Anvin
2008-11-19 10:34 ` Ingo Molnar
2008-11-19 20:09 ` Ingo Molnar
2008-11-19 0:18 ` [PATCH/RFC] Move entry_64.S register saving out of the macros Alexander van Heukelum
2008-11-19 17:54 ` H. Peter Anvin
2008-11-19 20:16 ` Ingo Molnar
2008-11-20 13:40 ` [PATCH] x86: clean up after: move " Alexander van Heukelum
2008-11-20 14:01 ` Andi Kleen
2008-11-20 15:04 ` Ingo Molnar
2008-11-20 15:26 ` Alexander van Heukelum
2008-11-20 15:39 ` Ingo Molnar
2008-11-20 15:50 ` [PATCH] x86: clean up after: move entry_64.S register savingout " Jan Beulich
2008-11-20 15:57 ` Alexander van Heukelum [this message]
2008-11-20 16:07 ` [PATCH] x86: clean up after: move entry_64.S register saving out " Cyrill Gorcunov
2008-11-20 16:29 ` Alexander van Heukelum
2008-11-20 17:24 ` Ingo Molnar
2008-11-21 15:41 ` [PATCH] x86: Introduce save_rest and restructure the PTREGSCALL macro in entry_64.S Alexander van Heukelum
2008-11-21 15:43 ` [PATCH] x86: entry_64.S: Factor out save_paranoid and paranoid_exit Alexander van Heukelum
2008-11-21 15:44 ` [PATCH] Split out some macro's and move common code to paranoid_exit Alexander van Heukelum
2008-11-21 16:06 ` Ingo Molnar
2008-11-23 9:08 ` [PATCH] x86: include ENTRY/END in entry handlers in entry_64.S Alexander van Heukelum
2008-11-23 9:15 ` [PATCH] x86: KPROBE_ENTRY should be paired wth KPROBE_END Alexander van Heukelum
2008-11-23 13:27 ` Ingo Molnar
2008-11-23 13:51 ` Cyrill Gorcunov
2008-11-23 14:12 ` Cyrill Gorcunov
2008-11-23 14:55 ` Ingo Molnar
2008-11-23 15:04 ` Cyrill Gorcunov
2008-11-23 15:04 ` Alexander van Heukelum
2008-11-23 15:12 ` Cyrill Gorcunov
2008-11-23 15:31 ` Ingo Molnar
2008-11-23 15:41 ` Cyrill Gorcunov
2008-11-23 15:37 ` Cyrill Gorcunov
2008-11-23 16:29 ` Ingo Molnar
2008-11-24 9:17 ` Jan Beulich
2008-11-24 10:26 ` Alexander van Heukelum
2008-11-24 10:35 ` Jan Beulich
2008-11-24 12:24 ` [PATCH] x86_64: get rid of the use of KPROBE_ENTRY / KPROBE_END Alexander van Heukelum
2008-11-24 13:33 ` Jan Beulich
2008-11-24 14:38 ` [PATCH] i386: " Alexander van Heukelum
2008-11-23 9:21 ` [PATCH] x86: include ENTRY/END in entry handlers in entry_64.S Cyrill Gorcunov
2008-11-23 11:23 ` Alexander van Heukelum
2008-11-23 11:35 ` Cyrill Gorcunov
2008-11-23 20:13 ` H. Peter Anvin
2008-11-24 10:06 ` Alexander van Heukelum
2008-11-24 18:07 ` H. Peter Anvin
2008-11-23 13:23 ` Ingo Molnar
2008-11-17 9:47 ` [PATCH] trivial, entry_64: remove whitespace at end of lines Ingo Molnar
2008-11-17 15:14 ` Alexander van Heukelum
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=20081120155744.GA4130@mailshack.com \
--to=heukelum@mailshack.com \
--cc=andi@firstfloor.org \
--cc=gcosta@redhat.com \
--cc=gorcunov@gmail.com \
--cc=hpa@zytor.com \
--cc=jbeulich@novell.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mpm@selenic.com \
--cc=nickpiggin@yahoo.com.au \
--cc=tglx@linutronix.de \
/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.