public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: David Daney <ddaney@caviumnetworks.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>,
	Jason Baron <jbaron@redhat.com>,
	peterz@infradead.org, hpa@zytor.com, mingo@elte.hu,
	tglx@linutronix.de, andi@firstfloor.org, roland@redhat.com,
	rth@redhat.com, masami.hiramatsu.pt@hitachi.com,
	fweisbec@gmail.com, avi@redhat.com, davem@davemloft.net,
	sam@ravnborg.org, michael@ellerman.id.au,
	linux-kernel@vger.kernel.org, Ralf Baechle <ralf@linux-mips.org>
Subject: Re: [PATCH 0/2] jump label: update for .39
Date: Thu, 10 Mar 2011 09:27:47 -0800	[thread overview]
Message-ID: <4D790A13.4060705@caviumnetworks.com> (raw)
In-Reply-To: <1299771504.15854.347.camel@gandalf.stny.rr.com>

On 03/10/2011 07:38 AM, Steven Rostedt wrote:
> On Thu, 2011-03-10 at 09:11 -0500, Mathieu Desnoyers wrote:
>> * Steven Rostedt (rostedt@goodmis.org) wrote:
>>> On Wed, 2011-03-09 at 15:47 -0500, Jason Baron wrote:
>>>> Hi,
>>>>
>>>> Re-fresh of updates against latest -tip tree.
>>>
>>> Thanks Jason,
>>>
>>> I started looking at them, I should have comments tomorrow (if I have
>>> any comments ;)
>>>
>>>>
>>>> I've tried to split this update up somewhat, but I've only succeeded to split
>>>> out the dynamic debug bits. The interface changes and re-write are quite
>>>> intertwined.
>>>>
>>>> I believe this update should address all the comments from the previous posting
>>>> except for Mathieu's request for a section of jump label pointers that point to
>>>> the jump label structures (since the compiler might leave gaps in the jump label
>>>> structures).
>>>
>>> The jump label structures is a list of 3 pointers, correct? I doubt that
>>> gcc would place any holes in it as they are all aligned by natural word
>>> size.
>>>
>>
>> Hi Steven,
>>
>> Can you explain what would prevent gcc from aligning these 3 pointers
>> (total of 24 bytes on 64-bit architectures) on 32-bytes ?

I can:

http://www.x86-64.org/documentation/abi.pdf Section 3.1.2:

    Aggregates and Unions

    Structures and unions assume the alignment of their most strictly
    aligned component. Each member is assigned to the lowest
    available offset with the appropriate alignment. The size of any
    object is always a multiple of the object‘s alignment.

    An array uses the same alignment as its elements, except that a
    local or global array variable of length at least 16 bytes or a C99
    variable-length array variable always has alignment of at least 16
    bytes.

    Structure and union objects can require padding to meet size and
    alignment constraints. The contents of any padding is undefined.

I don't think it is explicitly stated, but it is also true that the size 
is the smallest value that meets the above constraints.


>> Also, could
>> you point out what would refrain the linker from aligning the start of
>> object sections on the next 32-bytes (thus power of two) address
>> multiple ?
>

The rules of the ABI are quite specific.  It would be a toolchain bug if 
this were messed up.



> Maybe it would be just easier to add another long ;)

Maybe we should audit all the data structures in the entire kernel and 
add manual padding to power of 2 boundaries.

>
> Seriously, it would. Then it would be 32 bytes on 64bit and 16 bytes on
> 32bit. Then I guess we can have our guarantee without doing a large
> change to have this indirect pointer and still waste sizeof(long) bytes
> in having it.
>
> Just insert a long "Reserved" word.
>

I disagree.  Wasting memory to work around non-existent hypothetical 
bugs seems wrong to me.

