From: Intel Date: Wed, 19 Dec 2012 23:00:00 +0000 (+0100) Subject: examples/qat: update X-Git-Tag: spdx-start~11311 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=3460012bcce6b5884ae20662a5e7191d3adcc71f;p=dpdk.git examples/qat: update Signed-off-by: Intel --- diff --git a/examples/dpdk_qat/Makefile b/examples/dpdk_qat/Makefile index 58fbbddb11..70fa2e25c2 100644 --- a/examples/dpdk_qat/Makefile +++ b/examples/dpdk_qat/Makefile @@ -48,9 +48,13 @@ $(error This application can only operate in a linuxapp environment, \ please change the definition of the RTE_TARGET environment variable) endif +LBITS := $(shell uname -p) ifneq ($(CONFIG_RTE_ARCH),"x86_64") -$(error This application can only operate in a x86_64 environment, \ -please change the definition of the RTE_TARGET environment variable) + ifneq ($(LBITS),i686) + $(error The RTE_TARGET chosen is not compatible with this environment \ + (x86_64), for this application. Please change the definition of the \ + RTE_TARGET environment variable, or run the application on a 32-bit OS) + endif endif # binary name @@ -67,6 +71,7 @@ CFLAGS += -I$(ICP_ROOT)/quickassist/include \ LDLIBS += -L$(ICP_ROOT)/build LDLIBS += $(ICP_ROOT)/build/icp_qa_al.a \ + -lz \ -losal \ -ladf_proxy \ -lcrypto diff --git a/examples/dpdk_qat/config_files/shumway/dh89xxcc_qa_dev0.conf b/examples/dpdk_qat/config_files/shumway/dh89xxcc_qa_dev0.conf index 4773f7b0c0..2804fe3806 100644 --- a/examples/dpdk_qat/config_files/shumway/dh89xxcc_qa_dev0.conf +++ b/examples/dpdk_qat/config_files/shumway/dh89xxcc_qa_dev0.conf @@ -32,8 +32,8 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -######################################################################### -######################################################## +# ######################################################################### +# ######################################################## # # This file is the configuration for a single dh89xxcc_qa # device. @@ -46,36 +46,29 @@ # specific core. # Each ring bank as 16 rings (hardware assisted queues). # -######################################################## - -############################################## +######################################################### # General Section ############################################## [GENERAL] ServicesEnabled = cy0;cy1 +# Use version 2 of the config file +ConfigVersion = 2 # Look Aside Cryptographic Configuration cyHmacAuthMode = 1 # Look Aside Compression Configuration dcTotalSRAMAvailable = 0 -dcSRAMPerInstance = 0 # Firmware Location Configuration -Firmware_UofPath = uof_firmware.bin +Firmware_MofPath = mof_firmware.bin Firmware_MmpPath = mmp_firmware.bin -# QAT Parameters -Accel0AdminBankNumber = 0 -Accel0AcceleratorNumber = 0 -Accel0AdminTx = 0 -Accel0AdminRx = 1 - -Accel1AcceleratorNumber = 1 -Accel1AdminBankNumber = 0 -Accel1AdminTx = 0 -Accel1AdminRx = 1 +#Default values for number of concurrent requests*/ +CyNumConcurrentSymRequests = 512 +CyNumConcurrentAsymRequests = 64 +DcNumConcurrentRequests = 512 #Statistics, valid values: 1,0 statsGeneral = 1 @@ -90,103 +83,16 @@ statsPrime = 1 statsRsa = 1 statsSym = 1 +# Enables or disables Single Root Complex IO Virtualization. +# If this is enabled (1) then SRIOV and VT-d need to be enabled in +# BIOS and there can be no Cy or Dc instances created in PF (Dom0). +# If this i disabled (0) then SRIOV and VT-d need to be disabled +# in BIOS and Cy and/or Dc instances can be used in PF (Dom0) +SRIOV_Enabled = 0 + #Debug feature, if set to 1 it enables additional entries in /proc filesystem ProcDebug = 1 - -################################################ -# -# Hardware Access Ring Bank Configuration -# Each Accelerator has 8 ring banks (0-7) -# If the OS supports MSI-X, each ring bank has an -# steerable MSI-x interrupt which may be -# affinitized to a particular node/core. -# -################################################ - - -[Accelerator0] -Bank0InterruptCoalescingEnabled = 1 -Bank0InterruptCoalescingTimerNs = 10000 -Bank0CoreIDAffinity = 0 -Bank0InterruptCoalescingNumResponses = 0 - -Bank1InterruptCoalescingEnabled = 1 -Bank1InterruptCoalescingTimerNs = 10000 -Bank1CoreIDAffinity = 2 -Bank1InterruptCoalescingNumResponses = 0 - -Bank2InterruptCoalescingEnabled = 1 -Bank2InterruptCoalescingTimerNs = 10000 -Bank2CoreIDAffinity = 4 -Bank2InterruptCoalescingNumResponses = 0 - -Bank3InterruptCoalescingEnabled = 1 -Bank3InterruptCoalescingTimerNs = 10000 -Bank3CoreIDAffinity = 6 -Bank3InterruptCoalescingNumResponses = 0 - -Bank4InterruptCoalescingEnabled = 1 -Bank4InterruptCoalescingTimerNs = 10000 -Bank4CoreIDAffinity = 16 -Bank4InterruptCoalescingNumResponses = 0 - -Bank5InterruptCoalescingEnabled = 1 -Bank5InterruptCoalescingTimerNs = 10000 -Bank5CoreIDAffinity = 18 -Bank5InterruptCoalescingNumResponses = 0 - -Bank6InterruptCoalescingEnabled = 1 -Bank6InterruptCoalescingTimerNs = 10000 -Bank6CoreIDAffinity = 20 -Bank6InterruptCoalescingNumResponses = 0 - -Bank7InterruptCoalescingEnabled = 1 -Bank7InterruptCoalescingTimerNs = 10000 -Bank7CoreIDAffinity = 22 -Bank7InterruptCoalescingNumResponses = 0 - -[Accelerator1] -Bank0InterruptCoalescingEnabled = 1 -Bank0InterruptCoalescingTimerNs = 10000 -Bank0CoreIDAffinity = 1 -Bank0InterruptCoalescingNumResponses = 0 - -Bank1InterruptCoalescingEnabled = 1 -Bank1InterruptCoalescingTimerNs = 10000 -Bank1CoreIDAffinity = 3 -Bank1InterruptCoalescingNumResponses = 0 - -Bank2InterruptCoalescingEnabled = 1 -Bank2InterruptCoalescingTimerNs = 10000 -Bank2CoreIDAffinity = 5 -Bank2InterruptCoalescingNumResponses = 0 - -Bank3InterruptCoalescingEnabled = 1 -Bank3InterruptCoalescingTimerNs = 10000 -Bank3CoreIDAffinity = 7 -Bank3InterruptCoalescingNumResponses = 0 - -Bank4InterruptCoalescingEnabled = 1 -Bank4InterruptCoalescingTimerNs = 10000 -Bank4CoreIDAffinity = 17 -Bank4InterruptCoalescingNumResponses = 0 - -Bank5InterruptCoalescingEnabled = 1 -Bank5InterruptCoalescingTimerNs = 10000 -Bank5CoreIDAffinity = 19 -Bank5InterruptCoalescingNumResponses = 0 - -Bank6InterruptCoalescingEnabled = 1 -Bank6InterruptCoalescingTimerNs = 10000 -Bank6CoreIDAffinity = 21 -Bank6InterruptCoalescingNumResponses = 0 - -Bank7InterruptCoalescingEnabled = 1 -Bank7InterruptCoalescingTimerNs = 10000 -Bank7CoreIDAffinity = 23 -Bank7InterruptCoalescingNumResponses = 0 - ####################################################### # # Logical Instances Section @@ -205,31 +111,20 @@ Bank7InterruptCoalescingNumResponses = 0 # the user mode process. # To allow the driver correctly configure the # logical instances associated with this user process, -# the process must call the icp_sal_userStart(...) +# the process must call the icp_sal_userStartMultiProcess(...) # passing the xxxxx string during process initialisation. -# When the user space process is finish it must call +# When the user space process is finished it must call # icp_sal_userStop(...) to free resources. -# If there are multiple devices present in the system all conf -# files that describe the devices must have the same address domain -# sections even if the address domain does not configure any instances -# on that particular device. So if icp_sal_userStart("xxxxx") is called -# then user process address domain [xxxxx] needs to be present in all -# conf files for all devices in the system. +# NumProcesses will indicate the maximum number of processes +# that can call icp_sal_userStartMultiProcess on this instance. +# Warning: the resources are preallocated: if NumProcesses +# is too high, the driver will fail to load # # Items configurable by a logical instance are: # - Name of the logical instance # - The accelerator associated with this logical # instance -# - The ring bank associated with this logical -# instance. -# - The response mode associated wth this logical instance (0 -# for IRQ or 1 for polled). -# - The ring for receiving and the ring for transmitting. -# - The number of concurrent requests supported by a pair of -# rings on this instance (tx + rx). Note this number affects -# the amount of memory allocated by the driver. Also -# BankInterruptCoalescingNumResponses is only supported for -# number of concurrent requests equal to 512. +# - The core the instance is affinitized to (optional) # # Note: Logical instances may not share the same ring, but # may share a ring bank. @@ -237,30 +132,27 @@ Bank7InterruptCoalescingNumResponses = 0 # The format of the logical instances are: # - For crypto: # CyName = "xxxx" -# CyAcceleratorNumber = 0|1 -# CyBankNumber = 0-7 -# CyIsPolled = 0|1 -# CyNumConcurrentSymRequests = 64|128|256|512|1024|2048|4096 -# CyNumConcurrentAsymRequests = 64|128|256|512|1024|2048|4096 -# CyRingAsymTx = 0-15 -# CyRingAsymRx = 0-15 -# CyRingSymTxHi = 0-15 -# CyRingSymRxHi = 0-15 -# CyRingSymRx = 0-15 +# CyAcceleratorNumber = 0-3 +# CyCoreAffinity = 0-7 # # - For Data Compression # DcName = "xxxx" -# DcAcceleratorNumber = 0|1 -# DcBankNumber = 0-7 -# DcIsPolled = 0|1 -# DcNumConcurrentRequests = 64|128|256|512|1024|2048|4096 -# DcRingTx = 0-15 -# DcRingRx = 0-15 +# DcAcceleratorNumber = 0-1 +# DcCoreAffinity = 0-7 # # Where: # - n is the number of this logical instance starting at 0. # - xxxx may be any ascii value which identifies the logical instance. # +# Note: for user space processes, a list of values can be specified for +# the accelerator number and the core affinity: for example +# Cy0AcceleratorNumber = 0,2 +# Cy0CoreAffinity = 0,2,4 +# These comma-separated lists will allow the multiple processes to use +# different accelerators and cores, and will wrap around the numbers +# in the list. In the above example, process 0 will use accelerator 0, +# and process 1 will use accelerator 2 +# ######################################################## ############################################## @@ -270,267 +162,135 @@ Bank7InterruptCoalescingNumResponses = 0 NumberCyInstances = 0 NumberDcInstances = 0 - ############################################## # User Process Instance Section ############################################## [SSL] NumberCyInstances = 16 NumberDcInstances = 0 +NumProcesses = 1 +LimitDevAccess = 0 # Crypto - User instance #0 Cy0Name = "SSL0" Cy0IsPolled = 1 Cy0AcceleratorNumber = 0 -Cy0ExecutionEngine = 0 -Cy0BankNumber = 0 -Cy0NumConcurrentSymRequests = 512 -Cy0NumConcurrentAsymRequests = 64 - -Cy0RingAsymTx = 2 -Cy0RingAsymRx = 3 -Cy0RingSymTxHi = 4 -Cy0RingSymRxHi = 5 -Cy0RingSymTxLo = 6 -Cy0RingSymRxLo = 7 +# List of core affinities +Cy0CoreAffinity = 0 # Crypto - User instance #1 Cy1Name = "SSL1" -Cy1AcceleratorNumber = 1 -Cy1ExecutionEngine = 0 -Cy1BankNumber = 0 Cy1IsPolled = 1 -Cy1NumConcurrentSymRequests = 512 -Cy1NumConcurrentAsymRequests = 64 - -Cy1RingAsymTx = 2 -Cy1RingAsymRx = 3 -Cy1RingSymTxHi = 4 -Cy1RingSymRxHi = 5 -Cy1RingSymTxLo = 6 -Cy1RingSymRxLo = 7 +Cy1AcceleratorNumber = 1 +# List of core affinities +Cy1CoreAffinity = 1 # Crypto - User instance #2 Cy2Name = "SSL2" -Cy2IsPolled= 1 -Cy2AcceleratorNumber = 0 -Cy2ExecutionEngine = 1 -Cy2BankNumber = 1 -Cy2NumConcurrentSymRequests = 512 -Cy2NumConcurrentAsymRequests = 64 - -Cy2RingAsymTx = 0 -Cy2RingAsymRx = 1 -Cy2RingSymTxHi = 2 -Cy2RingSymRxHi = 3 -Cy2RingSymTxLo = 4 -Cy2RingSymRxLo = 5 +Cy2IsPolled = 1 +Cy2AcceleratorNumber = 2 +# List of core affinities +Cy2CoreAffinity = 2 # Crypto - User instance #3 Cy3Name = "SSL3" -Cy3AcceleratorNumber = 1 -Cy3ExecutionEngine = 1 -Cy3BankNumber = 1 Cy3IsPolled = 1 -Cy3NumConcurrentSymRequests = 512 -Cy3NumConcurrentAsymRequests = 64 - -Cy3RingAsymTx = 0 -Cy3RingAsymRx = 1 -Cy3RingSymTxHi = 2 -Cy3RingSymRxHi = 3 -Cy3RingSymTxLo = 4 -Cy3RingSymRxLo = 5 - +Cy3AcceleratorNumber = 3 +# List of core affinities +Cy3CoreAffinity = 3 # Crypto - User instance #4 Cy4Name = "SSL4" -Cy4IsPolled= 1 +Cy4IsPolled = 1 Cy4AcceleratorNumber = 0 -Cy4ExecutionEngine = 0 -Cy4BankNumber = 2 -Cy4NumConcurrentSymRequests = 512 -Cy4NumConcurrentAsymRequests = 64 - -Cy4RingAsymTx = 0 -Cy4RingAsymRx = 1 -Cy4RingSymTxHi = 2 -Cy4RingSymRxHi = 3 -Cy4RingSymTxLo = 4 -Cy4RingSymRxLo = 5 +# List of core affinities +Cy4CoreAffinity = 4 # Crypto - User instance #5 Cy5Name = "SSL5" -Cy5AcceleratorNumber = 1 -Cy5ExecutionEngine = 0 -Cy5BankNumber = 2 Cy5IsPolled = 1 -Cy5NumConcurrentSymRequests = 512 -Cy5NumConcurrentAsymRequests = 64 - -Cy5RingAsymTx = 0 -Cy5RingAsymRx = 1 -Cy5RingSymTxHi = 2 -Cy5RingSymRxHi = 3 -Cy5RingSymTxLo = 4 -Cy5RingSymRxLo = 5 +Cy5AcceleratorNumber = 1 +# List of core affinities +Cy5CoreAffinity = 5 # Crypto - User instance #6 Cy6Name = "SSL6" Cy6IsPolled = 1 -Cy6AcceleratorNumber = 0 -Cy6ExecutionEngine = 1 -Cy6BankNumber = 3 -Cy6NumConcurrentSymRequests = 512 -Cy6NumConcurrentAsymRequests = 64 - -Cy6RingAsymTx = 0 -Cy6RingAsymRx = 1 -Cy6RingSymTxHi = 2 -Cy6RingSymRxHi = 3 -Cy6RingSymTxLo = 4 -Cy6RingSymRxLo = 5 +Cy6AcceleratorNumber = 2 +# List of core affinities +Cy6CoreAffinity = 6 # Crypto - User instance #7 Cy7Name = "SSL7" -Cy7AcceleratorNumber = 1 -Cy7ExecutionEngine = 1 -Cy7BankNumber = 3 Cy7IsPolled = 1 -Cy7NumConcurrentSymRequests = 512 -Cy7NumConcurrentAsymRequests = 64 - -Cy7RingAsymTx = 0 -Cy7RingAsymRx = 1 -Cy7RingSymTxHi = 2 -Cy7RingSymRxHi = 3 -Cy7RingSymTxLo = 4 -Cy7RingSymRxLo = 5 +Cy7AcceleratorNumber = 3 +# List of core affinities +Cy7CoreAffinity = 7 # Crypto - User instance #8 Cy8Name = "SSL8" Cy8IsPolled = 1 Cy8AcceleratorNumber = 0 -Cy8ExecutionEngine = 0 -Cy8BankNumber = 4 -Cy8NumConcurrentSymRequests = 512 -Cy8NumConcurrentAsymRequests = 64 - -Cy8RingAsymTx = 0 -Cy8RingAsymRx = 1 -Cy8RingSymTxHi = 2 -Cy8RingSymRxHi = 3 -Cy8RingSymTxLo = 4 -Cy8RingSymRxLo = 5 +# List of core affinities +Cy8CoreAffinity = 16 # Crypto - User instance #9 Cy9Name = "SSL9" Cy9IsPolled = 1 Cy9AcceleratorNumber = 1 -Cy9ExecutionEngine = 0 -Cy9BankNumber = 4 -Cy9NumConcurrentSymRequests = 512 -Cy9NumConcurrentAsymRequests = 64 - -Cy9RingAsymTx = 0 -Cy9RingAsymRx = 1 -Cy9RingSymTxHi = 2 -Cy9RingSymRxHi = 3 -Cy9RingSymTxLo = 4 -Cy9RingSymRxLo = 5 +# List of core affinities +Cy9CoreAffinity = 17 # Crypto - User instance #10 Cy10Name = "SSL10" Cy10IsPolled = 1 -Cy10AcceleratorNumber = 0 -Cy10ExecutionEngine = 1 -Cy10BankNumber = 5 -Cy10NumConcurrentSymRequests = 512 -Cy10NumConcurrentAsymRequests = 64 - -Cy10RingAsymTx = 0 -Cy10RingAsymRx = 1 -Cy10RingSymTxHi = 2 -Cy10RingSymRxHi = 3 -Cy10RingSymTxLo = 4 -Cy10RingSymRxLo = 5 +Cy10AcceleratorNumber = 2 +# List of core affinities +Cy10CoreAffinity = 18 # Crypto - User instance #11 Cy11Name = "SSL11" Cy11IsPolled = 1 -Cy11AcceleratorNumber = 1 -Cy11ExecutionEngine = 1 -Cy11BankNumber = 5 -Cy11NumConcurrentSymRequests = 512 -Cy11NumConcurrentAsymRequests = 64 - -Cy11RingAsymTx = 0 -Cy11RingAsymRx = 1 -Cy11RingSymTxHi = 2 -Cy11RingSymRxHi = 3 -Cy11RingSymTxLo = 4 -Cy11RingSymRxLo = 5 +Cy11AcceleratorNumber = 3 +# List of core affinities +Cy11CoreAffinity = 19 # Crypto - User instance #12 Cy12Name = "SSL12" Cy12IsPolled = 1 Cy12AcceleratorNumber = 0 -Cy12ExecutionEngine = 0 -Cy12BankNumber = 6 -Cy12NumConcurrentSymRequests = 512 -Cy12NumConcurrentAsymRequests = 64 - -Cy12RingAsymTx = 0 -Cy12RingAsymRx = 1 -Cy12RingSymTxHi = 2 -Cy12RingSymRxHi = 3 -Cy12RingSymTxLo = 4 -Cy12RingSymRxLo = 5 +# List of core affinities +Cy12CoreAffinity = 20 # Crypto - User instance #13 Cy13Name = "SSL13" Cy13IsPolled = 1 Cy13AcceleratorNumber = 1 -Cy13ExecutionEngine = 0 -Cy13BankNumber = 6 -Cy13NumConcurrentSymRequests = 512 -Cy13NumConcurrentAsymRequests = 64 - -Cy13RingAsymTx = 0 -Cy13RingAsymRx = 1 -Cy13RingSymTxHi = 2 -Cy13RingSymRxHi = 3 -Cy13RingSymTxLo = 4 -Cy13RingSymRxLo = 5 +# List of core affinities +Cy13CoreAffinity = 21 # Crypto - User instance #14 Cy14Name = "SSL14" Cy14IsPolled = 1 -Cy14AcceleratorNumber = 0 -Cy14ExecutionEngine = 1 -Cy14BankNumber = 7 -Cy14NumConcurrentSymRequests = 512 -Cy14NumConcurrentAsymRequests = 64 - -Cy14RingAsymTx = 0 -Cy14RingAsymRx = 1 -Cy14RingSymTxHi = 2 -Cy14RingSymRxHi = 3 -Cy14RingSymTxLo = 4 -Cy14RingSymRxLo = 5 +Cy14AcceleratorNumber = 2 +# List of core affinities +Cy14CoreAffinity = 22 # Crypto - User instance #15 Cy15Name = "SSL15" Cy15IsPolled = 1 -Cy15AcceleratorNumber = 1 -Cy15ExecutionEngine = 1 -Cy15BankNumber = 7 -Cy15NumConcurrentSymRequests = 512 -Cy15NumConcurrentAsymRequests = 64 - -Cy15RingAsymTx = 0 -Cy15RingAsymRx = 1 -Cy15RingSymTxHi = 2 -Cy15RingSymRxHi = 3 -Cy15RingSymTxLo = 4 -Cy15RingSymRxLo = 5 +Cy15AcceleratorNumber = 3 +# List of core affinities +Cy15CoreAffinity = 23 + + + +############################################## +# Wireless Process Instance Section +############################################## +[WIRELESS] +NumberCyInstances = 0 +NumberDcInstances = 0 +NumProcesses = 0 + + diff --git a/examples/dpdk_qat/config_files/shumway/dh89xxcc_qa_dev1.conf b/examples/dpdk_qat/config_files/shumway/dh89xxcc_qa_dev1.conf index 2649d708a6..c4db1e84f2 100644 --- a/examples/dpdk_qat/config_files/shumway/dh89xxcc_qa_dev1.conf +++ b/examples/dpdk_qat/config_files/shumway/dh89xxcc_qa_dev1.conf @@ -32,8 +32,8 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -######################################################################### -######################################################## +# ######################################################################### +# ######################################################## # # This file is the configuration for a single dh89xxcc_qa # device. @@ -46,36 +46,29 @@ # specific core. # Each ring bank as 16 rings (hardware assisted queues). # -######################################################## - -############################################## +######################################################### # General Section ############################################## [GENERAL] ServicesEnabled = cy0;cy1 +# Use version 2 of the config file +ConfigVersion = 2 # Look Aside Cryptographic Configuration cyHmacAuthMode = 1 # Look Aside Compression Configuration dcTotalSRAMAvailable = 0 -dcSRAMPerInstance = 0 # Firmware Location Configuration -Firmware_UofPath = uof_firmware.bin +Firmware_MofPath = mof_firmware.bin Firmware_MmpPath = mmp_firmware.bin -# QAT Parameters -Accel0AdminBankNumber = 0 -Accel0AcceleratorNumber = 0 -Accel0AdminTx = 0 -Accel0AdminRx = 1 - -Accel1AcceleratorNumber = 1 -Accel1AdminBankNumber = 0 -Accel1AdminTx = 0 -Accel1AdminRx = 1 +#Default values for number of concurrent requests*/ +CyNumConcurrentSymRequests = 512 +CyNumConcurrentAsymRequests = 64 +DcNumConcurrentRequests = 512 #Statistics, valid values: 1,0 statsGeneral = 1 @@ -90,103 +83,16 @@ statsPrime = 1 statsRsa = 1 statsSym = 1 +# Enables or disables Single Root Complex IO Virtualization. +# If this is enabled (1) then SRIOV and VT-d need to be enabled in +# BIOS and there can be no Cy or Dc instances created in PF (Dom0). +# If this i disabled (0) then SRIOV and VT-d need to be disabled +# in BIOS and Cy and/or Dc instances can be used in PF (Dom0) +SRIOV_Enabled = 0 + #Debug feature, if set to 1 it enables additional entries in /proc filesystem ProcDebug = 1 - -################################################ -# -# Hardware Access Ring Bank Configuration -# Each Accelerator has 8 ring banks (0-7) -# If the OS supports MSI-X, each ring bank has an -# steerable MSI-x interrupt which may be -# affinitized to a particular node/core. -# -################################################ - - -[Accelerator0] -Bank0InterruptCoalescingEnabled = 1 -Bank0InterruptCoalescingTimerNs = 10000 -Bank0CoreIDAffinity = 8 -Bank0InterruptCoalescingNumResponses = 0 - -Bank1InterruptCoalescingEnabled = 1 -Bank1InterruptCoalescingTimerNs = 10000 -Bank1CoreIDAffinity = 10 -Bank1InterruptCoalescingNumResponses = 0 - -Bank2InterruptCoalescingEnabled = 1 -Bank2InterruptCoalescingTimerNs = 10000 -Bank2CoreIDAffinity = 12 -Bank2InterruptCoalescingNumResponses = 0 - -Bank3InterruptCoalescingEnabled = 1 -Bank3InterruptCoalescingTimerNs = 10000 -Bank3CoreIDAffinity = 14 -Bank3InterruptCoalescingNumResponses = 0 - -Bank4InterruptCoalescingEnabled = 1 -Bank4InterruptCoalescingTimerNs = 10000 -Bank4CoreIDAffinity = 24 -Bank4InterruptCoalescingNumResponses = 0 - -Bank5InterruptCoalescingEnabled = 1 -Bank5InterruptCoalescingTimerNs = 10000 -Bank5CoreIDAffinity = 26 -Bank5InterruptCoalescingNumResponses = 0 - -Bank6InterruptCoalescingEnabled = 1 -Bank6InterruptCoalescingTimerNs = 10000 -Bank6CoreIDAffinity = 28 -Bank6InterruptCoalescingNumResponses = 0 - -Bank7InterruptCoalescingEnabled = 1 -Bank7InterruptCoalescingTimerNs = 10000 -Bank7CoreIDAffinity = 30 -Bank7InterruptCoalescingNumResponses = 0 - -[Accelerator1] -Bank0InterruptCoalescingEnabled = 1 -Bank0InterruptCoalescingTimerNs = 10000 -Bank0CoreIDAffinity = 9 -Bank0InterruptCoalescingNumResponses = 0 - -Bank1InterruptCoalescingEnabled = 1 -Bank1InterruptCoalescingTimerNs = 10000 -Bank1CoreIDAffinity = 11 -Bank1InterruptCoalescingNumResponses = 0 - -Bank2InterruptCoalescingEnabled = 1 -Bank2InterruptCoalescingTimerNs = 10000 -Bank2CoreIDAffinity = 13 -Bank2InterruptCoalescingNumResponses = 0 - -Bank3InterruptCoalescingEnabled = 1 -Bank3InterruptCoalescingTimerNs = 10000 -Bank3CoreIDAffinity = 15 -Bank3InterruptCoalescingNumResponses = 0 - -Bank4InterruptCoalescingEnabled = 1 -Bank4InterruptCoalescingTimerNs = 10000 -Bank4CoreIDAffinity = 25 -Bank4InterruptCoalescingNumResponses = 0 - -Bank5InterruptCoalescingEnabled = 1 -Bank5InterruptCoalescingTimerNs = 10000 -Bank5CoreIDAffinity = 27 -Bank5InterruptCoalescingNumResponses = 0 - -Bank6InterruptCoalescingEnabled = 1 -Bank6InterruptCoalescingTimerNs = 10000 -Bank6CoreIDAffinity = 29 -Bank6InterruptCoalescingNumResponses = 0 - -Bank7InterruptCoalescingEnabled = 1 -Bank7InterruptCoalescingTimerNs = 10000 -Bank7CoreIDAffinity = 31 -Bank7InterruptCoalescingNumResponses = 0 - ####################################################### # # Logical Instances Section @@ -205,31 +111,20 @@ Bank7InterruptCoalescingNumResponses = 0 # the user mode process. # To allow the driver correctly configure the # logical instances associated with this user process, -# the process must call the icp_sal_userStart(...) +# the process must call the icp_sal_userStartMultiProcess(...) # passing the xxxxx string during process initialisation. -# When the user space process is finish it must call +# When the user space process is finished it must call # icp_sal_userStop(...) to free resources. -# If there are multiple devices present in the system all conf -# files that describe the devices must have the same address domain -# sections even if the address domain does not configure any instances -# on that particular device. So if icp_sal_userStart("xxxxx") is called -# then user process address domain [xxxxx] needs to be present in all -# conf files for all devices in the system. +# NumProcesses will indicate the maximum number of processes +# that can call icp_sal_userStartMultiProcess on this instance. +# Warning: the resources are preallocated: if NumProcesses +# is too high, the driver will fail to load # # Items configurable by a logical instance are: # - Name of the logical instance # - The accelerator associated with this logical # instance -# - The ring bank associated with this logical -# instance. -# - The response mode associated wth this logical instance (0 -# for IRQ or 1 for polled). -# - The ring for receiving and the ring for transmitting. -# - The number of concurrent requests supported by a pair of -# rings on this instance (tx + rx). Note this number affects -# the amount of memory allocated by the driver. Also -# BankInterruptCoalescingNumResponses is only supported for -# number of concurrent requests equal to 512. +# - The core the instance is affinitized to (optional) # # Note: Logical instances may not share the same ring, but # may share a ring bank. @@ -237,30 +132,27 @@ Bank7InterruptCoalescingNumResponses = 0 # The format of the logical instances are: # - For crypto: # CyName = "xxxx" -# CyAcceleratorNumber = 0|1 -# CyBankNumber = 0-7 -# CyIsPolled = 0|1 -# CyNumConcurrentSymRequests = 64|128|256|512|1024|2048|4096 -# CyNumConcurrentAsymRequests = 64|128|256|512|1024|2048|4096 -# CyRingAsymTx = 0-15 -# CyRingAsymRx = 0-15 -# CyRingSymTxHi = 0-15 -# CyRingSymRxHi = 0-15 -# CyRingSymRx = 0-15 +# CyAcceleratorNumber = 0-3 +# CyCoreAffinity = 0-7 # # - For Data Compression # DcName = "xxxx" -# DcAcceleratorNumber = 0|1 -# DcBankNumber = 0-7 -# DcIsPolled = 0|1 -# DcNumConcurrentRequests = 64|128|256|512|1024|2048|4096 -# DcRingTx = 0-15 -# DcRingRx = 0-15 +# DcAcceleratorNumber = 0-1 +# DcCoreAffinity = 0-7 # # Where: # - n is the number of this logical instance starting at 0. # - xxxx may be any ascii value which identifies the logical instance. # +# Note: for user space processes, a list of values can be specified for +# the accelerator number and the core affinity: for example +# Cy0AcceleratorNumber = 0,2 +# Cy0CoreAffinity = 0,2,4 +# These comma-separated lists will allow the multiple processes to use +# different accelerators and cores, and will wrap around the numbers +# in the list. In the above example, process 0 will use accelerator 0, +# and process 1 will use accelerator 2 +# ######################################################## ############################################## @@ -270,267 +162,134 @@ Bank7InterruptCoalescingNumResponses = 0 NumberCyInstances = 0 NumberDcInstances = 0 - ############################################## # User Process Instance Section ############################################## [SSL] NumberCyInstances = 16 NumberDcInstances = 0 +NumProcesses = 1 +LimitDevAccess = 0 # Crypto - User instance #0 Cy0Name = "SSL0" Cy0IsPolled = 1 Cy0AcceleratorNumber = 0 -Cy0ExecutionEngine = 0 -Cy0BankNumber = 0 -Cy0NumConcurrentSymRequests = 512 -Cy0NumConcurrentAsymRequests = 64 - -Cy0RingAsymTx = 2 -Cy0RingAsymRx = 3 -Cy0RingSymTxHi = 4 -Cy0RingSymRxHi = 5 -Cy0RingSymTxLo = 6 -Cy0RingSymRxLo = 7 +# List of core affinities +Cy0CoreAffinity = 8 # Crypto - User instance #1 Cy1Name = "SSL1" -Cy1AcceleratorNumber = 1 -Cy1ExecutionEngine = 0 -Cy1BankNumber = 0 Cy1IsPolled = 1 -Cy1NumConcurrentSymRequests = 512 -Cy1NumConcurrentAsymRequests = 64 - -Cy1RingAsymTx = 2 -Cy1RingAsymRx = 3 -Cy1RingSymTxHi = 4 -Cy1RingSymRxHi = 5 -Cy1RingSymTxLo = 6 -Cy1RingSymRxLo = 7 +Cy1AcceleratorNumber = 1 +# List of core affinities +Cy1CoreAffinity = 9 # Crypto - User instance #2 Cy2Name = "SSL2" -Cy2IsPolled= 1 -Cy2AcceleratorNumber = 0 -Cy2ExecutionEngine = 1 -Cy2BankNumber = 1 -Cy2NumConcurrentSymRequests = 512 -Cy2NumConcurrentAsymRequests = 64 - -Cy2RingAsymTx = 0 -Cy2RingAsymRx = 1 -Cy2RingSymTxHi = 2 -Cy2RingSymRxHi = 3 -Cy2RingSymTxLo = 4 -Cy2RingSymRxLo = 5 +Cy2IsPolled = 1 +Cy2AcceleratorNumber = 2 +# List of core affinities +Cy2CoreAffinity = 10 # Crypto - User instance #3 Cy3Name = "SSL3" -Cy3AcceleratorNumber = 1 -Cy3ExecutionEngine = 1 -Cy3BankNumber = 1 Cy3IsPolled = 1 -Cy3NumConcurrentSymRequests = 512 -Cy3NumConcurrentAsymRequests = 64 - -Cy3RingAsymTx = 0 -Cy3RingAsymRx = 1 -Cy3RingSymTxHi = 2 -Cy3RingSymRxHi = 3 -Cy3RingSymTxLo = 4 -Cy3RingSymRxLo = 5 - +Cy3AcceleratorNumber = 3 +# List of core affinities +Cy3CoreAffinity = 11 # Crypto - User instance #4 Cy4Name = "SSL4" -Cy4IsPolled= 1 +Cy4IsPolled = 1 Cy4AcceleratorNumber = 0 -Cy4ExecutionEngine = 0 -Cy4BankNumber = 2 -Cy4NumConcurrentSymRequests = 512 -Cy4NumConcurrentAsymRequests = 64 - -Cy4RingAsymTx = 0 -Cy4RingAsymRx = 1 -Cy4RingSymTxHi = 2 -Cy4RingSymRxHi = 3 -Cy4RingSymTxLo = 4 -Cy4RingSymRxLo = 5 +# List of core affinities +Cy4CoreAffinity = 12 # Crypto - User instance #5 Cy5Name = "SSL5" -Cy5AcceleratorNumber = 1 -Cy5ExecutionEngine = 0 -Cy5BankNumber = 2 Cy5IsPolled = 1 -Cy5NumConcurrentSymRequests = 512 -Cy5NumConcurrentAsymRequests = 64 - -Cy5RingAsymTx = 0 -Cy5RingAsymRx = 1 -Cy5RingSymTxHi = 2 -Cy5RingSymRxHi = 3 -Cy5RingSymTxLo = 4 -Cy5RingSymRxLo = 5 +Cy5AcceleratorNumber = 1 +# List of core affinities +Cy5CoreAffinity = 13 # Crypto - User instance #6 Cy6Name = "SSL6" Cy6IsPolled = 1 -Cy6AcceleratorNumber = 0 -Cy6ExecutionEngine = 1 -Cy6BankNumber = 3 -Cy6NumConcurrentSymRequests = 512 -Cy6NumConcurrentAsymRequests = 64 - -Cy6RingAsymTx = 0 -Cy6RingAsymRx = 1 -Cy6RingSymTxHi = 2 -Cy6RingSymRxHi = 3 -Cy6RingSymTxLo = 4 -Cy6RingSymRxLo = 5 +Cy6AcceleratorNumber = 2 +# List of core affinities +Cy6CoreAffinity = 14 # Crypto - User instance #7 Cy7Name = "SSL7" -Cy7AcceleratorNumber = 1 -Cy7ExecutionEngine = 1 -Cy7BankNumber = 3 Cy7IsPolled = 1 -Cy7NumConcurrentSymRequests = 512 -Cy7NumConcurrentAsymRequests = 64 - -Cy7RingAsymTx = 0 -Cy7RingAsymRx = 1 -Cy7RingSymTxHi = 2 -Cy7RingSymRxHi = 3 -Cy7RingSymTxLo = 4 -Cy7RingSymRxLo = 5 +Cy7AcceleratorNumber = 3 +# List of core affinities +Cy7CoreAffinity = 15 # Crypto - User instance #8 Cy8Name = "SSL8" Cy8IsPolled = 1 Cy8AcceleratorNumber = 0 -Cy8ExecutionEngine = 0 -Cy8BankNumber = 4 -Cy8NumConcurrentSymRequests = 512 -Cy8NumConcurrentAsymRequests = 64 - -Cy8RingAsymTx = 0 -Cy8RingAsymRx = 1 -Cy8RingSymTxHi = 2 -Cy8RingSymRxHi = 3 -Cy8RingSymTxLo = 4 -Cy8RingSymRxLo = 5 +# List of core affinities +Cy8CoreAffinity = 24 # Crypto - User instance #9 Cy9Name = "SSL9" Cy9IsPolled = 1 Cy9AcceleratorNumber = 1 -Cy9ExecutionEngine = 0 -Cy9BankNumber = 4 -Cy9NumConcurrentSymRequests = 512 -Cy9NumConcurrentAsymRequests = 64 - -Cy9RingAsymTx = 0 -Cy9RingAsymRx = 1 -Cy9RingSymTxHi = 2 -Cy9RingSymRxHi = 3 -Cy9RingSymTxLo = 4 -Cy9RingSymRxLo = 5 +# List of core affinities +Cy9CoreAffinity = 25 # Crypto - User instance #10 Cy10Name = "SSL10" Cy10IsPolled = 1 -Cy10AcceleratorNumber = 0 -Cy10ExecutionEngine = 1 -Cy10BankNumber = 5 -Cy10NumConcurrentSymRequests = 512 -Cy10NumConcurrentAsymRequests = 64 - -Cy10RingAsymTx = 0 -Cy10RingAsymRx = 1 -Cy10RingSymTxHi = 2 -Cy10RingSymRxHi = 3 -Cy10RingSymTxLo = 4 -Cy10RingSymRxLo = 5 +Cy10AcceleratorNumber = 2 +# List of core affinities +Cy10CoreAffinity = 26 # Crypto - User instance #11 Cy11Name = "SSL11" Cy11IsPolled = 1 -Cy11AcceleratorNumber = 1 -Cy11ExecutionEngine = 1 -Cy11BankNumber = 5 -Cy11NumConcurrentSymRequests = 512 -Cy11NumConcurrentAsymRequests = 64 - -Cy11RingAsymTx = 0 -Cy11RingAsymRx = 1 -Cy11RingSymTxHi = 2 -Cy11RingSymRxHi = 3 -Cy11RingSymTxLo = 4 -Cy11RingSymRxLo = 5 +Cy11AcceleratorNumber = 3 +# List of core affinities +Cy11CoreAffinity = 27 # Crypto - User instance #12 Cy12Name = "SSL12" Cy12IsPolled = 1 Cy12AcceleratorNumber = 0 -Cy12ExecutionEngine = 0 -Cy12BankNumber = 6 -Cy12NumConcurrentSymRequests = 512 -Cy12NumConcurrentAsymRequests = 64 - -Cy12RingAsymTx = 0 -Cy12RingAsymRx = 1 -Cy12RingSymTxHi = 2 -Cy12RingSymRxHi = 3 -Cy12RingSymTxLo = 4 -Cy12RingSymRxLo = 5 +# List of core affinities +Cy12CoreAffinity = 28 # Crypto - User instance #13 Cy13Name = "SSL13" Cy13IsPolled = 1 Cy13AcceleratorNumber = 1 -Cy13ExecutionEngine = 0 -Cy13BankNumber = 6 -Cy13NumConcurrentSymRequests = 512 -Cy13NumConcurrentAsymRequests = 64 - -Cy13RingAsymTx = 0 -Cy13RingAsymRx = 1 -Cy13RingSymTxHi = 2 -Cy13RingSymRxHi = 3 -Cy13RingSymTxLo = 4 -Cy13RingSymRxLo = 5 +# List of core affinities +Cy13CoreAffinity = 29 # Crypto - User instance #14 Cy14Name = "SSL14" Cy14IsPolled = 1 -Cy14AcceleratorNumber = 0 -Cy14ExecutionEngine = 1 -Cy14BankNumber = 7 -Cy14NumConcurrentSymRequests = 512 -Cy14NumConcurrentAsymRequests = 64 - -Cy14RingAsymTx = 0 -Cy14RingAsymRx = 1 -Cy14RingSymTxHi = 2 -Cy14RingSymRxHi = 3 -Cy14RingSymTxLo = 4 -Cy14RingSymRxLo = 5 +Cy14AcceleratorNumber = 2 +# List of core affinities +Cy14CoreAffinity = 30 # Crypto - User instance #15 Cy15Name = "SSL15" Cy15IsPolled = 1 -Cy15AcceleratorNumber = 1 -Cy15ExecutionEngine = 1 -Cy15BankNumber = 7 -Cy15NumConcurrentSymRequests = 512 -Cy15NumConcurrentAsymRequests = 64 +Cy15AcceleratorNumber = 3 +# List of core affinities +Cy15CoreAffinity = 31 + + +############################################## +# Wireless Process Instance Section +############################################## +[WIRELESS] +NumberCyInstances = 0 +NumberDcInstances = 0 +NumProcesses = 0 + -Cy15RingAsymTx = 0 -Cy15RingAsymRx = 1 -Cy15RingSymTxHi = 2 -Cy15RingSymRxHi = 3 -Cy15RingSymTxLo = 4 -Cy15RingSymRxLo = 5 diff --git a/examples/dpdk_qat/config_files/stargo/dh89xxcc_qa_dev0.conf b/examples/dpdk_qat/config_files/stargo/dh89xxcc_qa_dev0.conf index 02672fd412..d44c2d2778 100644 --- a/examples/dpdk_qat/config_files/stargo/dh89xxcc_qa_dev0.conf +++ b/examples/dpdk_qat/config_files/stargo/dh89xxcc_qa_dev0.conf @@ -32,8 +32,8 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -######################################################################### -######################################################## +# ######################################################################### +# ######################################################## # # This file is the configuration for a single dh89xxcc_qa # device. @@ -46,36 +46,29 @@ # specific core. # Each ring bank as 16 rings (hardware assisted queues). # -######################################################## - -############################################## +######################################################### # General Section ############################################## [GENERAL] ServicesEnabled = cy0;cy1 +# Use version 2 of the config file +ConfigVersion = 2 # Look Aside Cryptographic Configuration cyHmacAuthMode = 1 # Look Aside Compression Configuration dcTotalSRAMAvailable = 0 -dcSRAMPerInstance = 0 # Firmware Location Configuration -Firmware_UofPath = uof_firmware.bin +Firmware_MofPath = mof_firmware.bin Firmware_MmpPath = mmp_firmware.bin -# QAT Parameters -Accel0AdminBankNumber = 0 -Accel0AcceleratorNumber = 0 -Accel0AdminTx = 0 -Accel0AdminRx = 1 - -Accel1AcceleratorNumber = 1 -Accel1AdminBankNumber = 0 -Accel1AdminTx = 0 -Accel1AdminRx = 1 +#Default values for number of concurrent requests*/ +CyNumConcurrentSymRequests = 512 +CyNumConcurrentAsymRequests = 64 +DcNumConcurrentRequests = 512 #Statistics, valid values: 1,0 statsGeneral = 1 @@ -90,103 +83,16 @@ statsPrime = 1 statsRsa = 1 statsSym = 1 +# Enables or disables Single Root Complex IO Virtualization. +# If this is enabled (1) then SRIOV and VT-d need to be enabled in +# BIOS and there can be no Cy or Dc instances created in PF (Dom0). +# If this i disabled (0) then SRIOV and VT-d need to be disabled +# in BIOS and Cy and/or Dc instances can be used in PF (Dom0) +SRIOV_Enabled = 0 + #Debug feature, if set to 1 it enables additional entries in /proc filesystem ProcDebug = 1 - -################################################ -# -# Hardware Access Ring Bank Configuration -# Each Accelerator has 8 ring banks (0-7) -# If the OS supports MSI-X, each ring bank has an -# steerable MSI-x interrupt which may be -# affinitized to a particular node/core. -# -################################################ - - -[Accelerator0] -Bank0InterruptCoalescingEnabled = 1 -Bank0InterruptCoalescingTimerNs = 10000 -Bank0CoreIDAffinity = 0 -Bank0InterruptCoalescingNumResponses = 0 - -Bank1InterruptCoalescingEnabled = 1 -Bank1InterruptCoalescingTimerNs = 10000 -Bank1CoreIDAffinity = 2 -Bank1InterruptCoalescingNumResponses = 0 - -Bank2InterruptCoalescingEnabled = 1 -Bank2InterruptCoalescingTimerNs = 10000 -Bank2CoreIDAffinity = 4 -Bank2InterruptCoalescingNumResponses = 0 - -Bank3InterruptCoalescingEnabled = 1 -Bank3InterruptCoalescingTimerNs = 10000 -Bank3CoreIDAffinity = 6 -Bank3InterruptCoalescingNumResponses = 0 - -Bank4InterruptCoalescingEnabled = 1 -Bank4InterruptCoalescingTimerNs = 10000 -Bank4CoreIDAffinity = 7 -Bank4InterruptCoalescingNumResponses = 0 - -Bank5InterruptCoalescingEnabled = 1 -Bank5InterruptCoalescingTimerNs = 10000 -Bank5CoreIDAffinity = 7 -Bank5InterruptCoalescingNumResponses = 0 - -Bank6InterruptCoalescingEnabled = 1 -Bank6InterruptCoalescingTimerNs = 10000 -Bank6CoreIDAffinity = 7 -Bank6InterruptCoalescingNumResponses = 0 - -Bank7InterruptCoalescingEnabled = 1 -Bank7InterruptCoalescingTimerNs = 10000 -Bank7CoreIDAffinity = 7 -Bank7InterruptCoalescingNumResponses = 0 - -[Accelerator1] -Bank0InterruptCoalescingEnabled = 1 -Bank0InterruptCoalescingTimerNs = 10000 -Bank0CoreIDAffinity = 1 -Bank0InterruptCoalescingNumResponses = 0 - -Bank1InterruptCoalescingEnabled = 1 -Bank1InterruptCoalescingTimerNs = 10000 -Bank1CoreIDAffinity = 3 -Bank1InterruptCoalescingNumResponses = 0 - -Bank2InterruptCoalescingEnabled = 1 -Bank2InterruptCoalescingTimerNs = 10000 -Bank2CoreIDAffinity = 5 -Bank2InterruptCoalescingNumResponses = 0 - -Bank3InterruptCoalescingEnabled = 1 -Bank3InterruptCoalescingTimerNs = 10000 -Bank3CoreIDAffinity = 7 -Bank3InterruptCoalescingNumResponses = 0 - -Bank4InterruptCoalescingEnabled = 1 -Bank4InterruptCoalescingTimerNs = 10000 -Bank4CoreIDAffinity = 7 -Bank4InterruptCoalescingNumResponses = 0 - -Bank5InterruptCoalescingEnabled = 1 -Bank5InterruptCoalescingTimerNs = 10000 -Bank5CoreIDAffinity = 7 -Bank5InterruptCoalescingNumResponses = 0 - -Bank6InterruptCoalescingEnabled = 1 -Bank6InterruptCoalescingTimerNs = 10000 -Bank6CoreIDAffinity = 7 -Bank6InterruptCoalescingNumResponses = 0 - -Bank7InterruptCoalescingEnabled = 1 -Bank7InterruptCoalescingTimerNs = 10000 -Bank7CoreIDAffinity = 7 -Bank7InterruptCoalescingNumResponses = 0 - ####################################################### # # Logical Instances Section @@ -205,31 +111,20 @@ Bank7InterruptCoalescingNumResponses = 0 # the user mode process. # To allow the driver correctly configure the # logical instances associated with this user process, -# the process must call the icp_sal_userStart(...) +# the process must call the icp_sal_userStartMultiProcess(...) # passing the xxxxx string during process initialisation. -# When the user space process is finish it must call +# When the user space process is finished it must call # icp_sal_userStop(...) to free resources. -# If there are multiple devices present in the system all conf -# files that describe the devices must have the same address domain -# sections even if the address domain does not configure any instances -# on that particular device. So if icp_sal_userStart("xxxxx") is called -# then user process address domain [xxxxx] needs to be present in all -# conf files for all devices in the system. +# NumProcesses will indicate the maximum number of processes +# that can call icp_sal_userStartMultiProcess on this instance. +# Warning: the resources are preallocated: if NumProcesses +# is too high, the driver will fail to load # # Items configurable by a logical instance are: # - Name of the logical instance # - The accelerator associated with this logical # instance -# - The ring bank associated with this logical -# instance. -# - The response mode associated wth this logical instance (0 -# for IRQ or 1 for polled). -# - The ring for receiving and the ring for transmitting. -# - The number of concurrent requests supported by a pair of -# rings on this instance (tx + rx). Note this number affects -# the amount of memory allocated by the driver. Also -# BankInterruptCoalescingNumResponses is only supported for -# number of concurrent requests equal to 512. +# - The core the instance is affinitized to (optional) # # Note: Logical instances may not share the same ring, but # may share a ring bank. @@ -237,30 +132,27 @@ Bank7InterruptCoalescingNumResponses = 0 # The format of the logical instances are: # - For crypto: # CyName = "xxxx" -# CyAcceleratorNumber = 0|1 -# CyBankNumber = 0-7 -# CyIsPolled = 0|1 -# CyNumConcurrentSymRequests = 64|128|256|512|1024|2048|4096 -# CyNumConcurrentAsymRequests = 64|128|256|512|1024|2048|4096 -# CyRingAsymTx = 0-15 -# CyRingAsymRx = 0-15 -# CyRingSymTxHi = 0-15 -# CyRingSymRxHi = 0-15 -# CyRingSymRx = 0-15 +# CyAcceleratorNumber = 0-3 +# CyCoreAffinity = 0-7 # # - For Data Compression # DcName = "xxxx" -# DcAcceleratorNumber = 0|1 -# DcBankNumber = 0-7 -# DcIsPolled = 0|1 -# DcNumConcurrentRequests = 64|128|256|512|1024|2048|4096 -# DcRingTx = 0-15 -# DcRingRx = 0-15 +# DcAcceleratorNumber = 0-1 +# DcCoreAffinity = 0-7 # # Where: # - n is the number of this logical instance starting at 0. # - xxxx may be any ascii value which identifies the logical instance. # +# Note: for user space processes, a list of values can be specified for +# the accelerator number and the core affinity: for example +# Cy0AcceleratorNumber = 0,2 +# Cy0CoreAffinity = 0,2,4 +# These comma-separated lists will allow the multiple processes to use +# different accelerators and cores, and will wrap around the numbers +# in the list. In the above example, process 0 will use accelerator 0, +# and process 1 will use accelerator 2 +# ######################################################## ############################################## @@ -270,139 +162,77 @@ Bank7InterruptCoalescingNumResponses = 0 NumberCyInstances = 0 NumberDcInstances = 0 - ############################################## # User Process Instance Section ############################################## [SSL] NumberCyInstances = 8 NumberDcInstances = 0 +NumProcesses = 1 +LimitDevAccess = 0 # Crypto - User instance #0 Cy0Name = "SSL0" Cy0IsPolled = 1 Cy0AcceleratorNumber = 0 -Cy0ExecutionEngine = 0 -Cy0BankNumber = 0 -Cy0NumConcurrentSymRequests = 512 -Cy0NumConcurrentAsymRequests = 64 - -Cy0RingAsymTx = 2 -Cy0RingAsymRx = 3 -Cy0RingSymTxHi = 4 -Cy0RingSymRxHi = 5 -Cy0RingSymTxLo = 6 -Cy0RingSymRxLo = 7 +# List of core affinities +Cy0CoreAffinity = 0 # Crypto - User instance #1 Cy1Name = "SSL1" -Cy1AcceleratorNumber = 1 -Cy1ExecutionEngine = 0 -Cy1BankNumber = 0 Cy1IsPolled = 1 -Cy1NumConcurrentSymRequests = 512 -Cy1NumConcurrentAsymRequests = 64 - -Cy1RingAsymTx = 2 -Cy1RingAsymRx = 3 -Cy1RingSymTxHi = 4 -Cy1RingSymRxHi = 5 -Cy1RingSymTxLo = 6 -Cy1RingSymRxLo = 7 +Cy1AcceleratorNumber = 1 +# List of core affinities +Cy1CoreAffinity = 1 # Crypto - User instance #2 Cy2Name = "SSL2" -Cy2IsPolled= 1 -Cy2AcceleratorNumber = 0 -Cy2ExecutionEngine = 1 -Cy2BankNumber = 1 -Cy2NumConcurrentSymRequests = 512 -Cy2NumConcurrentAsymRequests = 64 - -Cy2RingAsymTx = 0 -Cy2RingAsymRx = 1 -Cy2RingSymTxHi = 2 -Cy2RingSymRxHi = 3 -Cy2RingSymTxLo = 4 -Cy2RingSymRxLo = 5 +Cy2IsPolled = 1 +Cy2AcceleratorNumber = 2 +# List of core affinities +Cy2CoreAffinity = 2 # Crypto - User instance #3 Cy3Name = "SSL3" -Cy3AcceleratorNumber = 1 -Cy3ExecutionEngine = 1 -Cy3BankNumber = 1 Cy3IsPolled = 1 -Cy3NumConcurrentSymRequests = 512 -Cy3NumConcurrentAsymRequests = 64 - -Cy3RingAsymTx = 0 -Cy3RingAsymRx = 1 -Cy3RingSymTxHi = 2 -Cy3RingSymRxHi = 3 -Cy3RingSymTxLo = 4 -Cy3RingSymRxLo = 5 - +Cy3AcceleratorNumber = 3 +# List of core affinities +Cy3CoreAffinity = 3 # Crypto - User instance #4 Cy4Name = "SSL4" -Cy4IsPolled= 1 +Cy4IsPolled = 1 Cy4AcceleratorNumber = 0 -Cy4ExecutionEngine = 0 -Cy4BankNumber = 2 -Cy4NumConcurrentSymRequests = 512 -Cy4NumConcurrentAsymRequests = 64 - -Cy4RingAsymTx = 0 -Cy4RingAsymRx = 1 -Cy4RingSymTxHi = 2 -Cy4RingSymRxHi = 3 -Cy4RingSymTxLo = 4 -Cy4RingSymRxLo = 5 +# List of core affinities +Cy4CoreAffinity = 4 # Crypto - User instance #5 Cy5Name = "SSL5" -Cy5AcceleratorNumber = 1 -Cy5ExecutionEngine = 0 -Cy5BankNumber = 2 Cy5IsPolled = 1 -Cy5NumConcurrentSymRequests = 512 -Cy5NumConcurrentAsymRequests = 64 - -Cy5RingAsymTx = 0 -Cy5RingAsymRx = 1 -Cy5RingSymTxHi = 2 -Cy5RingSymRxHi = 3 -Cy5RingSymTxLo = 4 -Cy5RingSymRxLo = 5 +Cy5AcceleratorNumber = 1 +# List of core affinities +Cy5CoreAffinity = 5 # Crypto - User instance #6 Cy6Name = "SSL6" Cy6IsPolled = 1 -Cy6AcceleratorNumber = 0 -Cy6ExecutionEngine = 1 -Cy6BankNumber = 3 -Cy6NumConcurrentSymRequests = 512 -Cy6NumConcurrentAsymRequests = 64 - -Cy6RingAsymTx = 0 -Cy6RingAsymRx = 1 -Cy6RingSymTxHi = 2 -Cy6RingSymRxHi = 3 -Cy6RingSymTxLo = 4 -Cy6RingSymRxLo = 5 +Cy6AcceleratorNumber = 2 +# List of core affinities +Cy6CoreAffinity = 6 # Crypto - User instance #7 Cy7Name = "SSL7" -Cy7AcceleratorNumber = 1 -Cy7ExecutionEngine = 1 -Cy7BankNumber = 3 Cy7IsPolled = 1 -Cy7NumConcurrentSymRequests = 512 -Cy7NumConcurrentAsymRequests = 64 +Cy7AcceleratorNumber = 3 +# List of core affinities +Cy7CoreAffinity = 7 + +############################################## +# Wireless Process Instance Section +############################################## +[WIRELESS] +NumberCyInstances = 0 +NumberDcInstances = 0 +NumProcesses = 0 + -Cy7RingAsymTx = 0 -Cy7RingAsymRx = 1 -Cy7RingSymTxHi = 2 -Cy7RingSymRxHi = 3 -Cy7RingSymTxLo = 4 -Cy7RingSymRxLo = 5 diff --git a/examples/dpdk_qat/crypto.c b/examples/dpdk_qat/crypto.c index fe51511dbb..648ee11303 100644 --- a/examples/dpdk_qat/crypto.c +++ b/examples/dpdk_qat/crypto.c @@ -72,10 +72,6 @@ #include "crypto.h" -#define NUM_HMAC (10) -#define NUM_CRYPTO (7) - - /* CIPHER KEY LENGTHS */ #define KEY_SIZE_64_IN_BYTES (64 / 8) #define KEY_SIZE_56_IN_BYTES (56 / 8) @@ -203,7 +199,7 @@ struct glob_keys g_crypto_hash_keys = { * +18 takes this to the next cache line. */ -#define CRYPTO_OFFSET_TO_OPDATA (ETHER_MAX_LEN+18) +#define CRYPTO_OFFSET_TO_OPDATA (ETHER_MAX_LEN+18) /* * Default number of requests to place on the hardware ring before kicking the @@ -560,6 +556,10 @@ initCySymSession(const int pkt_cipher_alg, return CPA_STATUS_SUCCESS; } + /* Set flags for digest operations */ + sessionSetupData.digestIsAppended = CPA_FALSE; + sessionSetupData.verifyDigest = CPA_TRUE; + /* Get the session context size based on the crypto and/or hash operations*/ status = cpaCySymDpSessionCtxGetSize(cyInstanceHandle, &sessionSetupData, &sessionCtxSizeInBytes); @@ -576,7 +576,7 @@ initCySymSession(const int pkt_cipher_alg, } status = cpaCySymDpInitSession(cyInstanceHandle, &sessionSetupData, - CPA_TRUE,CPA_FALSE, *ppSessionCtx); + *ppSessionCtx); if (CPA_STATUS_SUCCESS != status) { printf("Crypto: cpaCySymDpInitSession failed with status %"PRId32"\n", status); return CPA_STATUS_FAIL; @@ -617,11 +617,11 @@ initSessionDataTables(struct qa_core_conf *qaCoreConf,uint32_t lcore_id) int crypto_init(void) { - if (CPA_STATUS_SUCCESS != icp_sal_userStart("SSL")) { + if (CPA_STATUS_SUCCESS != icp_sal_userStartMultiProcess("SSL",CPA_FALSE)) { printf("Crypto: Could not start sal for user space\n"); return CPA_STATUS_FAIL; } - printf("Crypto: icp_sal_userStart(\"SSL\")\n"); + printf("Crypto: icp_sal_userStartMultiProcess(\"SSL\",CPA_FALSE)\n"); return 0; } @@ -758,6 +758,9 @@ crypto_encrypt(struct rte_mbuf *rte_buff, enum cipher_alg c, enum hash_alg h) + CRYPTO_OFFSET_TO_OPDATA); uint32_t lcore_id; + if (unlikely(c >= NUM_CRYPTO || h >= NUM_HMAC)) + return CRYPTO_RESULT_FAIL; + lcore_id = rte_lcore_id(); bzero(opData, sizeof(CpaCySymDpOpData)); @@ -830,6 +833,9 @@ crypto_decrypt(struct rte_mbuf *rte_buff, enum cipher_alg c, enum hash_alg h) + CRYPTO_OFFSET_TO_OPDATA); uint32_t lcore_id; + if (unlikely(c >= NUM_CRYPTO || h >= NUM_HMAC)) + return CRYPTO_RESULT_FAIL; + lcore_id = rte_lcore_id(); bzero(opData, sizeof(CpaCySymDpOpData)); diff --git a/examples/dpdk_qat/crypto.h b/examples/dpdk_qat/crypto.h index f8f382d19f..2e871763b0 100644 --- a/examples/dpdk_qat/crypto.h +++ b/examples/dpdk_qat/crypto.h @@ -45,6 +45,7 @@ enum cipher_alg { CIPHER_DES3_CBC, CIPHER_AES, CIPHER_AES_CBC_128, + NUM_CRYPTO, }; enum hash_alg { @@ -58,7 +59,8 @@ enum hash_alg { HASH_SHA384, HASH_SHA512, HASH_AES_XCBC, - HASH_AES_XCBC_96 + HASH_AES_XCBC_96, + NUM_HMAC, }; /* Return value from crypto_{encrypt/decrypt} */ diff --git a/examples/dpdk_qat/main.c b/examples/dpdk_qat/main.c index 3baed0d5d5..62507fd88e 100644 --- a/examples/dpdk_qat/main.c +++ b/examples/dpdk_qat/main.c @@ -169,10 +169,11 @@ static struct rte_eth_conf port_conf = { .rx_adv_conf = { .rss_conf = { .rss_key = NULL, - .rss_hf = ETH_RSS_IPV4, + .rss_hf = ETH_RSS_IPV4 | ETH_RSS_IPV6, }, }, .txmode = { + .mq_mode = ETH_DCB_NONE, }, }; @@ -318,6 +319,7 @@ nic_tx_send_packet(struct rte_mbuf *pkt, uint8_t port) static inline uint8_t get_output_port(uint8_t input_port) { + RTE_BUILD_BUG_ON((RTE_MAX_ETHPORTS & 1) != 0); return (uint8_t)(input_port ^ 1); } @@ -492,10 +494,10 @@ static void print_usage(const char *prgname) { printf ("%s [EAL options] -- -p PORTMASK [--no-promisc]" - " [--config (port,queue,lcore)[,(port,queue,lcore]]\n" + " [--config '(port,queue,lcore)[,(port,queue,lcore)]'\n" " -p PORTMASK: hexadecimal bitmask of ports to configure\n" " --no-promisc: disable promiscuous mode (default is ON)\n" - " --config (port,queue,lcore): rx queues configuration\n", + " --config '(port,queue,lcore)': rx queues configuration\n", prgname); } @@ -795,7 +797,7 @@ MAIN(int argc, char **argv) fflush(stdout); ret = rte_eth_rx_queue_setup(portid, queueid, nb_rxd, - socketid, &rx_conf, pktmbuf_pool[socketid]); + socketid, &rx_conf, pktmbuf_pool[socketid]); if (ret < 0) rte_panic("rte_eth_rx_queue_setup: err=%d," "port=%d\n", ret, portid);