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

Re: Something is broken in repack

From
Jon Smirl <jonsmirl@gmail.com>
Date
Dec 11, 2007, 05:29 UTC
Message-ID
<9e4733910712102129v140c2affqf2e73e75855b61ea@mail.gmail.com>
In-Reply-To
<9e4733910712102125w56c70c0cxb8b00a060b62077@mail.gmail.com>

I added the gcc people to the CC, it's their repository. Maybe they can help up sort this out.

On 12/11/07, Jon Smirl <jonsmirl@gmail.com> wrote:
Show 103 quoted lines
> On 12/10/07, Nicolas Pitre <nico@cam.org> wrote:
> > On Mon, 10 Dec 2007, Jon Smirl wrote:
> >
> > > New run using same configuration. With the addition of the more
> > > efficient load balancing patches and delta cache accounting.
> > >
> > > Seconds are wall clock time. They are lower since the patch made
> > > threading better at using all four cores. I am stuck at 380-390% CPU
> > > utilization for the git process.
> > >
> > > complete seconds RAM
> > > 10%   60    900M (includes counting)
> > > 20%   15    900M
> > > 30%   15    900M
> > > 40%   50    1.2G
> > > 50%   80    1.3G
> > > 60%   70    1.7G
> > > 70%   140  1.8G
> > > 80%   180  2.0G
> > > 90%   280  2.2G
> > > 95%   530  2.8G - 1,420 total to here, previous was 1,983
> > > 100% 1390 2.85G
> > > During the writing phase RAM fell to 1.6G
> > > What is being freed in the writing phase??
> >
> > The cached delta results, but you put a cap of 256MB for them.
> >
> > Could you try again with that cache disabled entirely, with
> > pack.deltacachesize = 1 (don't use 0 as that means unbounded).
> >
> > And then, while still keeping the delta cache disabled, could you try
> > with pack.threads = 2, and pack.threads = 1 ?
> >
> > I'm sorry to ask you to do this but I don't have enough ram to even
> > complete a repack with threads=2 so I'm reattempting single threaded at
> > the moment.  But I really wonder if the threading has such an effect on
> > memory usage.
>
> I already have a threads = 1 running with this config. Binary and
> config were same from threads=4 run.
>
> 10% 28min 950M
> 40% 135min 950M
> 50% 157min 900M
> 60% 160min 830M
> 100% 170min 830M
>
> Something is hurting bad with threads. 170 CPU minutes with one
> thread, versus 195 CPU minutes with four threads.
>
> Is there a different memory allocator that can be used when
> multithreaded on gcc? This whole problem may be coming from the memory
> allocation function. git is hardly interacting at all on the thread
> level so it's likely a problem in the C run-time.
>
> [core]
>         repositoryformatversion = 0
>         filemode = true
>         bare = false
>         logallrefupdates = true
> [pack]
>         threads = 1
>         deltacachesize = 256M
>         windowmemory = 256M
>         deltacachelimit = 0
> [remote "origin"]
>         url = git://git.infradead.org/gcc.git
>         fetch = +refs/heads/*:refs/remotes/origin/*
> [branch "trunk"]
>         remote = origin
>         merge = refs/heads/trunk
>
>
>
>
> >
> >
> >
> > >
> > > I have no explanation for the change in RAM usage. Two guesses come to
> > > mind. Memory fragmentation. Or the change in the way the work was
> > > split up altered RAM usage.
> > >
> > > Total CPU time was 195 minutes in 70 minutes clock time. About 70%
> > > efficient. During the compress phase all four cores were active until
> > > the last 90 seconds. Writing the objects took over 23 minutes CPU
> > > bound on one core.
> > >
> > > New pack file is: 270,594,853
> > > Old one was: 344,543,752
> > > It still has 828,660 objects
> >
> > You mean the pack for the gcc repo is now less than 300MB?  Wow.
> >
> >
> > Nicolas
> >
>
>
> --
> Jon Smirl
> jonsmirl@gmail.com
>
-- 
Jon Smirl
jonsmirl@gmail.com
Previous: Jon SmirlNext: Jon Smirl
Message 34 of 82 in “Something is broken in repack”
  1. Jon SmirlDec 7, 2007
  2. Linus TorvaldsDec 8, 2007
  3. pack-objects: fix delta cache size accountingNicolas Pitre, Dec 8, 2007
  4. Nicolas PitreDec 8, 2007
  5. Jon SmirlDec 8, 2007
  6. Nicolas PitreDec 8, 2007
  7. Jon SmirlDec 8, 2007
  8. David BrownDec 8, 2007
  9. Jon SmirlDec 8, 2007
  10. Nicolas PitreDec 8, 2007
  11. Jon SmirlDec 8, 2007
  12. Nicolas PitreDec 8, 2007
  13. Harvey HarrisonDec 8, 2007
  14. Jon SmirlDec 8, 2007
  15. Harvey HarrisonDec 8, 2007
  16. Junio C HamanoDec 8, 2007
  17. Junio C HamanoDec 9, 2007
  18. Jon SmirlDec 9, 2007
  19. Jon SmirlDec 9, 2007
  20. Nicolas PitreDec 10, 2007
  21. Nicolas PitreDec 10, 2007
  22. David BrownDec 8, 2007
  23. Nicolas PitreDec 10, 2007
  24. Jon SmirlDec 10, 2007
  25. Morten WelinderDec 10, 2007
  26. Jon SmirlDec 11, 2007
  27. Junio C HamanoDec 11, 2007
  28. Nicolas PitreDec 11, 2007
  29. David KastrupDec 11, 2007
  30. Pierre HabouzitDec 11, 2007
  31. David KastrupDec 11, 2007
  32. Nicolas PitreDec 11, 2007
  33. Jon SmirlDec 11, 2007
  34. Jon SmirlDec 11, 2007
  35. Jon SmirlDec 11, 2007
  36. Andreas EricssonDec 11, 2007
  37. Nicolas PitreDec 11, 2007
  38. Nicolas PitreDec 11, 2007
  39. Jon SmirlDec 11, 2007
  40. Nicolas PitreDec 11, 2007
  41. Jon SmirlDec 11, 2007
  42. Nicolas PitreDec 12, 2007
  43. David KastrupDec 12, 2007
  44. Wolfram GlogerDec 14, 2007
  45. Nicolas PitreDec 12, 2007
  46. Paolo BonziniDec 12, 2007
  47. Linus TorvaldsDec 12, 2007
  48. David MillerDec 12, 2007
  49. Linus TorvaldsDec 12, 2007
  50. Jon SmirlDec 12, 2007
  51. Wolfram GlogerDec 14, 2007
  52. David KastrupDec 14, 2007
  53. Wolfram GlogerDec 14, 2007
  54. Nguyen Thai Ngoc DuyDec 13, 2007
  55. Paolo BonziniDec 13, 2007
  56. Paolo BonziniDec 13, 2007
  57. Johannes SixtDec 13, 2007
  58. Jakub NarebskiDec 14, 2007
  59. Paolo BonziniDec 14, 2007
  60. Nguyen Thai Ngoc DuyDec 14, 2007
  61. Paolo BonziniDec 14, 2007
  62. Harvey HarrisonDec 14, 2007
  63. Jakub NarebskiDec 14, 2007
  64. Nguyen Thai Ngoc DuyDec 14, 2007
  65. Nicolas PitreDec 14, 2007
  66. Nicolas PitreDec 12, 2007
  67. Andreas EricssonDec 13, 2007
  68. Wolfram GlogerDec 14, 2007
  69. Linus TorvaldsDec 11, 2007
  70. Nicolas PitreDec 11, 2007
  71. David MillerDec 11, 2007
  72. Nicolas PitreDec 11, 2007
  73. Andreas EricssonDec 11, 2007
  74. Jon SmirlDec 11, 2007
  75. Nicolas PitreDec 11, 2007
  76. Linus TorvaldsDec 11, 2007
  77. Junio C HamanoDec 11, 2007
  78. Andreas EricssonDec 11, 2007
  79. Daniel BerlinDec 11, 2007
  80. Nicolas PitreDec 11, 2007
  81. SeanDec 11, 2007
  82. Jon SmirlDec 11, 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.