* Running git on ARM systems
@ 2012-03-01 5:11 Andrew Ardill
2012-03-01 5:31 ` Steven Noonan
2012-03-01 11:12 ` solo-git
0 siblings, 2 replies; 5+ messages in thread
From: Andrew Ardill @ 2012-03-01 5:11 UTC (permalink / raw)
To: git
Hi everyone,
You may have heard of the Raspberry Pi [1], a fully programmable
computer the size of a credit card for $25-$35. It will run a linux
(debian/fedora/arch) distribution on a 700 MHz ARM1176JZF-S core
(ARM11 family) [2].
My one of these is on order, and the first thing I intend to do is
install and test git. Has anyone had any experience running git on
ARM, or know if there are any potential issues? I will also try
compiling on the device itself, and was wondering if there is anything
I will need to do especially for that architecture. I have done a
preliminary google search and nothing striking came up, so any help
would be appreciated!
This device was designed to try and get kids into programming, and if
we are going to teach them how to hack we should give them the best
tools available. Hopefully git works out of the box, but if not it
would be great to get it up and running before the education launch
(probably later this year).
Regards,
Andrew Ardill
[1] http://raspberrypi.org/
[2] http://en.wikipedia.org/wiki/Raspberry_Pi#Specifications
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Running git on ARM systems
2012-03-01 5:11 Running git on ARM systems Andrew Ardill
@ 2012-03-01 5:31 ` Steven Noonan
2012-03-01 5:47 ` Andrew Ardill
2012-03-01 11:12 ` solo-git
1 sibling, 1 reply; 5+ messages in thread
From: Steven Noonan @ 2012-03-01 5:31 UTC (permalink / raw)
To: Andrew Ardill; +Cc: git
I've been using git on three different ARM boxes (TrimSlice,
PandaBoard, i.MX53 Quick Start Board). It works okay, if a bit slow.
Even on a small repository (< 1MB), git is a bit laggy, but that's
true of most everything on those devices. It would be nice if they had
decent SATA controllers so I could attach some small SSDs or something
instead of relying on MicroSD or SD. I think you'll find the biggest
problem you will run into is memory usage when repacking or garbage
collecting, but you probably wouldn't really want to anyway (and if
you do, move the whole .git dir to something that can handle a proper
repack).
I've never used the ARM11 processor though. My experience has been
with the ARM7 and ARM9, where I was -extremely- memory constrained
(4MB of RAM if I recall) and couldn't really build anything on the
device itself, as well as the Cortex-A8 and Cortex-A9 -- which was a
huge leap compared to the ARM7/ARM9, particularly since the newer
devices have a couple orders of magnitude more memory.
Would be curious to see how one of the Raspberry Pi devices does
running my incomplete and silly microbenchmarking tool
(https://github.com/tycho/cpu-test-arm)... Perhaps I'll order one when
they're back in stock. :)
Is there anything specific you wanted to know about git on such devices?
- Steven
On Wed, Feb 29, 2012 at 9:11 PM, Andrew Ardill <andrew.ardill@gmail.com> wrote:
>
> Hi everyone,
>
> You may have heard of the Raspberry Pi [1], a fully programmable
> computer the size of a credit card for $25-$35. It will run a linux
> (debian/fedora/arch) distribution on a 700 MHz ARM1176JZF-S core
> (ARM11 family) [2].
>
> My one of these is on order, and the first thing I intend to do is
> install and test git. Has anyone had any experience running git on
> ARM, or know if there are any potential issues? I will also try
> compiling on the device itself, and was wondering if there is anything
> I will need to do especially for that architecture. I have done a
> preliminary google search and nothing striking came up, so any help
> would be appreciated!
>
> This device was designed to try and get kids into programming, and if
> we are going to teach them how to hack we should give them the best
> tools available. Hopefully git works out of the box, but if not it
> would be great to get it up and running before the education launch
> (probably later this year).
>
> Regards,
>
> Andrew Ardill
>
> [1] http://raspberrypi.org/
> [2] http://en.wikipedia.org/wiki/Raspberry_Pi#Specifications
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Running git on ARM systems
2012-03-01 5:31 ` Steven Noonan
@ 2012-03-01 5:47 ` Andrew Ardill
2012-03-01 6:56 ` Steven Noonan
0 siblings, 1 reply; 5+ messages in thread
From: Andrew Ardill @ 2012-03-01 5:47 UTC (permalink / raw)
To: Steven Noonan; +Cc: git
On 1 March 2012 16:31, Steven Noonan <steven@uplinklabs.net> wrote:
> I've been using git on three different ARM boxes (TrimSlice,
> PandaBoard, i.MX53 Quick Start Board). It works okay, if a bit slow.
> Even on a small repository (< 1MB), git is a bit laggy, but that's
> true of most everything on those devices. It would be nice if they had
> decent SATA controllers so I could attach some small SSDs or something
> instead of relying on MicroSD or SD. I think you'll find the biggest
> problem you will run into is memory usage when repacking or garbage
> collecting, but you probably wouldn't really want to anyway (and if
> you do, move the whole .git dir to something that can handle a proper
> repack).
>
> I've never used the ARM11 processor though. My experience has been
> with the ARM7 and ARM9, where I was -extremely- memory constrained
> (4MB of RAM if I recall) and couldn't really build anything on the
> device itself, as well as the Cortex-A8 and Cortex-A9 -- which was a
> huge leap compared to the ARM7/ARM9, particularly since the newer
> devices have a couple orders of magnitude more memory.
>
> Would be curious to see how one of the Raspberry Pi devices does
> running my incomplete and silly microbenchmarking tool
> (https://github.com/tycho/cpu-test-arm)... Perhaps I'll order one when
> they're back in stock. :)
>
> Is there anything specific you wanted to know about git on such devices?
It's good to hear that git has worked on these devices. Did you
compile it for them especially, and if so what did you have to do?
The RPi will have 256M ram, which is significantly better than what
you have been working with. I think my first real goal will be to
compile git on it. Hopefully it will be flawless!
In terms of running git on these devices, are there any limitations to
the functionality, barring memory constraints?
The device will also have USB ports, and I imagine the two most common
use cases will have the working directory on SD card and on USB hard
drive. I wonder how git will perform comparatively on each.
Regards,
Andrew Ardill
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Running git on ARM systems
2012-03-01 5:47 ` Andrew Ardill
@ 2012-03-01 6:56 ` Steven Noonan
0 siblings, 0 replies; 5+ messages in thread
From: Steven Noonan @ 2012-03-01 6:56 UTC (permalink / raw)
To: Andrew Ardill; +Cc: git
On Wed, Feb 29, 2012 at 9:47 PM, Andrew Ardill <andrew.ardill@gmail.com> wrote:
> On 1 March 2012 16:31, Steven Noonan <steven@uplinklabs.net> wrote:
>> I've been using git on three different ARM boxes (TrimSlice,
>> PandaBoard, i.MX53 Quick Start Board). It works okay, if a bit slow.
>> Even on a small repository (< 1MB), git is a bit laggy, but that's
>> true of most everything on those devices. It would be nice if they had
>> decent SATA controllers so I could attach some small SSDs or something
>> instead of relying on MicroSD or SD. I think you'll find the biggest
>> problem you will run into is memory usage when repacking or garbage
>> collecting, but you probably wouldn't really want to anyway (and if
>> you do, move the whole .git dir to something that can handle a proper
>> repack).
>>
>> I've never used the ARM11 processor though. My experience has been
>> with the ARM7 and ARM9, where I was -extremely- memory constrained
>> (4MB of RAM if I recall) and couldn't really build anything on the
>> device itself, as well as the Cortex-A8 and Cortex-A9 -- which was a
>> huge leap compared to the ARM7/ARM9, particularly since the newer
>> devices have a couple orders of magnitude more memory.
>>
>> Would be curious to see how one of the Raspberry Pi devices does
>> running my incomplete and silly microbenchmarking tool
>> (https://github.com/tycho/cpu-test-arm)... Perhaps I'll order one when
>> they're back in stock. :)
>>
>> Is there anything specific you wanted to know about git on such devices?
>
> It's good to hear that git has worked on these devices. Did you
> compile it for them especially, and if so what did you have to do?
Well, on the ARM7/9 4MB RAM device, I have no OS. It's actually a
Nintendo DS Lite with no real headroom for that kind of thing. :)
On the newer devices, I have Linaro, with kernels I cross-compiled for
each device. I found that replacing CONFIG_PREEMPT with
CONFIG_PREEMPT_VOLUNTARY was necessary for decent overall performance,
along with disabling CONFIG_OMAP_32K_TIMER on the OMAP4-based system.
The Cortex-A8 and Cortex-A9 are based on the ARMv7 architecture and
the ARM11 in your Raspberry Pi will use the ARMv6 architecture. I'm
pretty sure Linaro builds ARMv7 binaries, in which case that won't be
an option for you.
It looks like the Raspberry Pi will be supported by Debian, though, so
the instructions whether you used Linaro or Debian would be basically
the same: just 'apt-get install git' and you should be ready to rock.
If you really want to build it, you can. It just takes a while. Be
prepared to go grab a snack while you wait for it to finish things.
Here's how long things took on my OMAP4430 (PandaBoard):
snoonan@nerva ~/Development $ time git clone
git://git.uplinklabs.net/scm/git/snoonan/mirrors/git.git
Cloning into git...
remote: Counting objects: 155044, done.
remote: Compressing objects: 100% (38100/38100), done.
remote: Total 155044 (delta 115235), reused 154745 (delta 114946)
Receiving objects: 100% (155044/155044), 34.93 MiB | 5.05 MiB/s, done.
Resolving deltas: 100% (115235/115235), done.
real 1m10.960s # NOTE: Most of this was the "Resolving deltas" stage
(7-ish seconds to clone [from a server on LAN], 63-ish seconds for
deltas).
user 0m59.260s
sys 0m6.860s
snoonan@nerva ~/Development $ cd git
snoonan@nerva ~/Development/git $ time make -j2 V=1 >/dev/null
GIT_VERSION = 1.7.9.2.323.gf051a
* new build flags or prefix
* new link flags
Writing perl.mak for Git
14 translated messages.
GITGUI_VERSION = 0.16.0
* new locations or Tcl/Tk interpreter
520 translated messages.
381 translated messages, 4 fuzzy translations, 6 untranslated messages.
520 translated messages.
514 translated messages.
519 translated messages, 1 untranslated message.
520 translated messages.
474 translated messages, 39 untranslated messages.
520 translated messages.
516 translated messages, 4 untranslated messages.
521 translated messages.
366 translated messages, 7 fuzzy translations, 17 untranslated messages.
289 translated messages.
200 translated messages, 7 untranslated messages.
276 translated messages, 4 fuzzy translations.
288 translated messages.
283 translated messages, 6 untranslated messages.
284 translated messages.
290 translated messages.
245 translated messages.
290 translated messages.
real 6m15.970s
user 10m13.280s
sys 0m57.640s
snoonan@nerva ~/Development/git $
So 6 minutes, 16 seconds with 2 make jobs. Compared to other platforms
I have on hand...
'make -j16' on an i7-2600K (3.4GHz, 4-core, 8-thread):
real 0m15.428s
user 1m33.691s
sys 0m10.416s
'make -j64' on a dual Xeon X5670 (2.93GHz, 12-core, 24-thread):
real 0m7.647s
user 1m52.219s
sys 0m12.173s
So it's only 25x as long as the i7 and 50x as long as the Xeon. Not
-terrible-, but obviously not competitive either. :)
Also, I'd recommend skipping builds of the documentation (man pages,
etc). It's a -very- slow and memory-hungry process. Even on the Xeon
box it takes a while with 'make -j64 doc':
real 0m27.726s
user 9m33.256s
sys 0m25.014s
'make -j128 test' is longer still (again, dual Xeon box):
real 1m42.696s
user 3m9.611s
sys 1m43.343s
So if it takes this long on super high-end Intel boxes, consider how
long it would take on an ARM box. Probably want to avoid the
'doc'/'man'/'test' targets!
> The RPi will have 256M ram, which is significantly better than what
> you have been working with. I think my first real goal will be to
> compile git on it. Hopefully it will be flawless!
Oops, sorry, I wasn't really clear. The ARM7+ARM9 system had 4MB of
RAM, but my new ARM systems have at least 512MB each (I think one has
2GB and the others have 1GB).
> In terms of running git on these devices, are there any limitations to
> the functionality, barring memory constraints?
Things are generally slower, but there's nothing really breaking any
functionality, AFAICT.
> The device will also have USB ports, and I imagine the two most common
> use cases will have the working directory on SD card and on USB hard
> drive. I wonder how git will perform comparatively on each.
It's hard to say. My TrimSlice has a SATA port, but it's implemented
as a USB-to-SATA adapter (blech). Performance really blows on it.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Running git on ARM systems
2012-03-01 5:11 Running git on ARM systems Andrew Ardill
2012-03-01 5:31 ` Steven Noonan
@ 2012-03-01 11:12 ` solo-git
1 sibling, 0 replies; 5+ messages in thread
From: solo-git @ 2012-03-01 11:12 UTC (permalink / raw)
To: git
On Thu, Mar 01, 2012 at 04:11:16PM +1100, Andrew Ardill wrote:
> Hi everyone,
>
> You may have heard of the Raspberry Pi [1], a fully programmable
> computer the size of a credit card for $25-$35. It will run a linux
> (debian/fedora/arch) distribution on a 700 MHz ARM1176JZF-S core
> (ARM11 family) [2].
Then there's things like the Nokia n900 / n950 devices; 'phones with
Maemo (~= Debian) on them. I've been using the git-core (installed via.
apt-get) on my n900 for backups and lightweight development for ages.
The main problem is the IO, in my experience, the device has 256MB of ram,
but only SD-card grade storage (like the Rasberry).
ARMv7, according to /proc/cpuinfo.
Package: http://maemo.org/packages/view/git-core/
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-03-01 11:20 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-01 5:11 Running git on ARM systems Andrew Ardill
2012-03-01 5:31 ` Steven Noonan
2012-03-01 5:47 ` Andrew Ardill
2012-03-01 6:56 ` Steven Noonan
2012-03-01 11:12 ` solo-git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).