Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Method to increase performance by using common mbuf pool by all NIC ports in same PCI slot in AIX

IP.com Disclosure Number: IPCOM000244680D
Publication Date: 2016-Jan-06
Document File: 2 page(s) / 25K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method that suggests a way through which performance can be increased and memory locked can be reduced at Network Interface Card (NIC) driver level on both send and receive side especially with AIX but not limited.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 51% of the total text.

Page 01 of 2

Method to increase performance by using common mbuf pool by all NIC ports in same PCI slot in AIX

Disclosed is a method that suggests a way through which performance can be increased and memory locked
can be reduced at Network Interface Card (NIC) driver level on both send and receive side especially with AIX but not limited.

On AIX operating system (OS), D_MAP_LIST() performs platform-specific Dynamic Memory Access (DMA) mapping for a list of virtual addresses.

Generally, D_MAP_LIST() will be used to create a DMA mapped memory buffer (mbuf) pool separate for each port. But D_MAP_LIST() can be used for
DMA mapping mbufs which is common for all ports on a single Peripheral Component Interconnect (PCI) slot since D_MAP_INIT function needs
only Bus Identifier (BUS ID) which is common for all ports on same PCI slot.

Advantages:
-----------
a. Memory that is DMA mapped by any port can be used by all ports on a PCI slot. Small number of buffers shared from
each port are sufficient to show up as big sized pool since they are common for all ports. So, memory can be saved.


b. Common pool of DMA mapped mbufs will reduce the chance of using system mbuf's on receive side. This will minimize
Central Processing Unit (CPU) consumption for copying from private DMA mapped mbufs to system buffers when there is

no DMA mapped mbuf. For doing D_MAP_LIST() in AIX OS, D_MAP_INIT() is a

prerequisite. For D_MAP_INIT(),
busid is required which is common for all ports on a PCI slot and this feature can be used to share DMA mapped mbufs
between ports on the same PCI slot. This will reduce CPU usage and memory consumption mainly on NIC driver receive side.

This can be used on transmit side also.

Using this disclosed method, memory allocation and DMA map related to common pool will be done once during initialization by
first NIC port driver. There are multiple below mentioned ways to use this disclosed method but not limited.


1. Reserve and allocate small percentage of mbuf's from each ports private mbuf pool count to the global common pool.

Each port will contribute to global common pool. This contribution can be done by each port's

NIC driver when it comes up.

As an example, if a PCI slot has 4 ports and each port need to allocate and map 2048 mbuf's on recei...