GNOME Bugzilla – Bug 160194
gnome-panel abuse of the FAM services
Last modified: 2006-09-29 10:00:02 UTC
while checking gamin debugging facilities, I dumped the set of connections registrered by applications to the gamin server. In a nutshell, the panel keeps nearly a hundred FAM monitors, and most of them are duplicated up to 5 times. I have no idea what is generating the dups, but that mean that each time there is a change the panel ends up generating 5 time more context switches as necessary, and need to process all events repeatedly. The code watching applications directories should probably be refactored ... Or there is an obvious bug somewhere. pid 2875 is gnome-panel Connection fd 21 to pid 2875: state okay, 0 read Listener has 98 subscriptions registered Subscription 98 reqno 1008 events 1008 dir 1: /usr/share/applications/kde/ Subscription 97 reqno 1008 events 1008 dir 1: /usr/share/applications/kde Subscription 96 reqno 1008 events 1008 dir 1: /usr/share/applications/ Subscription 95 reqno 1008 events 1008 dir 1: /u/veillard/.recently-used Subscription 94 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Development Subscription 93 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Utilities Subscription 92 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Multimedia Subscription 91 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Internet Subscription 90 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Applications Subscription 89 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Graphics Subscription 88 reqno 1008 events 1008 dir 1: /etc/X11/applnk/System Subscription 87 reqno 1008 events 1008 dir 1: /etc/X11/applnk Subscription 86 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Games Subscription 85 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Development Subscription 84 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Utilities Subscription 83 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/System Subscription 82 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Internet Subscription 81 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Multimedia Subscription 80 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Graphics Subscription 79 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps Subscription 78 reqno 1008 events 1008 dir 1: /usr/share/control-center-2.0/capplets Subscription 77 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Development Subscription 76 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Utilities Subscription 75 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Multimedia Subscription 74 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Internet Subscription 73 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Applications Subscription 72 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Graphics Subscription 71 reqno 1008 events 1008 dir 1: /etc/X11/applnk/System Subscription 70 reqno 1008 events 1008 dir 1: /etc/X11/applnk Subscription 69 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Games Subscription 68 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Development Subscription 67 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Utilities Subscription 66 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/System Subscription 65 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Internet Subscription 64 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Multimedia Subscription 63 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Graphics Subscription 62 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps Subscription 61 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Development Subscription 60 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Utilities Subscription 59 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Multimedia Subscription 58 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Internet Subscription 57 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Applications Subscription 56 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Graphics Subscription 55 reqno 1008 events 1008 dir 1: /etc/X11/applnk/System Subscription 54 reqno 1008 events 1008 dir 1: /etc/X11/applnk Subscription 53 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Games Subscription 52 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Development Subscription 51 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Utilities Subscription 50 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/System Subscription 49 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Internet Subscription 48 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Multimedia Subscription 47 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Graphics Subscription 46 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps Subscription 45 reqno 1008 events 1008 dir 1: /usr/share/control-center-2.0/capplets Subscription 44 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Development Subscription 43 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Utilities Subscription 42 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Multimedia Subscription 41 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Internet Subscription 40 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Applications Subscription 39 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Graphics Subscription 38 reqno 1008 events 1008 dir 1: /etc/X11/applnk/System Subscription 37 reqno 1008 events 1008 dir 1: /etc/X11/applnk Subscription 36 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Games Subscription 35 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Development Subscription 34 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Utilities Subscription 33 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/System Subscription 32 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Internet Subscription 31 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Multimedia Subscription 30 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Graphics Subscription 29 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps Subscription 28 reqno 1008 events 1008 dir 1: /usr/share/desktop-directories Subscription 27 reqno 1008 events 1008 dir 1: /usr/share/applications/kde Subscription 26 reqno 1008 events 1008 dir 1: /usr/share/applications Subscription 25 reqno 1008 events 1008 dir 1: /usr/share/applnk/Development Subscription 24 reqno 1008 events 1008 dir 1: /usr/share/applnk/Utilities Subscription 23 reqno 1008 events 1008 dir 1: /usr/share/applnk/Internet Subscription 22 reqno 1008 events 1008 dir 1: /usr/share/applnk/System Subscription 21 reqno 1008 events 1008 dir 1: /usr/share/applnk/Settings/Network Subscription 20 reqno 1008 events 1008 dir 1: /usr/share/applnk/Settings/System Subscription 19 reqno 1008 events 1008 dir 1: /usr/share/applnk/Settings Subscription 18 reqno 1008 events 1008 dir 1: /usr/share/applnk Subscription 17 reqno 1008 events 1008 dir 1: /usr/share/control-center-2.0/capplets Subscription 16 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Development Subscription 15 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Utilities Subscription 14 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Multimedia Subscription 13 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Internet Subscription 12 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Applications Subscription 11 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Graphics Subscription 10 reqno 1008 events 1008 dir 1: /etc/X11/applnk/System Subscription 9 reqno 1008 events 1008 dir 1: /etc/X11/applnk Subscription 8 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Games Subscription 7 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Development Subscription 6 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Utilities Subscription 5 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/System Subscription 4 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Internet Subscription 3 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Multimedia Subscription 2 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Graphics Subscription 1 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps Daniel
Moving to gnome-menus since it probably has the same problem, but if this is FC3/RHEL4 then it might be worth logging the bug against gnome-vfs2 since its a different codebase upstream.
it's from gnome-panel-2.8.1-3.2E and RHEL-4 beta Daniel
Okay, should be sorted on HEAD now: 2005-04-22 Mark McLoughlin <mark@skynet.ie> Use FAM directly instead of gnome-vfs and ensure that we only ever add a single FAM monitor any given path. Should fix bug #160194. Oh, also use the FAMNoExists() extension from gamin if available - should cut down on a whole heap of FAM traffic. * configure.in: don't require gnome-vfs, check for FAM and FAMNoExists(). * libmenu/Makefile.am: build menu-monitor.[ch] and link against libfam. * libmenu/menu-monitor.[ch]: add file/directory monitoring implementation using FAM. * libmenu/entry-directories.c, libmenu/gmenu-tree.c: use the internal monitoring API instead of gnome-vfs. * python/gmenu.c, util/test-menu-spec.c: (main): no need to initialize gnome-vfs anymore. * python/Makefile.am, util/Makefile.am: upd.
May I ask why gnome-vfs is not being used?