Joerg Schilling wrote: > Another issue: Xsun did use mmap() to allocate bigger parts of memory in the > X server. If big memory leaking program like netscape died in former times, > Xsun did shrink. Today, we have firefox that itself allocates less memory than > before but rather forxes X to allocate more memory and Xorg is malloc() based > and this does not shrink when fireforx dies.......
We had to turn down Xsun's use of mmap() because it caused performance problems when programs like Netscape or the GNOME desktop had allocated hundreds of pixmaps per session, and you had dozens of sessions running on a Sun Ray server leading to TLB thrashing for all those new page mapping entries, especially on the UltraSPARC CPU's with small TLBs. There were also performance issues with pixmap allocation & deallocation becoming much more expensive, since mmap/mmunmap are far more expensive calls than malloc/free. (See for instance, the GNOME stock ticker issue described in the original DTrace Usenix paper, and http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=4757131 ) Even so, we've looked at porting those changes to Xorg before, and I released the Xsun code to Roland at one point when he volunteered to port it, but have never gotten it done. -- -Alan Coopersmith- alan.coopersmith at sun.com Sun Microsystems, Inc. - X Window System Engineering
