Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1606695

Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START for data

From Pavel Machek <pavel@ucw.cz>
Newsgroups linux.kernel
Subject Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START for data
Date 2017-03-22 17:00 +0100
Message-ID <tnQQ2-4OP-49@gated-at.bofh.it> (permalink)
References <tlyNB-3TH-33@gated-at.bofh.it> <tn4Ln-4J7-5@gated-at.bofh.it> <tn4Lp-4J7-47@gated-at.bofh.it> <tnsNI-4r2-11@gated-at.bofh.it> <tnNfs-2bK-17@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

On Wed 2017-03-22 13:06:54, Jiri Slaby wrote:
> Hi,
> 
> On 03/21/2017, 03:08 PM, Pavel Machek wrote:
> >> -ENTRY(saved_rbp)	.quad	0
> >> -ENTRY(saved_rsi)	.quad	0
> >> -ENTRY(saved_rdi)	.quad	0
> >> -ENTRY(saved_rbx)	.quad	0
> >> +SYM_DATA_START(saved_rbp)		.quad	0
> >> +SYM_DATA_START(saved_rsi)		.quad	0
> >> +SYM_DATA_START(saved_rdi)		.quad	0
> >> +SYM_DATA_START(saved_rbx)		.quad	0
> > 
> > Does it make sense to call it SYM_DATA_*START* when there's no
> > corresponding end?
> > 
> > Plus... it looks like saved_rsi (and friends) are only used inside
> > wakeup_64.S. Could we just delete the "ENTRY" annotations?
> 
> 
> So, now I have:
> 
> === linkage.h ===
> 
> /* SYM_DATA_SIMPLE -- start+end wrapper around simple global data */
> #ifndef SYM_DATA_SIMPLE
> #define SYM_DATA_SIMPLE(name, data)                             \
>         SYM_DATA_START(name) ASM_NL                             \
>         data ASM_NL                                             \
>         SYM_DATA_END(name)
> #endif
> 
> /* SYM_DATA_SIMPLE_LOCAL -- start+end wrapper around simple local data */
> #ifndef SYM_DATA_SIMPLE_LOCAL
> #define SYM_DATA_SIMPLE_LOCAL(name, data)                       \
>         SYM_DATA_START_LOCAL(name) ASM_NL                       \
>         data ASM_NL                                             \
>         SYM_DATA_END(name)
> #endif
> 
> === wakeup_64.S ===
> 
> SYM_DATA_SIMPLE_LOCAL(saved_rbp, .quad 0)
> SYM_DATA_SIMPLE_LOCAL(saved_rsi, .quad 0)
> SYM_DATA_SIMPLE_LOCAL(saved_rdi, .quad 0)
> SYM_DATA_SIMPLE_LOCAL(saved_rbx, .quad 0)
> 
> SYM_DATA_SIMPLE_LOCAL(saved_rip, .quad 0)
> SYM_DATA_SIMPLE_LOCAL(saved_rsp, .quad 0)
> 
> SYM_DATA_SIMPLE_LOCAL(saved_magic, .quad 0)
> 
> === original ===
> 
>     10: 0000000000000060     0 NOTYPE  GLOBAL DEFAULT    3 saved_magic
>     11: 0000000000000050     0 NOTYPE  GLOBAL DEFAULT    3 saved_rsp
>     12: 0000000000000030     0 NOTYPE  GLOBAL DEFAULT    3 saved_rbx
>     13: 0000000000000020     0 NOTYPE  GLOBAL DEFAULT    3 saved_rdi
>     14: 0000000000000010     0 NOTYPE  GLOBAL DEFAULT    3 saved_rsi
>     15: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT    3 saved_rbp
>     16: 0000000000000040     0 NOTYPE  GLOBAL DEFAULT    3 saved_rip
> 
> === new ===
> 
>      4: 0000000000000030     8 OBJECT  LOCAL  DEFAULT    3 saved_magic
>      6: 0000000000000028     8 OBJECT  LOCAL  DEFAULT    3 saved_rsp
>      7: 0000000000000018     8 OBJECT  LOCAL  DEFAULT    3 saved_rbx
>      8: 0000000000000010     8 OBJECT  LOCAL  DEFAULT    3 saved_rdi
>      9: 0000000000000008     8 OBJECT  LOCAL  DEFAULT    3 saved_rsi
>     10: 0000000000000000     8 OBJECT  LOCAL  DEFAULT    3 saved_rbp
>     11: 0000000000000020     8 OBJECT  LOCAL  DEFAULT    3 saved_rip
> 
> === EOF ===
> 
> BTW, ENTRY() aligned the data to 2^4 = 16 as we can see in the original.
> But I see no point aligning data like this.

Yep, that's a bug, too. I guess it hurts even more on 32-bit....

Thanks for fixing this,
									Pavel

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: [RFC] linkage: new macros for functions and data Ingo Molnar <mingo@kernel.org> - 2017-03-16 09:10 +0100
  Re: [RFC] linkage: new macros for functions and data Jiri Slaby <jslaby@suse.cz> - 2017-03-16 09:20 +0100
    [PATCH v2 07/10] x86: assembly, annotate aliases Jiri Slaby <jslaby@suse.cz> - 2017-03-20 13:40 +0100
    [PATCH v2 04/10] x86: boot, annotate functions properly Jiri Slaby <jslaby@suse.cz> - 2017-03-20 13:40 +0100
    [PATCH v2 09/10] x86: entry, annotate interrupt symbols properly Jiri Slaby <jslaby@suse.cz> - 2017-03-20 13:40 +0100
    [PATCH v2 03/10] x86: assembly, use SYM_FUNC_END for functions Jiri Slaby <jslaby@suse.cz> - 2017-03-20 13:40 +0100
      Re: [PATCH v2 03/10] x86: assembly, use SYM_FUNC_END for functions Josh Poimboeuf <jpoimboe@redhat.com> - 2017-03-21 15:50 +0100
        Re: [PATCH v2 03/10] x86: assembly, use SYM_FUNC_END for functions Ingo Molnar <mingo@kernel.org> - 2017-03-22 08:40 +0100
      Re: [PATCH v2 03/10] x86: assembly, use SYM_FUNC_END for functions Josh Poimboeuf <jpoimboe@redhat.com> - 2017-03-22 15:30 +0100
        Re: [PATCH v2 03/10] x86: assembly, use SYM_FUNC_END for functions Jiri Slaby <jslaby@suse.cz> - 2017-03-22 17:00 +0100
    [PATCH v2 05/10] x86: kernel+lib, annotate local functions Jiri Slaby <jslaby@suse.cz> - 2017-03-20 13:40 +0100
    [PATCH v2 08/10] x86: entry, annotate THUNKs Jiri Slaby <jslaby@suse.cz> - 2017-03-20 13:40 +0100
    [PATCH v2 06/10] x86: crypto, annotate local functions Jiri Slaby <jslaby@suse.cz> - 2017-03-20 13:40 +0100
    [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START for data Jiri Slaby <jslaby@suse.cz> - 2017-03-20 13:40 +0100
      Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START  for data Josh Poimboeuf <jpoimboe@redhat.com> - 2017-03-20 14:40 +0100
        Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START for  data Jiri Slaby <jslaby@suse.cz> - 2017-03-20 16:50 +0100
          Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START  for data Josh Poimboeuf <jpoimboe@redhat.com> - 2017-03-20 17:10 +0100
      Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START  for data Pavel Machek <pavel@ucw.cz> - 2017-03-21 15:20 +0100
        Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START  for data Ingo Molnar <mingo@kernel.org> - 2017-03-22 08:30 +0100
          Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START for  data Jiri Slaby <jslaby@suse.cz> - 2017-03-22 08:50 +0100
            Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START  for data Ingo Molnar <mingo@kernel.org> - 2017-03-22 08:50 +0100
              Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START  for data Josh Poimboeuf <jpoimboe@redhat.com> - 2017-03-22 15:20 +0100
                Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START for  data Jiri Slaby <jslaby@suse.cz> - 2017-03-22 16:10 +0100
                Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START  for data Josh Poimboeuf <jpoimboe@redhat.com> - 2017-03-22 16:40 +0100
                Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START  for data Ingo Molnar <mingo@kernel.org> - 2017-03-23 08:40 +0100
                Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START  for data Josh Poimboeuf <jpoimboe@redhat.com> - 2017-03-23 14:30 +0100
        Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START for  data Jiri Slaby <jslaby@suse.cz> - 2017-03-22 13:10 +0100
          Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START  for data Pavel Machek <pavel@ucw.cz> - 2017-03-22 17:00 +0100
    [RFC v2 10/10] x86: boot, extract efi_pe_entry from startup_64 Jiri Slaby <jslaby@suse.cz> - 2017-03-20 13:40 +0100
    [PATCH v2 01/10] linkage: new macros for assembler symbols Jiri Slaby <jslaby@suse.cz> - 2017-03-20 13:40 +0100

csiph-web