Skip to content
/ libpop Public

A library for peripheral-to-peripheral communication

Notifications You must be signed in to change notification settings

upa/libpop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BoogiePop: A library for Peripheral-to-Peripheral communication

Requirements

  • Linux kernel 4.20
  • i40e NIC
  • NVMe device
  • something good motherboad
  • something good p2pmem card

Compile and Install

git clone https://github.com/upa/boogiepop
cd boogiepop/
git submodule init && git submodule update
  1. Compile and install a modified netmap. This netmap installs only i40e and ixgbe drivers. Tested on only kernel 4.20.
cd boogiepop/netmap/LINUX
./configure
make
sudo make install
  1. Compile and install Boogiepop. compiling boogiepop depends on the netmap.
cd boogiepop/
make
sudo make install
  1. Compile a modified UNVMe. This depends on the boogiepop library.
cd boogiepop/unvme/
make
sudo make install

How to

  1. set hugepages
echo 2048 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
echo 0 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
mkdir -p /mnt/hugepages
mount -t hugetlbfs nodev /mnt/hugepages
  1. set NVMe device under UNVMe without iommu
modprobe -r vfio_pci
modprobe -r vfio_iommu_type1
modprobe -r vfio
modprobe vfio enable_unsafe_noiommu_mode=1

unvme-setup bind 17:00.0 # pci slot of NVMe

About

A library for peripheral-to-peripheral communication

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published