From: Jakub Jelinek <jakub@redhat.com>
To: Jan Hubicka <jh@suse.cz>
Cc: Lubos Lunak <l.lunak@sh.cvut.cz>,
rth@cygnus.com, gcc-patches@gcc.gnu.org, patches@x86-64.org
Subject: Re: KDE a gcc
Date: Tue, 13 Nov 2001 04:26:00 -0000 [thread overview]
Message-ID: <20011112100851.P4087@devserv.devel.redhat.com> (raw)
Message-ID: <20011113042600.QOrn78Iz5PLQ5KsZDNXfy1fx_stRGMhfGiUuBMpPk1Y@z> (raw)
In-Reply-To: <20011112155258.H8833@atrey.karlin.mff.cuni.cz>; from jh@suse.cz on Mon, Nov 12, 2001 at 03:52:58PM +0100
On Mon, Nov 12, 2001 at 03:52:58PM +0100, Jan Hubicka wrote:
> Hi,
> this patch implements idea described in:
> > http://dforce.sh.cvut.cz/~seli/en/linking2/#data_segment
>
> basically in KDE/QT applications there is lots of pregenerated data that is
> read only, but in PIC compilation it isn't because of dynamic linking. This
> code is intermixed with other readwrite data then. With prelinking this is a
> waste, as the pregenereated data is really readonly so it should be put
> together and without it is waste too, as dynamic linker needs to COW much more
> pages.
>
> This patch adds two new sections. .data.rel is used for read/write data that
> contains relocations (so it will be COWed on startup in case no prelinking is
> done) and .data.rel.ro contains read/only data with relocations that are
> read-only for prelinking and COWed on startup.
>
> Lubos measured about 60Kb saving on simple QT application requiring about 500Kb
> resources with the prelinking. He estimates savings for KDE application to
> about 200Kb. I made simple test with sartup time on the c++ library from
> crystal space w/o prelinking and got about 6% savings in startup time too.
>
> Note that I am not quite sure whether .data.rel / .data.rel.ro are handled as
> .data subsections on all systems. The patch uses the named sections by
> default, but allows to define new opcodes for that too, hope it is flexible
> enought and will not bring considerable compatibility issues.
As the patch is missing, I cannot comment on it, but only guess.
Is .data.rel for R/W data which need relocations?
I had in mind .data.ro.rel and .data.ro.localrel where the former would be
R/O data which is expected to have dynamic relocation while the latter would
be for R/O data which is expected to have just relative relocations.
E.g. in
extern char foo[];
char * const p[] = { foo };
char * const q[] = { "foo" };
p would go into .data.ro.rel and q into .data.ro.localrel.
For prelinking, the advantage would be that data which would be never
relocated would be put together (there will be just a R_*_RELATIVE reloc
against q and prelinked libs are already relocated to the address they will
be mapped to (unless something gets in the way)), while .data.ro.rel might
be runtime relocated.
Jakub
next prev parent reply other threads:[~2001-11-12 15:10 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200110030715.f937FCT75772@ns.felk.cvut.cz>
[not found] ` <200110312108.WAA21661@stoupa.sh.cvut.cz>
[not found] ` <20011101145241.E31305@atrey.karlin.mff.cuni.cz>
[not found] ` <200111011733.SAA25987@stoupa.sh.cvut.cz>
2001-11-02 10:58 ` Jan Hubicka
2001-11-02 11:24 ` Jakub Jelinek [this message]
2001-11-02 12:25 ` [patches] " Jan Hubicka
2001-11-12 12:11 ` Jan Hubicka
2001-11-13 4:26 ` Jan Hubicka
2001-11-13 15:03 ` Jan Hubicka
2001-11-12 12:11 ` Jakub Jelinek
2001-11-13 4:26 ` Jakub Jelinek
2001-11-13 15:03 ` Jakub Jelinek
2001-11-02 12:23 ` [patches] " Jan Hubicka
2001-11-12 12:11 ` Jan Hubicka
2001-11-13 4:26 ` Jan Hubicka
2001-11-13 15:03 ` Jan Hubicka
[not found] ` <20011112092319.A15349@redhat.com>
2001-11-13 15:03 ` Jan Hubicka
2001-11-13 15:03 ` Jakub Jelinek
2001-11-13 15:03 ` Jakub Jelinek
2001-11-13 15:03 ` KDE and gcc take III Jan Hubicka
2001-11-14 7:28 ` Richard Henderson
2001-11-14 8:35 ` Jan Hubicka
2001-11-14 11:17 ` Richard Henderson
2001-11-24 12:26 ` Richard Henderson
2001-11-24 11:20 ` Jan Hubicka
2001-11-24 11:10 ` Richard Henderson
2001-11-22 5:06 ` Jan Hubicka
2001-11-22 1:32 ` [patches] Re: KDE a gcc Jakub Jelinek
2001-11-12 12:11 ` Jan Hubicka
2001-11-13 4:26 ` Jan Hubicka
2001-11-13 15:03 ` Jan Hubicka
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=20011112100851.P4087@devserv.devel.redhat.com \
--to=jakub@redhat.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=jh@suse.cz \
--cc=l.lunak@sh.cvut.cz \
--cc=patches@x86-64.org \
--cc=rth@cygnus.com \
/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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).