all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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

  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.