GNOME Bugzilla – Bug 73430
lots of redundant syscalls...
Last modified: 2009-08-15 18:40:50 UTC
Hi Daniel, I'm hoping this one is easy to fix; here is an strace -ttt trace of me calling xmlParseFile on a really quite small file :-) as you would expect I would not imagine that we need the umpteen redundant read syscalls all returning 0 :-) Any chance of a fix ? it gets worse with bigger files I have: [pid 4424] 1014818823.507812 read(10, "", 4096) = 0 ... [pid 4424] 1014818823.524004 read(10, "", 4096) = 0 [pid 4424] 1014818823.524106 close(10) = 0 Only 20ms I know, but over 62 servers = ~1 second of redundant sys callage ;-) I see the same phenomenon spiking both gconf, bonobo-activation and nautilus performance to a degree. Is it possible that this happened in libxml1 - if so a backport would be really wonderful :-) Thanks, Michael. [pid 4424] 1014818823.447528 open("/opt/ngnome2/etc/bonobo-activation/bonobo-activation-config.xml", O_RDONLY) = 3 [pid 4424] 1014818823.447681 fstat64(3, {st_mode=S_IFREG|0644, st_size=77, ...}) = 0 [pid 4424] 1014818823.447805 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x400d3000 [pid 4424] 1014818823.447920 read(3, "<?xml version=\"1.0\"?>\n\n<oafconfi"..., 16384) = 77 [pid 4424] 1014818823.494369 read(3, "", 12288) = 0 [pid 4424] 1014818823.496839 _llseek(3, 0, [77], SEEK_CUR) = 0 [pid 4424] 1014818823.497065 read(3, "", 4096) = 0 [pid 4424] 1014818823.497187 read(3, "", 4096) = 0 [pid 4424] 1014818823.497312 read(3, "", 4096) = 0 [pid 4424] 1014818823.497403 read(3, "", 4096) = 0 [pid 4424] 1014818823.497490 read(3, "", 4096) = 0 [pid 4424] 1014818823.497593 read(3, "", 4096) = 0 [pid 4424] 1014818823.497683 read(3, "", 4096) = 0 [pid 4424] 1014818823.497808 read(3, "", 4096) = 0 [pid 4424] 1014818823.497906 read(3, "", 4096) = 0 [pid 4424] 1014818823.498004 read(3, "", 4096) = 0 [pid 4424] 1014818823.498093 read(3, "", 4096) = 0 [pid 4424] 1014818823.498182 read(3, "", 4096) = 0 [pid 4424] 1014818823.498275 read(3, "", 4096) = 0 [pid 4424] 1014818823.498363 read(3, "", 4096) = 0 [pid 4424] 1014818823.498462 read(3, "", 4096) = 0 [pid 4424] 1014818823.498554 read(3, "", 4096) = 0 [pid 4424] 1014818823.498641 read(3, "", 4096) = 0 [pid 4424] 1014818823.498729 read(3, "", 4096) = 0 [pid 4424] 1014818823.498824 read(3, "", 4096) = 0 [pid 4424] 1014818823.498911 read(3, "", 4096) = 0 [pid 4424] 1014818823.499003 read(3, "", 4096) = 0 [pid 4424] 1014818823.499090 read(3, "", 4096) = 0 [pid 4424] 1014818823.499176 read(3, "", 4096) = 0 [pid 4424] 1014818823.499263 read(3, "", 4096) = 0 [pid 4424] 1014818823.499354 read(3, "", 4096) = 0 [pid 4424] 1014818823.499440 read(3, "", 4096) = 0 [pid 4424] 1014818823.499602 close(3) = 0
Okay, fixed in CVS, that was simple, I didn't even looked at the way it was done in libxml1. http://cvs.gnome.org/bonsai/cvsquery.cgi?module=gnome-xml&branch=HEAD&branchtype=match&dir=gnome-xml&file=&filetype=match&who=veillard&whotype=match&sortby=Date&hours=&date=explicit&mindate=03%2F05%2F02+15%3A27&maxdate=03%2F05%2F02+15%3A29&cvsroot=%2Fcvs%2Fgnome thanks for the report, Daniel
This should be fixed in the recent releases, thanks, Daniel