Pistachio IPC performance on Bare Metal
matthew scaperoth <[email protected]> Fri, 19 Sep 2014 19:03:07 -0400
| Newsgroups | gmane.comp.micro-kernel.l4.l4ka.general |
|---|---|
| Message-ID | <[email protected]> |
Hello, My name is Matt Scaperoth and I am currently working on benchmarking your sy= stem. I first want to say how much I have enjoyed working with your API. It i= s extremely convenient to do things like find out which processor a thread i= s running on or getting the current clock cycles.=20 I have been working on Pistachio as well as seL4 and am trying to get the cl= ock cycles for different IPCs including cross socket. I'm especially interes= ted in the scalability of Pistachio. You can see the progress I've made on GitHub at http://github.com/scaperoth/= pistachio-qemu. I have been able to build my own custom modules to place into the image (myp= ingpong). I have also been able to create a bootable usb from this image, bu= t the problem is the cycle time I receive from these tests. The specific con= figuration I am using can be seen in my README.md on the github page. On bare metal I am getting an intra-as IPC time of around 1500 cycles (which= I know is way off). The system I tested on is a simple dual core dell compu= ter. I can give more details on this if necessary.=20 My question really is how to optimize. I would like to get intra process IPC= down to < 200 cycles, but I've sort of hit a wall. I do have fast path enab= led and debugging disabled. The code I altered was pingpong and I simply rem= oved the loops and message register iteration so that I could perform a sing= le IPC. I wrapped the IPC call with two variables that catch the clock time b= efore and after the IPC. I do this several thousand times and take an averag= e.=20 Any ideas on what I am doing wrong? Regards, Matt Scaperoth GWU=