{"thread":{"id":"29792","subject":"Running git on ARM systems","startedAt":"2012-03-01T05:11:16Z","lastAt":"2012-03-01T11:12:19Z","messageCount":5,"participants":["Andrew Ardill","Steven Noonan","solo-git@goeswhere.com"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"185783","messageId":"CAH5451=ngnGxpSd4+8xg1PwTSPOJ0napS+Y9KNVE_82a+n+GQQ@mail.gmail.com","threadId":"29792","inReplyTo":null,"subject":"Running git on ARM systems","fromName":"Andrew Ardill","fromEmail":"andrew.ardill@gmail.com","sentAt":"2012-03-01T05:11:16Z","receivedAt":"2012-03-01T05:11:16Z","isPatch":false,"sender":{"key":"andrew.ardill@gmail.com","avatar":"https://gravatar.com/avatar/da14cb7c091dd44dc6c63a4d3361b149acaf25226dc78eb4131a17b93d9b0993?d=mp&s=160"},"body":"Hi everyone,\n\nYou may have heard of the Raspberry Pi [1], a fully programmable\ncomputer the size of a credit card for $25-$35. It will run a linux\n(debian/fedora/arch) distribution on a 700 MHz ARM1176JZF-S core\n(ARM11 family) [2].\n\nMy one of these is on order, and the first thing I intend to do is\ninstall and test git. Has anyone had any experience running git on\nARM, or know if there are any potential issues? I will also try\ncompiling on the device itself, and was wondering if there is anything\nI will need to do especially for that architecture. I have done a\npreliminary google search and nothing striking came up, so any help\nwould be appreciated!\n\nThis device was designed to try and get kids into programming, and if\nwe are going to teach them how to hack we should give them the best\ntools available. Hopefully git works out of the box, but if not it\nwould be great to get it up and running before the education launch\n(probably later this year).\n\nRegards,\n\nAndrew Ardill\n\n[1] http://raspberrypi.org/\n[2] http://en.wikipedia.org/wiki/Raspberry_Pi#Specifications\n"},{"id":"185786","messageId":"CAKbGBLj5EcQ=DLqhTO9FPKJGyP-tw=HyGYEgAv_7vz_0erSDMA@mail.gmail.com","threadId":"29792","inReplyTo":"CAH5451=ngnGxpSd4+8xg1PwTSPOJ0napS+Y9KNVE_82a+n+GQQ@mail.gmail.com","subject":"Re: Running git on ARM systems","fromName":"Steven Noonan","fromEmail":"steven@uplinklabs.net","sentAt":"2012-03-01T05:31:48Z","receivedAt":"2012-03-01T05:31:48Z","isPatch":false,"sender":{"key":"steven@uplinklabs.net","avatar":"https://gravatar.com/avatar/b0cd397a10638433f76e084531aa0af3bef85f8fdb59b1ebe2ddaf168cd100e9?d=mp&s=160"},"body":"I've been using git on three different ARM boxes (TrimSlice,\nPandaBoard, i.MX53 Quick Start Board). It works okay, if a bit slow.\nEven on a small repository (< 1MB), git is a bit laggy, but that's\ntrue of most everything on those devices. It would be nice if they had\ndecent SATA controllers so I could attach some small SSDs or something\ninstead of relying on MicroSD or SD. I think you'll find the biggest\nproblem you will run into is memory usage when repacking or garbage\ncollecting, but you probably wouldn't really want to anyway (and if\nyou do, move the whole .git dir to something that can handle a proper\nrepack).\n\nI've never used the ARM11 processor though. My experience has been\nwith the ARM7 and ARM9, where I was -extremely- memory constrained\n(4MB of RAM if I recall) and couldn't really build anything on the\ndevice itself, as well as the Cortex-A8 and Cortex-A9 -- which was a\nhuge leap compared to the ARM7/ARM9, particularly since the newer\ndevices have a couple orders of magnitude more memory.\n\nWould be curious to see how one of the Raspberry Pi devices does\nrunning my incomplete and silly microbenchmarking tool\n(https://github.com/tycho/cpu-test-arm)... Perhaps I'll order one when\nthey're back in stock. :)\n\nIs there anything specific you wanted to know about git on such devices?\n\n- Steven\n\nOn Wed, Feb 29, 2012 at 9:11 PM, Andrew Ardill <andrew.ardill@gmail.com> wrote:\n>\n> Hi everyone,\n>\n> You may have heard of the Raspberry Pi [1], a fully programmable\n> computer the size of a credit card for $25-$35. It will run a linux\n> (debian/fedora/arch) distribution on a 700 MHz ARM1176JZF-S core\n> (ARM11 family) [2].\n>\n> My one of these is on order, and the first thing I intend to do is\n> install and test git. Has anyone had any experience running git on\n> ARM, or know if there are any potential issues? I will also try\n> compiling on the device itself, and was wondering if there is anything\n> I will need to do especially for that architecture. I have done a\n> preliminary google search and nothing striking came up, so any help\n> would be appreciated!\n>\n> This device was designed to try and get kids into programming, and if\n> we are going to teach them how to hack we should give them the best\n> tools available. Hopefully git works out of the box, but if not it\n> would be great to get it up and running before the education launch\n> (probably later this year).\n>\n> Regards,\n>\n> Andrew Ardill\n>\n> [1] http://raspberrypi.org/\n> [2] http://en.wikipedia.org/wiki/Raspberry_Pi#Specifications\n> --\n> To unsubscribe from this list: send the line \"unsubscribe git\" in\n> the body of a message to majordomo@vger.kernel.org\n> More majordomo info at  http://vger.kernel.org/majordomo-info.html\n"},{"id":"185788","messageId":"CAH5451=bQ=_Bn2tLRM5mBRSHA3BqMU7S=V1DxNaUeKxZ1G1XsA@mail.gmail.com","threadId":"29792","inReplyTo":"CAKbGBLj5EcQ=DLqhTO9FPKJGyP-tw=HyGYEgAv_7vz_0erSDMA@mail.gmail.com","subject":"Re: Running git on ARM systems","fromName":"Andrew Ardill","fromEmail":"andrew.ardill@gmail.com","sentAt":"2012-03-01T05:47:42Z","receivedAt":"2012-03-01T05:47:42Z","isPatch":false,"sender":{"key":"andrew.ardill@gmail.com","avatar":"https://gravatar.com/avatar/da14cb7c091dd44dc6c63a4d3361b149acaf25226dc78eb4131a17b93d9b0993?d=mp&s=160"},"body":"On 1 March 2012 16:31, Steven Noonan <steven@uplinklabs.net> wrote:\n> I've been using git on three different ARM boxes (TrimSlice,\n> PandaBoard, i.MX53 Quick Start Board). It works okay, if a bit slow.\n> Even on a small repository (< 1MB), git is a bit laggy, but that's\n> true of most everything on those devices. It would be nice if they had\n> decent SATA controllers so I could attach some small SSDs or something\n> instead of relying on MicroSD or SD. I think you'll find the biggest\n> problem you will run into is memory usage when repacking or garbage\n> collecting, but you probably wouldn't really want to anyway (and if\n> you do, move the whole .git dir to something that can handle a proper\n> repack).\n>\n> I've never used the ARM11 processor though. My experience has been\n> with the ARM7 and ARM9, where I was -extremely- memory constrained\n> (4MB of RAM if I recall) and couldn't really build anything on the\n> device itself, as well as the Cortex-A8 and Cortex-A9 -- which was a\n> huge leap compared to the ARM7/ARM9, particularly since the newer\n> devices have a couple orders of magnitude more memory.\n>\n> Would be curious to see how one of the Raspberry Pi devices does\n> running my incomplete and silly microbenchmarking tool\n> (https://github.com/tycho/cpu-test-arm)... Perhaps I'll order one when\n> they're back in stock. :)\n>\n> Is there anything specific you wanted to know about git on such devices?\n\nIt's good to hear that git has worked on these devices. Did you\ncompile it for them especially, and if so what did you have to do?\n\nThe RPi will have 256M ram, which is significantly better than what\nyou have been working with. I think my first real goal will be to\ncompile git on it. Hopefully it will be flawless!\n\nIn terms of running git on these devices, are there any limitations to\nthe functionality, barring memory constraints?\n\nThe device will also have USB ports, and I imagine the two most common\nuse cases will have the working directory on SD card and on USB hard\ndrive. I wonder how git will perform comparatively on each.\n\nRegards,\n\nAndrew Ardill\n"},{"id":"185791","messageId":"CAKbGBLgSiZ+iOb92837-EKpZ=ucdxb5kytNX0hYuYc21u7FS1Q@mail.gmail.com","threadId":"29792","inReplyTo":"CAH5451=bQ=_Bn2tLRM5mBRSHA3BqMU7S=V1DxNaUeKxZ1G1XsA@mail.gmail.com","subject":"Re: Running git on ARM systems","fromName":"Steven Noonan","fromEmail":"steven@uplinklabs.net","sentAt":"2012-03-01T06:56:29Z","receivedAt":"2012-03-01T06:56:29Z","isPatch":false,"sender":{"key":"steven@uplinklabs.net","avatar":"https://gravatar.com/avatar/b0cd397a10638433f76e084531aa0af3bef85f8fdb59b1ebe2ddaf168cd100e9?d=mp&s=160"},"body":"On Wed, Feb 29, 2012 at 9:47 PM, Andrew Ardill <andrew.ardill@gmail.com> wrote:\n> On 1 March 2012 16:31, Steven Noonan <steven@uplinklabs.net> wrote:\n>> I've been using git on three different ARM boxes (TrimSlice,\n>> PandaBoard, i.MX53 Quick Start Board). It works okay, if a bit slow.\n>> Even on a small repository (< 1MB), git is a bit laggy, but that's\n>> true of most everything on those devices. It would be nice if they had\n>> decent SATA controllers so I could attach some small SSDs or something\n>> instead of relying on MicroSD or SD. I think you'll find the biggest\n>> problem you will run into is memory usage when repacking or garbage\n>> collecting, but you probably wouldn't really want to anyway (and if\n>> you do, move the whole .git dir to something that can handle a proper\n>> repack).\n>>\n>> I've never used the ARM11 processor though. My experience has been\n>> with the ARM7 and ARM9, where I was -extremely- memory constrained\n>> (4MB of RAM if I recall) and couldn't really build anything on the\n>> device itself, as well as the Cortex-A8 and Cortex-A9 -- which was a\n>> huge leap compared to the ARM7/ARM9, particularly since the newer\n>> devices have a couple orders of magnitude more memory.\n>>\n>> Would be curious to see how one of the Raspberry Pi devices does\n>> running my incomplete and silly microbenchmarking tool\n>> (https://github.com/tycho/cpu-test-arm)... Perhaps I'll order one when\n>> they're back in stock. :)\n>>\n>> Is there anything specific you wanted to know about git on such devices?\n>\n> It's good to hear that git has worked on these devices. Did you\n> compile it for them especially, and if so what did you have to do?\n\nWell, on the ARM7/9 4MB RAM device, I have no OS. It's actually a\nNintendo DS Lite with no real headroom for that kind of thing. :)\n\nOn the newer devices, I have Linaro, with kernels I cross-compiled for\neach device. I found that replacing CONFIG_PREEMPT with\nCONFIG_PREEMPT_VOLUNTARY was necessary for decent overall performance,\nalong with disabling CONFIG_OMAP_32K_TIMER on the OMAP4-based system.\nThe Cortex-A8 and Cortex-A9 are based on the ARMv7 architecture and\nthe ARM11 in your Raspberry Pi will use the ARMv6 architecture. I'm\npretty sure Linaro builds ARMv7 binaries, in which case that won't be\nan option for you.\n\nIt looks like the Raspberry Pi will be supported by Debian, though, so\nthe instructions whether you used Linaro or Debian would be basically\nthe same: just 'apt-get install git' and you should be ready to rock.\n\nIf you really want to build it, you can. It just takes a while. Be\nprepared to go grab a snack while you wait for it to finish things.\nHere's how long things took on my OMAP4430 (PandaBoard):\n\nsnoonan@nerva ~/Development $ time git clone\ngit://git.uplinklabs.net/scm/git/snoonan/mirrors/git.git\nCloning into git...\nremote: Counting objects: 155044, done.\nremote: Compressing objects: 100% (38100/38100), done.\nremote: Total 155044 (delta 115235), reused 154745 (delta 114946)\nReceiving objects: 100% (155044/155044), 34.93 MiB | 5.05 MiB/s, done.\nResolving deltas: 100% (115235/115235), done.\n\nreal\t1m10.960s # NOTE: Most of this was the \"Resolving deltas\" stage\n(7-ish seconds to clone [from a server on LAN], 63-ish seconds for\ndeltas).\nuser\t0m59.260s\nsys\t0m6.860s\nsnoonan@nerva ~/Development $ cd git\nsnoonan@nerva ~/Development/git $ time make -j2 V=1 >/dev/null\nGIT_VERSION = 1.7.9.2.323.gf051a\n    * new build flags or prefix\n    * new link flags\nWriting perl.mak for Git\n14 translated messages.\nGITGUI_VERSION = 0.16.0\n    * new locations or Tcl/Tk interpreter\n520 translated messages.\n381 translated messages, 4 fuzzy translations, 6 untranslated messages.\n520 translated messages.\n514 translated messages.\n519 translated messages, 1 untranslated message.\n520 translated messages.\n474 translated messages, 39 untranslated messages.\n520 translated messages.\n516 translated messages, 4 untranslated messages.\n521 translated messages.\n366 translated messages, 7 fuzzy translations, 17 untranslated messages.\n289 translated messages.\n200 translated messages, 7 untranslated messages.\n276 translated messages, 4 fuzzy translations.\n288 translated messages.\n283 translated messages, 6 untranslated messages.\n284 translated messages.\n290 translated messages.\n245 translated messages.\n290 translated messages.\n\nreal\t6m15.970s\nuser\t10m13.280s\nsys\t0m57.640s\nsnoonan@nerva ~/Development/git $\n\nSo 6 minutes, 16 seconds with 2 make jobs. Compared to other platforms\nI have on hand...\n\n'make -j16' on an i7-2600K (3.4GHz, 4-core, 8-thread):\n\nreal\t0m15.428s\nuser\t1m33.691s\nsys\t0m10.416s\n\n'make -j64' on a dual Xeon X5670 (2.93GHz, 12-core, 24-thread):\n\nreal\t0m7.647s\nuser\t1m52.219s\nsys\t0m12.173s\n\nSo it's only 25x as long as the i7 and 50x as long as the Xeon. Not\n-terrible-, but obviously not competitive either. :)\n\nAlso, I'd recommend skipping builds of the documentation (man pages,\netc). It's a -very- slow and memory-hungry process. Even on the Xeon\nbox it takes a while with 'make -j64 doc':\n\nreal\t0m27.726s\nuser\t9m33.256s\nsys\t0m25.014s\n\n'make -j128 test' is longer still (again, dual Xeon box):\n\nreal\t1m42.696s\nuser\t3m9.611s\nsys\t1m43.343s\n\nSo if it takes this long on super high-end Intel boxes, consider how\nlong it would take on an ARM box. Probably want to avoid the\n'doc'/'man'/'test' targets!\n\n> The RPi will have 256M ram, which is significantly better than what\n> you have been working with. I think my first real goal will be to\n> compile git on it. Hopefully it will be flawless!\n\nOops, sorry, I wasn't really clear. The ARM7+ARM9 system had 4MB of\nRAM, but my new ARM systems have at least 512MB each (I think one has\n2GB and the others have 1GB).\n\n> In terms of running git on these devices, are there any limitations to\n> the functionality, barring memory constraints?\n\nThings are generally slower, but there's nothing really breaking any\nfunctionality, AFAICT.\n\n> The device will also have USB ports, and I imagine the two most common\n> use cases will have the working directory on SD card and on USB hard\n> drive. I wonder how git will perform comparatively on each.\n\nIt's hard to say. My TrimSlice has a SATA port, but it's implemented\nas a USB-to-SATA adapter (blech). Performance really blows on it.\n"},{"id":"185803","messageId":"20120301111219.GA1379@goeswhere.com","threadId":"29792","inReplyTo":"CAH5451=ngnGxpSd4+8xg1PwTSPOJ0napS+Y9KNVE_82a+n+GQQ@mail.gmail.com","subject":"Re: Running git on ARM systems","fromName":"","fromEmail":"solo-git@goeswhere.com","sentAt":"2012-03-01T11:12:19Z","receivedAt":"2012-03-01T11:12:19Z","isPatch":false,"sender":{"key":"solo-git@goeswhere.com","avatar":null},"body":"On Thu, Mar 01, 2012 at 04:11:16PM +1100, Andrew Ardill wrote:\n> Hi everyone,\n> \n> You may have heard of the Raspberry Pi [1], a fully programmable\n> computer the size of a credit card for $25-$35. It will run a linux\n> (debian/fedora/arch) distribution on a 700 MHz ARM1176JZF-S core\n> (ARM11 family) [2].\n\nThen there's things like the Nokia n900 / n950 devices; 'phones with\nMaemo (~= Debian) on them.  I've been using the git-core (installed via.\napt-get) on my n900 for backups and lightweight development for ages.\n\nThe main problem is the IO, in my experience, the device has 256MB of ram,\nbut only SD-card grade storage (like the Rasberry).\n\nARMv7, according to /proc/cpuinfo.\n\nPackage: http://maemo.org/packages/view/git-core/\n"}]}