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

Re: Questions on GSoC 2019 Ideas

From
Matheus Tavares Bernardino <matheus.bernardino@usp.br>
Date
Mar 5, 2019, 23:46 UTC
Message-ID
<CAHd-oW4LsyZOgHYgKaACX8AtzbA8pBpFUPWSF3GF6XxA_HKfjA@mail.gmail.com>
In-Reply-To
<CACsJy8D-eQUGFsu4_cB9FE6gAo2d68EF_x2ze3YLXKAxYJfhSQ@mail.gmail.com>

This exercise of estimating a good spot to gain performance with parallelism at git seems more difficult than I thought, firstly. Also, I'm not that familiar yet with git packing (neither with the sections of it that could benefit from parallelism). So could anyone point me some good references on this, where I could study and maybe come back with more valuable suggestions?

On Tue, Mar 5, 2019 at 9:57 AM Duy Nguyen <pclouds@gmail.com> wrote:
Show 8 quoted lines
>
> On Tue, Mar 5, 2019 at 11:51 AM Jeff King <peff@peff.net> wrote:
> > > processing power from multiple cores, but about _not_ blocking. I
> > > think one example use case here is parallel checkout. While one thread
> > > is blocked by pack access code for whatever reason, the others can
> > > still continue doing other stuff (e.g. write the checked out file to
> > > disk) or even access the pack again to check more things out.
> >

Hmm, you mean distributing the process of inflating, reconstructing deltas and checking out files between the threads? (having each one doing the process for a different file?)

Show 11 quoted lines
> > I'm not sure if it would help much for packs, because they're organized
> > to have pretty good cold-cache read-ahead behavior. But who knows until
> > we measure it.
> >
> > I do suspect that inflating (and delta reconstruction) done in parallel
> > could be a win for git-grep, especially if you have a really simple
> > regex that is quick to search.
>
> Maybe git-blame too. But this is based purely on me watching CPU
> utilization of one command with hot cache. For git-blame though, diff
> code as to be thread safe too but that's another story.
I don't know if this relates to parallelizing pack access, but I
thought that sharing this with you all could perhaps bring some new
insights (maybe even on parallelizing some other git section): I asked
my friends who contribute to the Linux Kernel what git commands seems
to take longer during their kernel work, and the answers were:
- git log and git status, sometimes
- using pager's search at git log
- checking out to an old commit
- git log --oneline --decorate --graph
Previous: Duy NguyenNext: Duy Nguyen
Message 10 of 24 in “Questions on GSoC 2019 Ideas”
  1. Matheus Tavares BernardinoFeb 28, 2019
  2. Christian CouderFeb 28, 2019
  3. Duy NguyenMar 1, 2019
  4. Thomas GummererMar 2, 2019
  5. Christian CouderMar 3, 2019
  6. Duy NguyenMar 3, 2019
  7. Duy NguyenMar 3, 2019
  8. Jeff KingMar 5, 2019
  9. Duy NguyenMar 5, 2019
  10. Matheus Tavares BernardinoMar 5, 2019
  11. Duy NguyenMar 6, 2019
  12. Matheus Tavares BernardinoMar 12, 2019
  13. Duy NguyenMar 12, 2019
  14. Duy NguyenMar 12, 2019
  15. Matheus Tavares BernardinoApr 4, 2019
  16. Christian CouderApr 4, 2019
  17. Mike HommeyApr 4, 2019
  18. Matheus Tavares BernardinoApr 5, 2019
  19. Christian CouderApr 7, 2019
  20. Matheus Tavares BernardinoMar 5, 2019
  21. Thomas GummererMar 6, 2019
  22. Duy NguyenMar 3, 2019
  23. Thomas GummererMar 3, 2019
  24. Johannes SchindelinMar 1, 2019

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.