David Daney

  reply	other threads:[~2011-03-10 17:27 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-09 20:47 [PATCH 0/2] jump label: update for .39 Jason Baron
2011-03-09 20:47 ` [PATCH 1/2] jump label: introduce static_branch() interface Jason Baron
2011-03-10 20:54   ` Steven Rostedt
2011-03-10 20:56   ` Steven Rostedt
2011-03-11  2:05     ` Ralf Baechle
2011-03-11  2:15       ` Steven Rostedt
2011-03-10 21:01   ` Steven Rostedt
2011-03-10 21:18     ` Jason Baron
2011-03-11  2:02       ` Ralf Baechle
2011-03-09 20:47 ` [PATCH 2/2] dynamic debug: add jump label support Jason Baron
2011-03-10  3:36 ` [PATCH 0/2] jump label: update for .39 Steven Rostedt
2011-03-10 14:11   ` Mathieu Desnoyers
2011-03-10 14:46   ` Jason Baron
     [not found]   ` <BLU0-SMTP690BB959832A97E002293396C80@phx.gbl>
2011-03-10 15:38     ` Steven Rostedt
2011-03-10 17:27       ` David Daney [this message]
2011-03-10 18:04         ` Steven Rostedt
2011-03-10 18:20           ` Jason Baron
2011-03-10 18:35             ` Steven Rostedt
2011-03-10 18:47               ` David Daney
2011-03-10 18:53                 ` Steven Rostedt
2011-03-10 18:57                   ` David Daney
2011-03-10 19:25                     ` Steven Rostedt
2011-03-10 19:45                       ` Steven Rostedt
2011-03-10 19:53                         ` Jason Baron
2011-03-10 20:01                           ` Steven Rostedt
2011-03-10 21:22                         ` Mathieu Desnoyers
     [not found]                         ` <BLU0-SMTP311155BEBE5F141636A6E596C80@phx.gbl>
2011-03-10 21:42                           ` Steven Rostedt
2011-03-10 22:11                             ` David Daney
2011-03-10 22:24                               ` Steven Rostedt
2011-03-10 22:48                             ` Mathieu Desnoyers
     [not found]                             ` <BLU0-SMTP101D168109508CC1B82F0E496C80@phx.gbl>
2011-03-10 23:16                               ` Steven Rostedt
2011-03-10 23:25                                 ` David Daney
2011-03-10 23:32                                   ` Thomas Gleixner
2011-03-10 23:43                                     ` Steven Rostedt
2011-03-10 23:51                                       ` Thomas Gleixner
     [not found]                         ` <BLU0-SMTP39EE03AE86CF0F0E5C570596C80@phx.gbl>
2011-03-11  0:38                           ` Ralf Baechle
2011-03-11  1:19                             ` Michael Ellerman
2011-03-11  2:39                             ` Mathieu Desnoyers
2011-03-10 21:39                   ` Mathieu Desnoyers
2011-03-10 21:11         ` Mathieu Desnoyers
2011-03-10 21:14       ` Mathieu Desnoyers
     [not found]       ` <BLU0-SMTP2489AC44910467F37596A496C80@phx.gbl>
2011-03-10 21:34         ` Steven Rostedt
2011-03-10 22:02           ` Mathieu Desnoyers
2011-03-10 16:41 ` Jan Glauber

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=4D790A13.4060705@caviumnetworks.com \
    --to=ddaney@caviumnetworks.com \
    --cc=andi@firstfloor.org \
    --cc=avi@redhat.com \
    --cc=davem@davemloft.net \
    --cc=fweisbec@gmail.com \
    --cc=hpa@zytor.com \
    --cc=jbaron@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masami.hiramatsu.pt@hitachi.com \
    --cc=mathieu.desnoyers@polymtl.ca \
    --cc=michael@ellerman.id.au \
    --cc=mingo@elte.hu \
    --cc=peterz@infradead.org \
    --cc=ralf@linux-mips.org \
    --cc=roland@redhat.com \
    --cc=rostedt@goodmis.org \
    --cc=rth@redhat.com \
    --cc=sam@ravnborg.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox