this one got dropped too, and might contain useful information ---------- Forwarded message ---------- Date: Tue, 19 Oct 2004 16:06:33 -0400 From: Jakub Jelinek <jakub@redhat.com> To: Roland McGrath <roland@redhat.com> Cc: Rik van Riel <riel@redhat.com>, xen-devel@lists.sourceforge.net Subject: Re: NPTL/TLS "emulation" idea On Tue, Oct 19, 2004 at 12:45:01PM -0700, Roland McGrath wrote:> > A few weeks ago Roland, Jakub and myself brainstormed > > about this problem. One of the things that came up is > > that the positive (glibc private data) and -ve (TLS) > > data are not generally used at the same time. > > I am still brainstorming about this, but I will need to do some experiments > to figure out how some other funny ways of using segments actually work.If you allow modification of the user code by xen, then you can do some tricks. E.g. if an application doesn''t ever use %fs segment, you could rewrite the positive accesses from %gs segment prefix to %fs segment prefix and have %gs be an expand-down segment while %fs expand-up segment with the same base. The problem with this is that things break badly if the application wants to use %fs for its own purposes, or if it pokes at its own code (writing can be avoided by temporarily write protecting any pages where a rewrite has happened, but reading cannot). There is always the PaX trick - halving the address space and having non-overlapping %cs and %ds segments with some pages shared in between, but perhaps that''s too complicated. Jakub ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
> > > A few weeks ago Roland, Jakub and myself brainstormed > > > about this problem. One of the things that came up is > > > that the positive (glibc private data) and -ve (TLS) > > > data are not generally used at the same time. > > > > I am still brainstorming about this, but I will need to do some experiments > > to figure out how some other funny ways of using segments actually work. > > If you allow modification of the user code by xen, then you can do > some tricks. E.g. if an application doesn''t ever use %fs segment, > you could rewrite the positive accesses from %gs segment prefix to > %fs segment prefix and have %gs be an expand-down segment while %fs > expand-up segment with the same base. > > The problem with this is that things break badly if the application > wants to use %fs for its own purposes, or if it pokes at its own > code (writing can be avoided by temporarily write protecting any > pages where a rewrite has happened, but reading cannot).Yes, I was originally doing binary-rewriting tricks in Linux, but it just doesn''t work reliably. The main problem is that, if you patch the /lib/tls libraries in place (i.e., directly into the buffer-cache pages) then it is just about impossible to ensure the patches don''t end up on disc. The bad interaction is with the prelinker --- this reads the existing library (and so sees the patches) does some relocation and then writes a new library file; finally it moves the new library file in place of the old one. At that point the on-disc library contains the binary patches, and we crash on reboot (when the out-of-line fixup code has gone away).> There is always the PaX trick - halving the address space and having > non-overlapping %cs and %ds segments with some pages shared in between, > but perhaps that''s too complicated.Boggle. Yuk! Cheers, Keir ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel