[olpc-software] XRes Improvements

Daniel P. Berrange berrange at redhat.com
Tue Mar 14 16:04:31 UTC 2006


On Tue, Mar 14, 2006 at 03:45:58PM +0000, Matthew Allum wrote:
> Hi;
> 
> Last night I got a bit inspired by the comments re 'Server side pixmap
> usage' on http://fedoraproject.org/wiki/OLPC/Optimization and the
> limitation of XRes not being able to dump pixmap ID's for a client.
> 
> http://o-hand.com/~mallum/xres/ contains patches for kdrive, ResourceExt
> and XRes ( all against f.d.o CVS ) which extend XRes with a new call -
> XResQueryClientPixmaps (). This gets all pixmap IDs for a connected
> client. 
> 
> See xlspixmaps.c in above dir for a simple example of usage. Also,
> gxlspixmaps.c which rather hackerly displays discovered pixmaps -
> http://o-hand.com/~mallum/xres/gxlspixmaps.png is a screenshot showing
> firefox's pixmaps. This is pretty interesting especially whats left when
> you clear browser cache.
> 
> Also there is some other suckage in current XRes, namely inaccurate
> pixmap memory usage reporting, shared pixmaps and window background
> pixmaps getting ignored, see
> https://bugs.freedesktop.org/show_bug.cgi?id=2029 for more info. 
> 
> Hope all this is some use. Would be interested if any issues are
> discovered.

Absolutely this is useful :-) I've been working on this problem from a
completely different technical angle. I created an LD_PRELOAD hack
which intercepts the XCreatePixmap & XFreePixmap operations to log
the timing & all parameters of these two calls, and at time of XFreePixmap
call auto-dump it to a TIFF file. A little post-processing was used to
generate HTML pages display all pixmaps at specific points in time,
along with stack trace of the code allocating / freeing them.

This extension to XRes is definitely a more pleasent way of capturing
the list of active pixmaps, since it doesn't require changing the way
an app runs before hand & thus much simpler for your typical user or 
developer to use.  

So this is quite nicely complementary to the LD_PRELOAD hack I've done, 
since the xlspixmaps program will let people easily discover any troublesome
applications, and the LD_PRELOAD can then be used to monitor call traces
to identify the problem code.

Regards,
Dan.
-- 
|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 




More information about the olpc-software mailing list