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

Re: [PATCH] Increase packedGit{Limit,WindowSize} on 64 bit systems.

From
Junio C Hamano <junkio@cox.net>
Date
Jan 5, 2007, 06:01 UTC
Message-ID
<7v4pr6j9lb.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<20070105032808.GA14247@spearce.org>
"Shawn O. Pearce" <spearce@spearce.org> writes:
Show 5 quoted lines
> If we have a 64 bit address space we can easily afford to commit
> a larger amount of virtual address space to pack file access.
> So on these platforms we should increase the default settings of
> core.packedGit{Limit,WindowSize} to something that will better
> handle very large projects.
Hmmmm.  What's the reasoning behind this?

We have more than enough virtual memory anyway, we do not bother with our own mmap limit -- we will let the operating system worry about it.

If that is the reasoning, I have a feeling that we might want to be even more agressive. If you have a 1.5GB pack, wouldn't you rather map the whole thing in a single window, instead of splitting that into two?

Currently we are limited (by pack offset) to 4GB per pack, so raising the window max to 4GB might make sense.

On the total size of vm space, I am wondering what would happen if we make this unbounded. You certainly notice mmap() failure and fall back to recycle other windows even when your total usage is under the limit, don't you? Your later patches in the series even unmap the mapped but unused window lazily to make room for xmalloc() and friends, so I suspect it might even make it simpler not to have this limit especially on larger systems.

Previous: Shawn O. Pearce
Message 2 of 2 in “Increase packedGit{Limit,WindowSize} on 64 bit systems.”
  1. Increase packedGit{Limit,WindowSize} on 64 bit systems.Shawn O. Pearce, Jan 5, 2007
  2. Junio C HamanoJan 5, 2007

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.