indexabout

This is not kernel.org. It is a demonstration of Varnish Edge Side Includes in front of cgit, run by Varnish Software. The real kernel git hosting is at git.kernel.org, and nothing here is affiliated with or endorsed by kernel.org or the Linux Foundation.

The repository names, owners and descriptions below are taken from git.kernel.org's published manifest.js.gz. All 924 of them are served from a single clone of torvalds/linux.git, so every fork here shows identical refs. Real forks on kernel.org carry their maintainers' own branches; they do, however, genuinely share one object store the same way, which is what the forkgroup field in that manifest records.

What it is demonstrating

Konstantin Ryabitsev's Creepy crawlies reports that 14 to 16 of git.kernel.org's 90 cores are permanently busy rendering commits as HTML for scrapers. linux.git has about 1.48 million commits and lives in over 900 forks on that host, and crawlers walk every commit in every fork, through every diff option cgit accepts.

The set of distinct diffs behind all that traffic is far smaller than the set of URLs. A cache keyed on the URL stores one copy of a commit per fork. So cgit here is patched to cut each commit page in two: a cheap per-repository frame, and an <esi:include> of the rendered diff. The diff fragment carries no repository or branch anywhere in its bytes, so Varnish hashes it on the object ids alone and every fork shares one cached rendering.

Load any commit through two different fork names and compare. The pages differ in their header, breadcrumbs and clone URL; the diff below is byte-identical and was rendered once.

The code

  • github.com/perbu/cgit — cgit with enable-esi, the esi-diff page, the Varnish VCL in contrib/varnish/, and two independent performance patches in contrib/perf/.
  • Upstream cgit: git.zx2c4.com/cgit