From: "T. V. Raman" <raman@users.sf.net>
Cc: raman@users.sf.net, emacs-devel@gnu.org
Subject: Re: Suggestion: vc-hooks.el: Make vc-handled-backends more conservative?
Date: Wed, 11 Oct 2006 06:28:53 -0700 [thread overview]
Message-ID: <17708.61845.863249.25290@gargle.gargle.HOWL> (raw)
In-Reply-To: <jwvac44lv5o.fsf-monnier+emacs@gnu.org>
Stephane --
Here is what caused me to chase down the problem.
Consider an environment where your home dir (and all users home
dirs) come from nfs and are visible as /home/user
Also assume that stat calls on nfs dirs is slow.
I found that everytime I opened a file or saved a buffer I saw
slowness. If the nfs filers were having a bad day then things in
emacs got really really bad.
I also observed by tailing /var/log/messages that the machine was
waiting on nfs responses for stat calls on /home/MCVS and
/home/{arch} --- neither of which existed --- but that still
meant you waited for the nfs system to say so.
After grepping around for {arch} and MCVS in the elisp sources I
saw that they showed up in VC -- I then toggled debug on quit
(which is what I should have done int he first place)--
saw where emacs was blocked, and the rest was easy --- since the
call in vc-find-root was the one that was initiating the stat
call on /home/MCVS and /home{arch} and since the code indicated
that the cleanest way to turn it off (clean == closest to point
of problem) was vc-ignore-dir-regexp that was the variable I
ended up setting.
Hope this helps--
>>>>> "Stefan" == Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> The last two --arch and MCVS have a particularly bad
>> performance penalty on systems that have NFS mounts in
>> places other than /net or /afs --- se variable
>> vc-ignore-dir-regexp
Stefan>
>> Unless one discovers the above variable
>> (vc-ignore-dir-regexp is declared as a defvar, and not as
>> defcustom) nfs based systems take a heavy performance hit
>> --- since function vc-find-root recursively ascends the
>> directory tree in attempting to check if files are under
>> version control.
Stefan>
>> Suggestions:
Stefan>
>> A) Possibly make vc-handled-backends more conservative by
>> pruning it to have RCS CVS and SVN on it by default.
Stefan>
>> B) Make vc-ignore-dir-regexp a customizable option via
>> defcustom, and add a pointer to it in the docstring for
>> vc-handled-backends so that users discover its purpose
Stefan>
Stefan> I think B is a good idea in general. Especially
Stefan> since vc-ignore-dir-regexp is useful not just for NFS
Stefan> mounts but for any other circumstance where the user
Stefan> wants to disable VC in some part of his file-system.
Stefan>
Stefan> I think A might be a good idea as well. MetaCVS is a
Stefan> rather obscure revision control system. GNU Arch is
Stefan> less so, but it's not that popular either. And there
Stefan> are several more still unsupported but whose support
Stefan> should hopefully come at some point (Mercury, bzr,
Stefan> git, DaRCS, monotone, codeville, OpenCM,
Stefan> you-name-it). So we most likely will not want *all*
Stefan> supported systems to be "active". Maybe now is not
Stefan> the worst time to start down that road.
Stefan>
>> In my case I chased it down by examining the source code
>> after observing that emacs was making excessive nfs
>> accesses during file load and save.
Stefan>
Stefan> Just to make sure that it can only be fixed with
Stefan> something like vc-ignore-dir-regexp, could you
Stefan> describe the particular circumstance where this
Stefan> happens, as well as describe as precisely as possible
Stefan> what actually happens?
Stefan>
Stefan>
Stefan> Stefan
--
Best Regards,
--raman
Email: raman@users.sf.net
WWW: http://emacspeak.sf.net/raman/
AIM: emacspeak GTalk: tv.raman.tv@gmail.com
PGP: http://emacspeak.sf.net/raman/raman-almaden.asc
Google: tv+raman
IRC: irc://irc.freenode.net/#emacs
next prev parent reply other threads:[~2006-10-11 13:28 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-10 1:44 Suggestion: vc-hooks.el: Make vc-handled-backends more conservative? T. V. Raman
2006-10-10 3:23 ` Stefan Monnier
2006-10-11 13:28 ` T. V. Raman [this message]
2006-10-11 18:28 ` Stefan Monnier
2006-10-13 1:31 ` T. V. Raman
2006-10-13 5:23 ` Stefan Monnier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=17708.61845.863249.25290@gargle.gargle.HOWL \
--to=raman@users.sf.net \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.