Hi Andrew ! Happy to see someone else tried to play with the rpi ;) I'm guilty for the initial work 1 year ago, but as you saw, I did not tried to keep up with the development.
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 ;) 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 (#8199): https://lists.fd.io/g/vpp-dev/message/8199 View All Messages In Topic (2): 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 -=-=-=-=-=-=-=-=-=-=-=-