WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Migrating away from the sparse tree.

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Migrating away from the sparse tree.
From: Ian Campbell <Ian.Campbell@xxxxxxxxxxxxx>
Date: Thu, 12 Apr 2007 13:35:50 +0100
Delivery-date: Thu, 12 Apr 2007 05:34:50 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
For some time now there has been talk of moving away from the sparse
tree structure used for Linux in the Xen releases.

A proposed patch is attached. It adds the infrastructure for supporting
different Linux source trees but leaves the default as the sparse tree
(see phase 2 below).

The sparse tree targets are factored into a separate file
(buildconfigs/src.sparse) which is selected based on
$(XEN_LINUX_SOURCE). I've also added buildconfigs/src.hg-clone and
example rules which use it to build RHEL4x and SLES9x kernels from
xenbits. e.g.
        make linux-2.6.9-RHEL-xen-build
        make linux-2.6.5-SLES-xen-build
would clone the relevant trees and build them. I'd also like to get a
tree based on the upstreaming effort integrated in a similar manner.

If there was a suitable tree available then
        make linux-2.6-xen-build XEN_LINUX_SOURCE=hg-clone 
XEN_LINUX_HGREPO=foo.hg
should also work.

Phase 2 would be to create the linux-2.6.18-xen.hg tree, switching the
default to use it and removing the sparse tree. This would involve
applying the patches directory + sparse tree to a 2.6.18 repository.

Ideally that would be a simple clone of the kernel.org tree, but:
        $ time hg clone http://www.kernel.org/hg/linux-2.6 upstream
        requesting all changes
        adding changesets
        adding manifests
        adding file changes
        added 51554 changesets with 440268 changes to 24323 files (+1 heads)
        21615 files updated, 0 files merged, 0 files removed, 0 files unresolved
        
        real    29m20.315s
        user    2m14.372s
        sys     0m17.345s

This is a tip tree so has more history than just a 2.6.18 clone but not
by enough to make a big dent in that half an hour. Unfortunately
mercurial doesn't yet appear to have support for dropping old history
from a repository[0].

We could create our own repository based on the 2.6.18 tarball which
would be much smaller but would have no history. For comparison the
rhel4x.hg repository (which uses essentially that scheme) took 1m48 to
clone (it's also on a local mirror so much nearer than kernel.org).

Anyone have any other ideas?

Ian.

[0] i.e. something like the proposed "punch" support discussed here:
http://www.selenic.com/mercurial/wiki/index.cgi/TrimmingHistory

Attachment: sparse-alts.patch
Description: Text Data

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] Migrating away from the sparse tree., Ian Campbell <=