Hi Wei, The changes should be platform agnostic. You should be able to perform the same tests on linux/arm.
On Mon, Apr 23, 2018 at 7:34 AM, Wei Chen <wei.c...@arm.com> wrote: > Hi Nikhil, > > > > Is there anything we have to do to perform the same tests > > On Arm64? > > > > Regards, > > Wei Chen > > > > *From:* solo5@lists.h3q.com <solo5@lists.h3q.com> *On Behalf Of *nikhil ap > *Sent:* 2018年4月20日 22:56 > *To:* solo5@lists.h3q.com > *Subject:* [solo5] Improving solo5's network performance > > > > Hi Guys, > > > > Summarising the discussions we've had so far and the work I've been doing: > > - Implemented network interface using shmstream (shared memory) in > order to reduce the number of hypercalls and thus reduce the number of > VMEntries and VMExits. > - Separate IO thread is implemented in ukvm-bin to read/write packets > from the shared memory. > - IO thread currently supports polling mode and event mode. > - Event-driven model is implemented using eventfds and io-thread waits > for events using epoll. > - The applications could run both the modes without any changes to > their APIs. > - Currently shmstream mode can be set with --shm option. > > > - Ex: ./ukvm-bin --net=tap100 --shm=poll test_ping_serve.ukvm > > > - However, in case of event-mode, for better performance, the > application can chose to notify ukvm-bin after queuing *all* the packets in > the shared memory instead of a single packet transmit by using a new solo5 > public APIs: solo5_net_queue() and solo5_net_flush(); > - Solo5 performance was tested with IncludeOS (IncludeOS had to be > modified to address the recent API changes in solo5) and with UDP traffic. > - Summarising the results below > > +--------------------------------------------------+-------- > --------------------------------------------------------------+ > > | Experiment > | PPS with 1300 byte packets as receiver | > > +--------------------------------------------------+-------- > --------------------------------------------------------------+ > > | With Qemu and vhost=on | 460k > | > > +--------------------------------------------------+-------- > --------------------------------------------------------------+ > > | With Qemu and vhost=off | 310k > | > > +--------------------------------------------------+-------- > --------------------------------------------------------------+ > > | With solo5/ukvm | > 160k | > > +--------------------------------------------------+-------- > --------------------------------------------------------------+ > > | With solo5/ukvm withseccomp | 440k > | > > +--------------------------------------------------+-------- > --------------------------------------------------------------+ > > | With solo5/ukvm withshmstream and eventthread | 435k > | > > +--------------------------------------------------+-------- > --------------------------------------------------------------+ > > | With solo5/ukvm withshmstream and polling thread | 490k > | > > +--------------------------------------------------+-------- > --------------------------------------------------------------+ > > > > UDP Performance stats collected after running each test for 30 seconds > > +---------------------------------------+------------------- > +--------------------+---------------------------+ > > | Model | > VMentries/VMexits | CPU usage | > > +---------------------------------------+------------------- > +--------------------+---------------------------+ > > | Solo5/ukvm today | 8.7 Million > | 100% | > > +---------------------------------------+------------------- > +--------------------+---------------------------+ > > | Solo5 with shmstream and polling | 215K | > 200% | > > +---------------------------------------+------------------- > +--------------------+---------------------------+ > > | Solo5 with shmstream and event-driven | 260K | > 160% | > > +---------------------------------------+------------------- > +--------------------+---------------------------+ > > | Qemu with Vhost | 20 Million > | 100% + 50% (Vhost) | > > +---------------------------------------+------------------- > +--------------------+---------------------------+ > > > > TODO: Support IO thread with hybrid mode. I.E with both event driven and > polling mode. Similar to NAPI. > > > > -- > > Regards, > > Nikhil > IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, please notify the sender immediately and do not disclose the > contents to any other person, use it for any purpose, or store or copy the > information in any medium. Thank you. > -- Regards, Nikhil