[PATCH v7 8/9] ARM: vdso initialization, mapping, and synchronization

Andy Lutomirski luto at amacapital.net
Mon Jul 21 17:14:35 PDT 2014


On Wed, Jul 2, 2014 at 11:54 AM, Will Deacon <will.deacon at arm.com> wrote:
> Cheers for this, Andy.
>
> On Wed, Jul 02, 2014 at 07:34:22PM +0100, Andy Lutomirski wrote:
>> On Wed, Jul 2, 2014 at 10:24 AM, Will Deacon <will.deacon at arm.com> wrote:
>> > ELF Header:
>> >   Start of section headers:          1888 (bytes into file)
>> >   Size of section headers:           64 (bytes)
>> >   Number of section headers:         14
>>
>> That's 896 bytes for the section table, starting at offset 1888.
>>
>> >   Section header string table index: 13
>>
>>
>> >
>> > Section Headers:
>> >   [13] .shstrtab         STRTAB           0000000000000000  000006e8
>> >        0000000000000078  0000000000000000           0     0     1
>>
>> 120 bytes of section headers strings, starting at offset 1768 (and not
>> allocatable -- no 'A' here).
>>
>> >
>> > Program Headers:
>> >   Type           Offset             VirtAddr           PhysAddr
>> >                  FileSiz            MemSiz              Flags  Align
>> >   LOAD           0x0000000000000000 0x0000000000000000 0x0000000000000000
>> >                  0x00000000000006e8 0x00000000000006e8  R E    10
>>
>> The loadable segment is 1768 bytes long, starting at the beginning of
>> the file (and therefore the beginning of the mapping).
>>
>> So you have a total of 1016 bytes of non-allocatable stuff at the end
>> that I've accounted for.  I assume that the whole file is 2784 bytes.
>
> Correct.
>
>> If you added text or data to bring PT_LOAD to between 3081 and 4095
>> bytes, then the section headers and/or section string table would
>> cross a page boundary.
>
> Ok, so that explains why things are working at the moment and it sounds like
> we have some wiggle room too. I'll look at moving the datapage anyway, since
> having these artificial limits is error-prone and fragile, but I don't think
> it's something we need to panic about immediately.
>
> Also, if you get to the bottom of your binutils issues with the section
> allocation, that might work for us since we don't really have any legacy
> binutils supporting arm64.

Just in case anyone still cares about this thread, moving the vvar
area back before the vdso text is queued up for 3.17.  I gave up on
reliably keeping binutils happy with my ugly hack.

--Andy



More information about the linux-arm-kernel mailing list