Skip to content
Nicola Bonelli edited this page May 12, 2014 · 16 revisions

pfq-omatic script

Pfq-omatic is a Haskell script that can be used to compile source codes of network device drivers and obtain PFQ aware versions. By overloading symbols at compile time, pfq-omatic enables:

  • drivers to send packets directly to PFQ, which is then interposed between network driver and the Linux kernel.
  • drivers to exploit the ad-hoc socket buffer allocator.
  • software accelerations.

Example:

cd ixbge
pfq-omatic
[PFQ] pfq-omatic: v3.0
[PFQ] using /opt/PFQ/kernel/Module.symvers file (most recent)
[PFQ] ./ixgbe_main.c is already patched :)
[PFQ] compiling: make -j6...
make -C /lib/modules/3.12-1-amd64/build SUBDIRS=/opt/ixgbe-3.21.2/src modules
make[1]: Entering directory `/usr/src/linux-headers-3.12-1-amd64'
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_main.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_common.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_api.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_param.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_lib.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_ethtool.o
  CC [M]  /opt/ixgbe-3.21.2/src/kcompat.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_82598.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_82599.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_x540.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_sriov.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_mbx.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_dcb.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_dcb_82598.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_dcb_82599.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_sysfs.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_procfs.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_phy.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_dcb_nl.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_fcoe.o
  CC [M]  /opt/ixgbe-3.21.2/src/ixgbe_debugfs.o
  LD [M]  /opt/ixgbe-3.21.2/src/ixgbe.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /opt/ixgbe-3.21.2/src/ixgbe.mod.o
  LD [M]  /opt/ixgbe-3.21.2/src/ixgbe.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.12-1-amd64'
[PFQ] done.
Clone this wiki locally