Git Product home page Git Product logo

io-tcp's Introduction

IO-TCP

Preliminaries

DPDK

  • Install DPDK on both the host and the NIC (https://github.com/DPDK/dpdk.git)
    • IO-TCP links the DPDK library using pkg-config
    • Host
      • Please check that CONFIG_RTE_LIBRTE_MLX5_PMD option has been enabled in dpdk/config/common_base which is disabled by default.
    • NIC
      • OS installation on NIC using bfb images may already have DPDK installed, which cannot be reinstalled.

Mellanox OFED

  • Install Mellanox OFED on both the host and the NIC
    • Host
      cd MLNX_OFED_LINUX-[version-architecture]/
      ./mlnxofedinstall  --upstream-libs --with-nvmf --with-rshim
      # do not user --dpdk option. It may change the nvme driver and break nvme target offloading. 
      dracut -f
      
    • NIC
      cd MLNX_OFED_LINUX-[version-architecture]/
      ./mlnxofedinstall  --dpdk --bluefield --with-nvmf --upstream-libs --force --add-kernel-support
      dracut -f
      
      • OS installation on NIC using bfb images may already have MLNX OFED driver installed, which cannot be reinstalled.

NVMe target offloading

Network setting

Install

Host side

  • host_stack/: Modified mtcp project.
  • Configure
    cd host_stack
    autoreconf -ivf
    ./configure --with-dpdk-lib
    
  • Edit hard-coded MAC address
    • In host_stack/mtcp/src/ip_out.c:195~200, Hard-coded SmartNIC MAC address needs to be changed.
  • Build mtcp
    make all -j
    
  • Build & run your application

NIC side

  • nic_stack/: NIC stack source code of IO-TCP
    • Set DPDK hugepages. If necessary, set the page size to 1GB instead of the default of 2MB.
    • Build IO-TCP nic stack
      cd nic_stack
      make -j
      
    • Run IO-TCP nic stack
      ./build/offload_write_separated
      

Run Sample Applications

lighttpd web server

  • Host side
    • Build lighttpd in host_stack/apps/lighttpd-1.4.32
      cd ./apps/lighttpd-1.4.32/
      autoconf
      ./configure --without-bzip2 CFLAGS="-g -O3" --with-libmtcp=[mtcp path] (i.e. /home/username/IO-TCP/host_stack/mtcp/) --with-libdpdk --no-create --no-recursion
      make all -j
      cd ./src
      
    • Modify configuration files.
      • host_stack/apps/lighttpd-1.4.32/doc/config/m-lighttpd.conf
        server.bind=[host ip]
        server.event-handler = "mtcp-epoll"
        server.network-backend = "mtcp_offload_write"
        
      • mtcp_accelstorage/apps/lighttpd-1.4.32/src/mtcp.conf
        port=[port name]
        
    • Run lighttpd
      ./lighttpd -D -f ../doc/config/m-lighttpd.conf -m ./.libs -n 1
      
  • NIC side
    • Run IO-TCP nic stack
      ./build/offload_write_separated
      

Checklist before performance evaluation

  • Please check the maximum number of file descriptiors

io-tcp's People

Contributors

taehyunkim1527 avatar tnet-snu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.