summaryrefslogtreecommitdiff
path: root/cache-tree.c
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2006-08-27 05:53:48 -0400
committerShawn O. Pearce <spearce@spearce.org>2007-01-14 02:15:08 -0500
commit53dbce78a2a018bd2828d3ecc4123015f88ae36f (patch)
tree53c96371e3b859732d5582952320ebf75056c8e9 /cache-tree.c
parent35ef237cf630418c2e45752eb527268693a2895b (diff)
downloadgit-53dbce78a2a018bd2828d3ecc4123015f88ae36f.tar.gz
Map only part of the generated pack file at any point in time.
When generating a very large pack file (for example close to 1 GB in size) it may be impossible for the kernel to find a contiguous free range within a 32 bit address space for the mapping to be located at. This is especially problematic on large imports where there is a lot of malloc activity occuring within the same process and the malloc'd regions may straddle the previously mapped regions, thereby creating large holes in the address space. So instead we map only 128 MB of the pack at any given time. This will likely increase the number of times the file gets mapped (with additional system time required to update the page tables more frequently) but will allow the program to handle packs up to 4 GB in size. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'cache-tree.c')
0 files changed, 0 insertions, 0 deletions