Christophe, On 2/13/18, Christophe Fontaine <christophe.fonta...@enea.com> wrote: > Andrew, > >> -----Original Message----- >> From: vpp-dev@lists.fd.io [mailto:vpp-dev@lists.fd.io] On Behalf Of >> Andrew >> Yourtchenko >> Sent: Tuesday, February 13, 2018 10:29 PM >> To: vpp-dev@lists.fd.io >> Cc: vpp-dev@lists.fd.io >> Subject: Re: [vpp-dev] Experiments in compiling and running VPP on >> Raspberry Pi (32-bit) >> >> Hi Christophe, >> >> > On 13 Feb 2018, at 21:50, Christophe Fontaine >> <christophe.fonta...@enea.com> wrote: >> > >> > Hi Andrew ! >> > >> > Happy to see someone else tried to play with the rpi ;) >> >> I wanna try VPP in my home network, but don’t have a lot of b/w (just >> 2x50mbps with two ISPs), I am very strict about the power consumption for >> the “always on” gadgets, that’s the motivation to try to squeeze it on >> something small and see what happens :-) >> > > I did the same initially, but for a lot of reasons (the main one being my > better half didn't want to have to many stuff below the TV ) I switched to a > unique x86 based micro server
Ah cool! I have it all in the closet, so try to do one-function-per-device even if small. With RPi it is easy. > >> > I'm guilty for the initial work 1 year ago, but as you saw, I did not >> > tried to >> keep up with the development. >> >> Your work was of big help to get started, thanks a lot ! :-) though I >> could not >> dig enough into the archive to see whether “arm32” platform was specific >> to >> RPi or it was something more generic, so I went with a new platform file. >> > > I tried to be as hardware independent as possible, but I tried on only 2 > platforms: > - rpi 2 > - nvidia tegra tk1 > >> > >> > For the rpi timercode, it was mainly to have something standard, based >> > on the aarch32 arch, but one thing worth mentioning is that I used a >> > rpi2 (which is not a aarch64 running in aarch32 mode.) But this does >> > not exclude a specific mess-up from my side ;) >> >> Oh, if you still have the h/w, would be curious to compare whether you >> also >> can observe this discrepancy in time... on my RPi3 with the kernel >> module, >> the “make run” would sporadically hang/crash, and since that was the >> timer, I >> just made a cycle taking the clib_cpu_time_now(), doing sleep(1), taking >> another time, and printing the difference... maybe the behavior somehow >> has changed inbetween. >> > Of course: I even have a rpi3 now, so I should be able to reproduce the bug > you saw. > Even if I can't guarantee I can spend some time this week on this, I'll do > my best to test it next week. > But feel free to send me a reminder. Cool, thanks a lot! --a > > Christophe > > >> —a >> >> > >> > Christophe >> > >> > -----Original Message----- >> > From: vpp-dev@lists.fd.io [mailto:vpp-dev@lists.fd.io] On Behalf Of >> > Andrew Yourtchenko >> > Sent: Tuesday, February 13, 2018 6:29 PM >> > To: vpp-dev@lists.fd.io >> > Subject: [vpp-dev] Experiments in compiling and running VPP on >> > Raspberry Pi (32-bit) >> > >> > Hi all, >> > >> > This past weekend (which coincided with the start of my vacation) I >> > have >> decided to spend a day to see if I can get VPP to compile and run on >> Raspberry Pi. >> > >> > After a few cuts with a blunt pen knife, I got it working - it >> > compiles entirely on RPi 3 itself and I can get it to the "make run", >> > create tap interfaces, and ping the linux side. Other than also >> > testing VAT (it works. I could create a couple of ACLs/assign them to >> > interfaces) I did not yet test anything more sophisticated, so - no >> > warranties whatsoever ! :-) >> > >> > I had a "real" HDD mounted as a checkout root - not sure how well it >> > would >> work using the flash, but probably should not be a problem. The only >> other >> thing worth mentioning - I learned RPi has a "thermometer" onscreen >> display >> sign, during the compile :-) The temperature of the CPU has reached 84C >> (aka >> "don't touch!"), that was *with* the heatsink. So, ensure you have a good >> heat sink ! >> > >> > I've captured the current state of my experiments here: >> > >> > https://gerrit.fd.io/r/#/c/10487/ >> > >> > I boot the RPi with the additional "isolcpus=2,3" on the kernel command >> line. I didn't test yet without that change. For the rest - it's a vanilla >> Raspbian >> Lite image. >> > >> > One note: reading the archives / wiki >> > (https://wiki.fd.io/view/VPP/Alternative_builds), >> > I saw the mention of the kernel module. When I ran the code with it, I >> > saw >> very flaky behavior, and frequent lockups/crashes. >> > >> > My debugging concluded that probably having the rdtsc deltas over a one >> second interval vary more than 10x over the consecutive periods of time >> is >> what makes the timer code very unhappy. Not sure if this is specific to >> the >> hardware I have or to the way it works in RPi in general. >> > >> > Anyway, I found a way to create a very crude but more stable >> > replacement >> - RPi appears to have a 64-bit 1Mhz free-running timer/counter. Multiply >> that >> value by 1200... With that there were no more mysterious >> instabilities/crashes. As a bonus - no need to load the kernel module, so >> the >> process is simpler. Probably the performance implications of that for >> running >> on Pi will be nontrivial, but it is surely better than crashing. >> > >> > Next 2.5 weeks I won't hack on this further (sightseeing/skiing will >> > take precedence - vacation!), so figured I'll use this time to hear >> > what you all think :-) >> > >> > --a >> > >> > >> > >> >> > > -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#8204): https://lists.fd.io/g/vpp-dev/message/8204 View All Messages In Topic (5): https://lists.fd.io/g/vpp-dev/topic/11145503 Mute This Topic: https://lists.fd.io/mt/11145503/21656 New Topic: https://lists.fd.io/g/vpp-dev/post Change Your Subscription: https://lists.fd.io/g/vpp-dev/editsub/21656 Group Home: https://lists.fd.io/g/vpp-dev Contact Group Owner: vpp-dev+ow...@lists.fd.io Terms of Service: https://lists.fd.io/static/tos Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub -=-=-=-=-=-=-=-=-=-=-=-