From: "Alexander van Heukelum" <heukelum@fastmail.fm>
To: Sam Ravnborg <sam@ravnborg.org>, Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Jan Beulich <jbeulich@novell.com>,
linux-arch@vger.kernel.org,
Alexander van Heukelum <heukelum@mailshack.com>,
Ingo Molnar <mingo@elte.hu>, LKML <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH 1/many] PROC macro to annotate functions in assembly files
Date: Thu, 18 Dec 2008 10:51:58 +0100 [thread overview]
Message-ID: <1229593918.31758.1290707307@webmail.messagingengine.com> (raw)
In-Reply-To: <20081217180023.GA5783@uranus.ravnborg.org>
On Wed, 17 Dec 2008 19:00:23 +0100, "Sam Ravnborg" <sam@ravnborg.org>
said:
> On Wed, Dec 17, 2008 at 08:38:24PM +0300, Cyrill Gorcunov wrote:
> > [Sam Ravnborg - Wed, Dec 17, 2008 at 06:26:40PM +0100]
> > | On Wed, Dec 17, 2008 at 10:17:54AM +0100, Alexander van Heukelum wrote:
> > | > Introduce the PROC macro in the generic header file
> > | > include/linux/linkage.h to annotate functions in assembly
> > | > files. This is a first step to fully annotate functions
> > | > (procedures) in .S-files. The PROC macro complements the
> > | > already existing and being used ENDPROC macro. The generic
> > | > implementation of PROC is exactly the same as ENTRY.
> > | >
> > | > The goal is to annotate functions, at least those called
> > | > from C code, with PROC at the beginning and ENDPROC at the
> > | > end. This is for the benefit of debugging and tracing. It
> > | > will also allow to introduce a framework to check for
> > | > nesting problems and missing annotations in a later stage
> > | > by overriding ENTRY/END and PROC/ENDPROC in architecture-
> > | > specific code, after the annotation errors have been fixed.
> > | >
> > | > Signed-off-by: Alexander van Heukelum <heukelum@fastmail.fm>
> > | > Cc: Sam Ravnborg <sam@ravnborg.org>
> > | > Cc: Andrew Morton <akpm@linux-foundation.org>
> > |
> > | I understand where you are coming from with these.
> > | But what I see now is:
> > |
> > | ENTRY/END
> > | PROC/ENDPROC
> > | KPROBE_ENTRY/KPROBE_END
> > |
> > | And it is not obvious for me reading the comment when I should
> > | expect which one to be used.
> > |
> > | Could we try to keep it down to two variants?
> > | And then document when to use which one.
> > |
> > | Sam
> > |
> >
> > Sam, I think eventually we should get something like this:
> >
> > - KPROBE will be eliminated and explicit section descriptions
> > are to be used
> > - ENTRY could be used / or renamed for something more descriptive
> > and being used aligned jmp targets or in case of procs with
> > shared body
I don't think ENTRY should be used for nested procedures. If the
author wants to do something like that, he better knew something
about the assembler anyhow.
> > - PROC/ENDPROC are to replace old ENTRY/END for procs being called
> > mostly from C code
Currently there is many different patterns. Some functions use ENTRY
without END, some use ENTRY/ENDPROC, some use ENDPROC without annotation
at the start...
> So what prevents us from extending ENTRY/END instead of introducing
> another set?
ENTRY/END alone is not enough if one wants to be able to distinguish
between code (functions) and non-executed data.
> Let us try to extend what we have and not introduce something new.
Agreed. I vote to complement the existing ENDPROC annotation with
the proposed PROC annotation. Let's call that an extension, not
something new ;). As it stands it is not impossible to go with
ENTRY/ENDPROC for code and ENTRY/END for data. However, ENTRY
implies alignment and the prefered alignment for code and data
might differ.
Greetings,
Alexander
> Sam
--
Alexander van Heukelum
heukelum@fastmail.fm
--
http://www.fastmail.fm - Access your email from home and the web
next prev parent reply other threads:[~2008-12-18 9:51 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-17 9:17 PROC macro to annotate functions in assembly files Alexander van Heukelum
2008-12-17 9:17 ` [PATCH 1/many] " Alexander van Heukelum
2008-12-17 9:17 ` [PATCH last/many] x86: checking framework for correct use of ENTRY/PROC Alexander van Heukelum
2008-12-17 11:51 ` Cyrill Gorcunov
2008-12-17 12:04 ` Alexander van Heukelum
2008-12-17 14:43 ` Cyrill Gorcunov
2008-12-17 17:26 ` [PATCH 1/many] PROC macro to annotate functions in assembly files Sam Ravnborg
2008-12-17 17:38 ` Cyrill Gorcunov
2008-12-17 18:00 ` Sam Ravnborg
2008-12-17 18:33 ` Cyrill Gorcunov
2008-12-18 9:51 ` Alexander van Heukelum [this message]
2008-12-18 10:07 ` Russell King
2008-12-18 11:30 ` Alexander van Heukelum
2008-12-18 10:20 ` Jan Beulich
2008-12-18 10:20 ` Jan Beulich
2008-12-18 12:03 ` Cyrill Gorcunov
2008-12-18 12:40 ` Alexander van Heukelum
2008-12-18 16:05 ` Cyrill Gorcunov
2008-12-18 9:23 ` Alexander van Heukelum
2008-12-18 12:52 ` Ingo Molnar
2008-12-17 10:53 ` David Howells
2008-12-17 11:12 ` Alexander van Heukelum
2008-12-18 11:44 ` Russell King
2008-12-18 12:35 ` Alexander van Heukelum
2008-12-18 15:53 ` Russell King
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=1229593918.31758.1290707307@webmail.messagingengine.com \
--to=heukelum@fastmail.fm \
--cc=akpm@linux-foundation.org \
--cc=gorcunov@gmail.com \
--cc=heukelum@mailshack.com \
--cc=jbeulich@novell.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=sam@ravnborg.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.