Why the GTK+ wayland backend can't be enabled in linux distros, at all
Pierre-Loup A. Griffais
pgriffais at nvidia.com
Tue Mar 27 22:33:30 PDT 2012
On 03/27/2012 06:35 PM, Thiago Macieira wrote:
[...]
> 1) prelink refused to work on ELF modules with text relocations,
> which excluded the NVidia libs outright
I'm using the --reloc-only option, which works fine even on our non-PIC
x86 binaries.
> Prelinking helps with load time processing, but not with reducing
> memory footprint.
You'll find that this is wrong, it is necessary to achieve the results I
described below.
>> However, the linux ELF loader currently has a bug that causes the
>> second type of relocation to be overwritten even if prelink had
>> already initialized them to the correct value. This causes the
>> memory in the relocation sections to get dirtied without anything
>> being changed, which contradicts our goal.
>
> That might explain my results too.
>
>> Attached is a proof-of-concept patch which fixes this issue for the
>> x86_64 Linux ELF loader. By both applying this patch to the loader
>> and prelinking libnvidia-glcore.so, distros can reduce the memory
>> overhead of linking an application against the NVIDIA libGL to just
>> a few kB:
>
> Interesting. Those are very good results. Can you provide the same
> results when two applications are running? Our hope is that those
> 6544 kB of Private_Clean (which are sharable) become actually shared
> and move to Shared_Clean.
Yes, they do:
------
7fc000000000-7fc00192a000 r-xp 00000000 08:01 1591924
/usr/lib/libnvidia-glcore.so.295.33
Size: 25768 kB
Rss: 9108 kB
Pss: 3037 kB
Shared_Clean: 9108 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
Referenced: 9108 kB
Anonymous: 0 kB
AnonHugePages: 0 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Locked: 0 kB
7fc00192a000-7fc001b2a000 ---p 0192a000 08:01 1591924
/usr/lib/libnvidia-glcore.so.295.33
Size: 2048 kB
Rss: 0 kB
Pss: 0 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
Referenced: 0 kB
Anonymous: 0 kB
AnonHugePages: 0 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Locked: 0 kB
7fc001b2a000-7fc002309000 rwxp 0192a000 08:01 1591924
/usr/lib/libnvidia-glcore.so.295.33
Size: 8060 kB
Rss: 6592 kB
Pss: 3320 kB
Shared_Clean: 6544 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 48 kB
Referenced: 6592 kB
Anonymous: 48 kB
AnonHugePages: 0 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Locked: 0 kB
------
As you can see, everything functions as expected and the NVIDIA driver
isn't the problem here; it's very unfortunate that everyone already
relayed the opposite information.
> Has this patch been submitted to the glibc folks? They have just had
> a change of governance.
No, it's just a proof-of-concept at this stage. I'll submit it for
review later after cleaning it up and adding support for i386 relocations.
Thanks,
- Pierre-Loup
More information about the wayland-devel
mailing list