From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pd0-f182.google.com (mail-pd0-f182.google.com [209.85.192.182]) by dpdk.org (Postfix) with ESMTP id B1844592B for ; Thu, 12 Mar 2015 22:05:53 +0100 (CET) Received: by pdjz10 with SMTP id z10so22965969pdj.11 for ; Thu, 12 Mar 2015 14:05:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=n7Cn+el7wMQ8BTG6icWWEQ8kkfapxX/BLKaAwXItaNI=; b=bOYjpXpRq+OdICDjsA8ApMIJWgbWGikndpU2/Hos6Ib8U+EmGDzea9WbRx5JvSgWYM IFGKrjWWZAXqdhHw4swXCS+AcF69PXpW/i8lmGVWiKt7Tl3H0FWSeqXptzUkMneHmxwO TcOh2fkLoKatmTKnS2YUEgZolwyM4UnAUGtCvTqh/hrJ3Jc3Qci/HqIHYNhoOYMxBnQk o4zXep6JcXOdYqAcdzr7iojTv8y5BKkYZEre/w84FmWfMhCQiulvlzFtGLq+DO2xTtSP g1GzN3lxpBZVol10MEVuK4RBVoyIsH2UnvsmXcUgdb9EN7A3cxv/v+MYTIbz8ZFawn6K GmPw== X-Gm-Message-State: ALoCoQlWfeoYLdsT+nucgxdAXkJleuA4EgFC+mYFWK+e5ccnH5sRCCtmm8TVGJtHenCVOOyefIXm X-Received: by 10.67.30.103 with SMTP id kd7mr16854870pad.121.1426194352544; Thu, 12 Mar 2015 14:05:52 -0700 (PDT) Received: from localhost (7c295ef2.i-revonet.jp. [124.41.94.242]) by mx.google.com with ESMTPSA id fu14sm12409260pad.44.2015.03.12.14.05.51 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Mar 2015 14:05:51 -0700 (PDT) From: Takuya ASADA To: dev@dpdk.org Date: Fri, 13 Mar 2015 06:05:41 +0900 Message-Id: <1426194348-4406-1-git-send-email-syuu@cloudius-systems.com> X-Mailer: git-send-email 2.1.0 Subject: [dpdk-dev] [RFC PATCH 0/7] add OSv support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Mar 2015 21:05:54 -0000 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 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