[dpdk-dev] [RFC PATCH 0/7] add OSv support

Takuya ASADA syuu at cloudius-systems.com
Fri Mar 13 20:00:08 CET 2015


On Fri, Mar 13, 2015 at 7:00 PM, Bruce Richardson <
bruce.richardson at intel.com> wrote:

> On Fri, Mar 13, 2015 at 06:05:41AM +0900, Takuya ASADA wrote:
> > Hi DPDK developers,
> >
> > I'd like to contribute a new EAL to support our open-sourced operating
> system called "OSv".
> > It is a new operating system build from scratch for cloud computing, to
> run application faster with lower footprint on IaaS.
> > Unlike general propose OS, it is a library OS designed to run single
> application per one instance, everything run in kernel mode, single memory
> space.
> > It's not using Linux kernel but has compatibility with Linux
> application, not perfect but we already supported various applications such
> as Cassandra, memcached, Redis, etc.
> >
> > In DPDK case, PMDs can access devices directly, without kernel driver
> help.
> > At this point I haven't enough optimized performance of the EAL yet, but
> it has potential to get better performance than Linux with fewer resources.
> >
> > OSv web site: http://osv.io
> > USENIX ATC'14 paper:
> https://www.usenix.org/conference/atc14/technical-sessions/presentation/kivity
>
> This sounds really interesting. Any chance of adding in a "Getting Started
> Guide"
> with your patchset to make it easy for us to try out DPDK on OSv?
>

We have an application repository for OSv, I'll add DPDK to deploy it
easier:
https://github.com/cloudius-systems/osv-apps
And we will add DPDK building instructions on OSv wiki:
https://github.com/cloudius-systems/osv/wiki

Since Linux and FreeBSD has "Getting Started Guide", probably I need to add
OSv version too?


> >
> > Takuya ASADA (7):
> >   mk: support compiling C++ code
> >   eal: Add extern C on eal_hugepages.h
> >   eal: Add extern C on eal_thread.h
> >   eal: Add extern C on eal_private.h
> >   add OSv support
> >   virtio: enable MSI-X on OSv
> >   app/test: support OSv
> >
> >  app/test/test_eal_flags.c                          |  34 +--
> >  app/test/test_timer_perf.c                         |   2 +-
> >  config/{common_linuxapp => common_osvapp}          |  20 +-
> >  ...xapp-gcc => defconfig_x86_64-native-osvapp-gcc} |   2 +-
> >  lib/librte_eal/Makefile                            |   2 +
> >  lib/librte_eal/common/eal_hugepages.h              |   8 +
> >  lib/librte_eal/common/eal_private.h                |   8 +
> >  lib/librte_eal/common/eal_thread.h                 |   8 +
> >  Makefile => lib/librte_eal/osvapp/Makefile         |   5 +-
> >  lib/librte_eal/osvapp/eal/Makefile                 | 115 ++++++++
> >  lib/librte_eal/{linuxapp => osvapp}/eal/eal.c      | 123 +-------
> >  .../{linuxapp => osvapp}/eal/eal_alarm.c           |   0
> >  .../{linuxapp => osvapp}/eal/eal_debug.c           |   0
> >  lib/librte_eal/osvapp/eal/eal_hugepage_info.cc     |  63 +++++
> >  .../{bsdapp => osvapp}/eal/eal_interrupts.c        |   0
> >  .../eal/eal_lcore.c => osvapp/eal/eal_lcore.cc}    |  53 ++--
> >  lib/librte_eal/{bsdapp => osvapp}/eal/eal_log.c    |   0
> >  lib/librte_eal/osvapp/eal/eal_memory.cc            | 148 ++++++++++
> >  lib/librte_eal/osvapp/eal/eal_pci.cc               | 311
> +++++++++++++++++++++
> >  .../{linuxapp => osvapp}/eal/eal_thread.c          |   0
> >  lib/librte_eal/osvapp/eal/eal_timer.c              | 121 ++++++++
> >  .../eal/include/exec-env/rte_interrupts.h          |   0
> >  lib/librte_pmd_virtio/virtio_ethdev.c              |  15 +-
> >  mk/exec-env/{linuxapp => osvapp}/rte.app.mk        |   0
> >  mk/exec-env/{linuxapp => osvapp}/rte.vars.mk       |   6 +-
> >  mk/internal/rte.compile-pre.mk                     |  41 ++-
> >  mk/target/generic/rte.vars.mk                      |   4 +
> >  mk/toolchain/gcc/rte.vars.mk                       |   5 +-
> >  28 files changed, 907 insertions(+), 187 deletions(-)
> >  copy config/{common_linuxapp => common_osvapp} (97%)
> >  copy config/{defconfig_x86_64-native-linuxapp-gcc =>
> defconfig_x86_64-native-osvapp-gcc} (98%)
> >  copy Makefile => lib/librte_eal/osvapp/Makefile (93%)
> >  create mode 100644 lib/librte_eal/osvapp/eal/Makefile
> >  copy lib/librte_eal/{linuxapp => osvapp}/eal/eal.c (87%)
> >  copy lib/librte_eal/{linuxapp => osvapp}/eal/eal_alarm.c (100%)
> >  copy lib/librte_eal/{linuxapp => osvapp}/eal/eal_debug.c (100%)
> >  create mode 100644 lib/librte_eal/osvapp/eal/eal_hugepage_info.cc
> >  copy lib/librte_eal/{bsdapp => osvapp}/eal/eal_interrupts.c (100%)
> >  copy lib/librte_eal/{bsdapp/eal/eal_lcore.c => osvapp/eal/eal_lcore.cc}
> (80%)
> >  copy lib/librte_eal/{bsdapp => osvapp}/eal/eal_log.c (100%)
> >  create mode 100644 lib/librte_eal/osvapp/eal/eal_memory.cc
> >  create mode 100644 lib/librte_eal/osvapp/eal/eal_pci.cc
> >  copy lib/librte_eal/{linuxapp => osvapp}/eal/eal_thread.c (100%)
> >  create mode 100644 lib/librte_eal/osvapp/eal/eal_timer.c
> >  copy lib/librte_eal/{bsdapp =>
> osvapp}/eal/include/exec-env/rte_interrupts.h (100%)
> >  copy mk/exec-env/{linuxapp => osvapp}/rte.app.mk (100%)
> >  copy mk/exec-env/{linuxapp => osvapp}/rte.vars.mk (95%)
> >
> > --
> > 2.1.0
> >
>


More information about the dev mailing list