git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/7] Switch git_mmap to use pread.

From
Shawn Pearce <spearce@spearce.org>
Date
Dec 24, 2006, 20:13 UTC
Message-ID
<20061224201304.GA631@spearce.org>
In-Reply-To
<Pine.LNX.4.63.0612241407250.19693@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
Show 13 quoted lines
> On Sun, 24 Dec 2006, Shawn O. Pearce wrote:
> > Now that Git depends on pread in index-pack its safe to say we can
> > also depend on it within the git_mmap emulation we activate when
> > NO_MMAP is set.  On most systems pread should be slightly faster
> > than an lseek/read/lseek sequence as its one system call vs. three
> > system calls.
> 
> I don't think it matters much. The _only_ platform we really use NO_MMAP 
> (other than for testing) is Windows, and AFAICT it does not have pread(), 
> so it is emulated by lseek/read/lseek anyway.
> 
> But it's a cleanup, and it deletes more lines than it adds, so Ack from 
> me.

Right - that's why I did it. I was already in there doing other work and discovered that we had a lot of lines just to avoid using pread. Initially that may have been because we were trying to avoid using it, but now that one of our more important tools (index-pack) depends on it... ;-)

I'm actually thinking of doing a NO_PACK_MMAP, especially for systems like Mac OS X where the mmap() of small chunks appears to perform so poorly. Setting NO_PACK_MMAP and just using smaller windows (1 MiB) might be worthwhile. Though in that case we may just want to compile with NO_MMAP.

-- 
Shawn.
Previous: Alon ZivNext: Linus Torvalds
Message 4 of 13 in “Switch git_mmap to use pread.”
  1. 2/7 Switch git_mmap to use pread.Shawn O. Pearce, Dec 24, 2006
  2. Johannes SchindelinDec 24, 2006
  3. Alon ZivDec 24, 2006
  4. Shawn PearceDec 24, 2006
  5. Linus TorvaldsDec 24, 2006
  6. 3/7 Ensure packed_git.next is initialized to NULL.Shawn O. Pearce, Dec 24, 2006
  7. 4/7 Default core.packdGitWindowSize to 1 MiB if NO_MMAP.Shawn O. Pearce, Dec 24, 2006
  8. 5/7 Don't exit successfully on EPIPE in read_or_die.Shawn O. Pearce, Dec 24, 2006
  9. 6/7 Release pack windows before reporting out of memory.Shawn O. Pearce, Dec 24, 2006
  10. Johannes SchindelinDec 24, 2006
  11. 7/7 Replace mmap with xmmap, better handling MAP_FAILED.Shawn O. Pearce, Dec 24, 2006
  12. Johannes SchindelinDec 24, 2006
  13. Shawn PearceDec 24, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.