Intel QuickAssist Technology Software For Linux*

Transcription

Intel QuickAssist TechnologySoftware for Linux*Getting Started GuideJune 2018Document Number: 336212-003

You may not use or facilitate the use of this document in connection with any infringement or other legal analysis concerning Intel products describedherein. You agree to grant Intel a non-exclusive, royalty-free license to any patent claim thereafter drafted which includes subject matter disclosedherein.Legal Lines and DisclaimersNo license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest Intel product specifications androadmaps.The products described may contain design defects or errors known as errata which may cause the product to deviate from published specifications.Current characterized errata are available on request.Copies of documents which have an order number and are referenced in this document may be obtained by calling 1-800-548-4725 or by visiting: http://www.intel.com/design/literature.htm.Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Learn moreat http://www.intel.com/ or from the OEM or retailer.No computer system can be absolutely secure.Intel, Intel Atom, Xeon, and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.*Other names and brands may be claimed as the property of others.Copyright 2018, Intel Corporation. All rights reserved.Intel QuickAssist Technology Software for Linux*Getting Started Guide2June 2018Document Number: 336212-003

Contents—Intel QuickAssist TechnologyContents1.0Introduction . 61.1About This Manual . 61.2Additional Information on Software. 71.2.1 Accessing Additional Content from the Intel Business Portal . 71.2.2 Product Documentation . 81.3Related Software and Documentation. 81.4Conventions and Terminology . 81.5Software Overview . 91.5.1 Features Implemented . 91.5.2 List of Files in Release. 91.5.3 Package Release Structure . 92.0Installing the Operating System . 112.1Acquiring CentOS* 7. 112.2Configure the BIOS. 112.3Installing CentOS* 7. 122.4Updating grub Configuration File . 132.5Configuring Linux* . 132.5.1 Updating yum Configuration Files . 132.5.1.1 /etc/yum.conf . 132.6System Security Considerations . 143.0Building and Installing Software . 153.1Unpacking the Software . 153.2Installation Overview . 163.2.1 Installation Commands . 163.2.2 Starting the Driver . 173.2.3 Installation Procedure . 173.3Starting/Stopping the Acceleration Software . 183.4Configuration Files. 194.0Sample Applications . 204.1Intel QuickAssist Accelerator Sample Application . 204.1.1 Compiling the Acceleration Sample Code . 204.1.2 Loading the Sample Code . 204.1.2.1 signOfLife Tests . 214.1.3 Test Results. 224.2Intel QuickAssist API Sample Code . 224.2.1 Compiling the Acceleration Functional Sample Code . 224.2.2 Executing the Acceleration Functional Sample Code in User Space . 235.0Installing, Building, and Running Yocto* . 245.1Building the Yocto* SDK Image . 245.2Creating the Linux* Boot Disk . 265.2.1 Locating the hddimg . 265.2.2 Creating the Boot Disk . 265.3Additional Information on Software. 275.3.1 Loading the Sample Code . 285.4Upgrading Acceleration Software . 286.0Physical Function to Virtual Function Communications . 30Appendix A Avoiding Kernel Crashes with PCH QAT SKUs . 31A.1Recommended Procedures. 31June 2018Document Number: 336212-003Intel QuickAssist Technology Software for Linux*Getting Started Guide3

Intel QuickAssist Technology—ContentsA.2Alternative Blacklisting Procedures .32Tables1234Product Documentation and Software. 8Terminology . 9Package Release Structure. 9Sample Code Parameters.21Intel QuickAssist Technology Software for Linux*Getting Started Guide4June 2018Document Number: 336212-003

Revision History—Intel QuickAssist TechnologyRevision HistoryDateRevisionJune 2018003Updated information on build instructions and software dependencies.August 2017002Added support for Intel Xeon Processor D Family devices.July 2017001Initial public release.June 2018Document Number: 336212-003DescriptionIntel QuickAssist Technology Software for Linux*Getting Started Guide5

Intel QuickAssist Technology—Introduction1.0Introduction1.1About This ManualThis getting started guide documents the instructions to obtain, build, install andexercise the Intel QuickAssist Technology Software for Hardware Version 1.7 package.Additionally, this document includes brief instructions on configuring the supporteddevelopment board.Note:The software described in this document relates to a platform that pairs the Intel C62x Chipset (also known as Platform Controller Hub, or PCH) with Intel Xeon Processor D Family System-on-a Chip (SoC) or Intel Atom C3000 Processor ProductFamily SoC. While the bulk of the software relates to the PCH or SoC, somecomponents such as the embedded drivers are platform-specific.In this document, for convenience: Software package is used as a generic term for the Intel QuickAssist TechnologySoftware for Hardware Version 1.7 package. Acceleration drivers is used as a generic term for the software that allows theIntel QuickAssist Software Library APIs to access the Intel QuickAssistAccelerator(s) integrated in the PCH and SoC.Note:The software package also works on the Intel Communications Chipset 8925 to 8955Series.Sections specific to all covered products include: Section 2.0, “Installing the Operating System” on page 11 Section 3.0, “Building and Installing Software” on page 15 Section 4.0, “Sample Applications” on page 20Sections specific to the Intel Atom C3000 Processor Product Family SoC include: Section 5.0, “Installing, Building, and Running Yocto*” on page 24Intel QuickAssist Technology Software for Linux*Getting Started Guide6June 2018Document Number: 336212-003

Introduction—Intel QuickAssist Technology1.2Additional Information on SoftwareThe software release package for Linux* has been validated with CentOS* 7 x86 64. Ithas also been validated with Yocto* for the Intel Atom Processor 3000 SoC.Collateral can be found on cessing Additional Content from the Intel Business Portal1. In a web browser, go to www.intel.com/ibl.2. Enter your login ID in the Login ID box. Check Remember my login ID only ifyou are not using a shared computer. Click Submit.Note: To acquire a new Intel Business Portal account, please contact your IntelField Sales Representative.3. Enter your password in the Password box. Click Submit.For the Intel C62x Chipset PCH:4. Within the design kit categories, under the Platform & Solutions heading, clickServer and Workstation. Under the Products heading, click Server andWorkstation Platforms Codenamed Purley, including Skylake Server andCannonlake Server processors, with Lewisburg PCH then, under theAssociated Collateral Lists heading, click Server and Workstation Platforms:Purley - Lewisburg Chipset Intel QuickAssist Technology Software.For the Intel Atom Processor 3000 SoC: Within the Design Kit Categories, under the Platform & Solutions heading, clickEmbedded. Under the Pre-Launch Products heading, click Embedded Platform CodeNamed Denverton-NS. Under the Associated Collateral Lists heading, clickMicroserver Platform Code Named Harrisonville - Denverton andDenverton-NS Intel QuickAssist Technology Software.June 2018Document Number: 336212-003Intel QuickAssist Technology Software for Linux*Getting Started Guide7

Intel QuickAssist Technology—Introduction1.2.2Product DocumentationTable 1 lists the documentation supporting this release. All documents can be accessedas described in Section 1.2.1, “Accessing Additional Content from the Intel BusinessPortal".Table 1.Product Documentation and SoftwareTitleNumber/Location 1.3Intel QuickAssist Technology Software for Linux* - Release Notes - HardwareVersion 1.733621101.orgIntel QuickAssist Technology Software for Linux* - Getting Started Guide Hardware Version 1.7 (this document)33621201.orgIntel QuickAssist Technology Software for Linux* - Programmer Guide Hardware Version 1.733621001.orgIntel QuickAssist Technology Software for Linux* - Software Drivers - HardwareVersion 1.756236601.orgIntel QuickAssist Technology Cryptographic API Reference Manual33068501.orgSoC Yocto BSP - PV565774Intel QuickAssist Technology API Programmer’s Guide33068401.orgIntel QuickAssist Technology Data Compression API Reference Manual33068601.orgIntel QuickAssist Technology - Performance Optimization Guide33068701.orgRelated Software and DocumentationRefer to the Development Kit User Guide for your hardware for additional informationon the development board including board layout, components, connectors, jumpers,headers, power and environmental requirements, and pre-boot firmware.Follow the directions in Section 1.2.1, “Accessing Additional Content from the IntelBusiness Portal" to locate this collateral.1.4Conventions and TerminologyThe following conventions are used in this manual: Courier font - code examples, command line entries, API names, parameters,filenames, directory paths, and executables Bold text - graphical user interface entries and buttons Italic text – key terms and publication titlesIntel QuickAssist Technology Software for Linux*Getting Started Guide8June 2018Document Number: 336212-003

Introduction—Intel QuickAssist TechnologyThe following terms and acronyms are used in this manual:Table 2.TerminologyTerm1.5DefinitionAPIApplication Programming InterfaceBIOSBasic Input/Output SystemBOMBill of MaterialsCYCryptographyDCData CompressionGRUBGR and Unified BootloaderOSOperating SystemPCHPlatform Controller HubPCIPeripheral Component InterconnectPFPhysical FunctionPKEPublic Key EncryptionQATIntel QuickAssist TechnologySoCSystem-on-a-ChipSRIOVSingle Root-I/O VirtualizationVFVirtual FunctionSoftware OverviewThe software is described in the following topics: Section 1.5.1, “Features Implemented” on page 9 Section 1.5.2, “List of Files in Release” on page 9 Section 1.5.3, “Package Release Structure” on page 91.5.1Features ImplementedNote:For feature details and limitations, if any, refer to the release notes.1.5.2List of Files in ReleaseA Bill of Materials (BOM) is included as a text file in the software package(s).1.5.3Package Release StructureAfter unpacking the tar file, the directory should contain:Table 3.Package Release StructureFiles/DirectoryCommentsQAT1.7.Upstream.L. version .tar.gzTop-level QAT package./filelistList of files in this package./installer.shInstaller scriptJune 2018Document Number: 336212-003Intel QuickAssist Technology Software for Linux*Getting Started Guide9

Intel QuickAssist Technology—IntroductionTable 3.Package Release se file./versionfileVersion file./quickassistTop-level acceleration software directoryIntel QuickAssist Technology Software for Linux*Getting Started Guide10June 2018Document Number: 336212-003

Installing the Operating System—Intel QuickAssist Technology2.0Installing the Operating SystemThe section describes the process of obtaining, installing, and configuring the operatingsystem (OS) on the development board.Although this document describes how to install and configure CentOS*7, Intel QuickAssist Technology can work with other Linux* distributions, such as Ubuntu* andFedora*. Refer to notes in Section 3.2.1 for specific installation commands.2.1Acquiring CentOS* 7Note:CentOS* 7 is based on Red Hat Enterprise Linux* 7.3 (or later) and may also bereferred to as CentOS 7.3. In general, using the latest version of CentOS 6 or CentOS 7is recommended, though it is possible that changes to the Linux kernel in the mostrecent versions may break some functionality for particular releases.CentOS 7 is a Linux distribution built on free and open source software. The softwarepackage from Intel does not include a distribution of CentOS or any other Linux variant.The software package includes Linux device driver source developed by Intel.CentOS 7 x86 64 can be obtained from: https://www.centos.org/download.Note:This document is written with the CentOS 7 DVD Install Media in mind. Using any LiveMedia versions is not recommended.2.2Configure the BIOSUpdate to the latest stable BIOS for your platform.If the performance achieved from the acceleration software is not meeting theadvertised capability, some BIOS changes (or other changes) may be required: Set the links to train to the highest possible speed, e.g., PCIe* Gen3 instead ofPCIe Gen2 or Gen1. Ensure that the link has trained to the expected width, e.g., x8 or x16. Disable some CPU power-saving features.Performance numbers matching the expected performance may not be achievable forall platform configurations or with the default configuration files. See the Intel QuickAssist Technology - Performance Optimization Guide (Table 1) for moreinformation on achieving best performance.In the BIOS setup, set the first boot device to be the DVD-ROM drive and the secondboot device to be the drive on which CentOS* 7 is to be installed.June 2018Document Number: 336212-003Intel QuickAssist Technology Software for Linux*Getting Started Guide11

Intel QuickAssist Technology—Installing the Operating System2.3Installing CentOS* 7Note:If you encounter issues installing the operating system, refer to Appendix A, “AvoidingKernel Crashes with PCH QAT SKUs” for a possible resolution.For complete additional (and non-standard) CentOS* installation instructions, refer tothe online installation guide at:https://wiki.centos.org/HowTosThis section contains basic installation instructions. For the purposes of this gettingstarted guide, it is assumed that the installation is from a DVD image.Note:If the hard drive already has an operating system, some of the following steps may beslightly different.1. When the development board starts, it should begin booting from the CentOS 7installation disc. If not, verify the Boot Order settings described in Section 2.2,“Configure the BIOS” on page 11.2. At the welcome prompt, select Test this Media & Install CentOS 7 and clickEnter.3. Select OK to begin testing the installation media.Note:It is recommended that the CentOS 7 installation disc is verified prior to an installationof the OS.4. After verifying the CentOS 7 installation disc(s), the graphical portion of theinstallation is loaded. Click Next to continue the installation process.5. Update DATE & TIME options if required, including the time zone, network time (ifdesired).6. SOFTWARE SELECTION. For the best evaluation experience and to avoid anybuild issues with the acceleration software package, it is recommended to select“Development and Creative Workstation” as the “Base Environment”. Select thefollowing “Add-Ons for Selected Environment” as well: “Additional Development”,“Development Tools”, and “Platform Development”. Also select “VirtualizationHypervisor” if virtualization is required (and supported by the acceleration softwarepackage).7. Select INSTALLATION DESTINATION. If the correct target device is notselected, select it. Click Done.8. Select NETWORK & HOST NAME. In most cases, changing the Ethernetconnection from “OFF” to “ON” is desired. Also set the Host name, if required. ClickDone. Ensure DHCP is selected.9. Once all items on the INSTALLATION SUMMARY are configured, select BeginInstallation.10. Set the root password and create a user. When creating a user, select “Make thisuser administrator” to enable sudo. Select Done and wait for the installation tocomplete.11. When the installation completes, the install DVD should be ejected. Remove theDVD and select Reboot when prompted.Note:If you encounter issues booting after installing the operating system, refer to Appendix A,“Avoiding Kernel Crashes with PCH QAT SKUs” for a possible resolution.When the installation completes, continue with Section 2.4, “Updating grubConfiguration File” on page 13.Intel QuickAssist Technology Software for Linux*Getting Started Guide12June 2018Document Number: 336212-003

Installing the Operating System—Intel QuickAssist Technology2.4Updating grub Configuration FileThis section contains instructions on updating the grub configuration file.Note:Root access is required to make grub changes.If the acceleration software will be used with a virtualized (SRIOV) environment (ifsupported by the acceleration software package), update grub to addintel iommu on to the boot options, using the following s/red hat enterprise linux/7/html/system administrators guide/ch-working with the grub 2 boot loaderConsult the following document for more information on using the acceleration softwarein a virtualized environment: Using Intel Virtualization Technology (Intel VT) withIntel QuickAssist Technology Application Note (see Section 1.2.2, “ProductDocumentation” on page 8).Using the boot flag intel iommu on prevents using the QAT physical function (PF) onthe host. To use Intel QAT on the host with this flag, refer to the virtualization appnote cited above for the instructions to use QAT virtual functions (VFs) on the host.2.5Configuring Linux*Once the operating system is installed, a few configuration items may need to becompleted, such as updating the yum configuration files. This section describes theseitems.2.5.1Updating yum Configuration Filesyum is an application that can be used to perform operating system updates. To useyum in a corporate network, the following change may be required.2.5.1.1/etc/yum.confIf the system needs to connect to internet through a corporate firewall, yum needs tobe updated to use the proxy server. Add a line similar to the following in the /etc/yum.conf file. The line can be added to the end of the file. Contact your networkadministrator for details on the proxy server.proxy http:// proxy server:portnum where proxy server:portnum is replaced with your server information.June 2018Document Number: 336212-003Intel QuickAssist Technology Software for Linux*Getting Started Guide13

Intel QuickAssist Technology—Installing the Operating System2.6System Security ConsiderationsThis section contains a high-level list of system security topics. Specific OS/filesystemtopics are outside of the scope of this document. For more information, see theprogrammer guide for your platform, specifically the Secure ArchitectureConsiderations section.Securing your operating system is critical. Consider the following items:Note:This is not an exhaustive list. Employ effective security policies and tools; for instance, SELinux is configuredcorrectly and is active. Run and configure the firewall(s). Prevent privilege escalation at boot (including recovery mode); for instance, set agrub password. Additional details are described below. Remove unnecessary software packages. Patch software in a timely manner. Monitor the system and the network. Configure and disable remote access, as appropriate. Disable network boot. Require secure passwords. Encrypt files, up to full-disk encryption. Ensure physical security of the system and the network. Use mlock to prevent swapping sensitive variables from RAM to disk. Zero out sensitive variables in RAM.Intel QuickAssist Technology Software for Linux*Getting Started Guide14June 2018Document Number: 336212-003

Building and Installing Software—Intel QuickAssist Technology3.0Building and Installing SoftwareThis chapter provides details on building and installing the software on thedevelopment kit.3.1Unpacking the SoftwareThe software package comes in the form of a tarball. See Section 1.2.1, “AccessingAdditional Content from the Intel Business Portal" for the software location.The instructions in this document assume that you have super user privileges.# su enter password for root 1. Create a working directory for the software. This directory can be user defined, butfor the purposes of this document, a recommendation is provided.# mkdir /QAT# cd /QATNote:In this document, the working directory is assumed to be /QAT. This directory is theICP ROOT.2. Transfer the tarball to the development board using any preferred method, forexample USB memory stick, CDROM, or network transfer in the /QAT directory.Unpack the tarball using the following command:# tar -zxof QAT tarball name 3. Restricting access to the files is recommended:# chmod -R o-rwx *Result: The package is unpacked and the installation script and other items arecreated in the /QAT directory. See Section 1.5.3, “Package Release Structure” onpage 9.June 2018Document Number: 336212-003Intel QuickAssist Technology Software for Linux*Getting Started Guide15

Intel QuickAssist Technology—Building and Installing Software3.2Installation OverviewThe installation procedure handles a number of tasks that would otherwise have to bedone manually, including the following: Create the shared object (.so) files by building the source code. Copy the shared object (.so) files to the right directory (e.g., /lib or /lib64). Build adf ctl and copy it to the right directories ( ICP ROOT/build and /usr/sbin). Copy the config files to /etc. Copy the firmware files to /lib/firmware. Copy the modules to the appropriate kernel source directory for loading byqat service. Start the qat service, which inserts the appropriate modules as required and runsadf ctl to bring up the devices. Set up the qat service to run on future boots (copy to /etc/init.d, runchkconfig to add the service).On recent Linux* kernels, there is an upstreamed version of the Intel QuickAssistTechnology driver, and it will interfere with the loading of the driver included with thesoftware package assumed in this document. The qat service accounts for this byremoving the upstreamed kernel modules, but if qat service is not used, errors maybe displayed when trying to load the driver.3.2.1Installation CommandsNote:If the OS was not installed with the correct software packages (see Section 2.3,“Installing CentOS* 7” on page 12), build error messages appear during theacceleration install. If CentOS was not installed correctly, reinstall the OS and select thecorrect SOFTWARE SELECTION option as described in Section 2.3, “InstallingCentOS* 7” on page 12, or run the following groupinstall "Development Tools"install pciutilsinstall libudev-develinstall kernel-devel- (uname -r)install gccinstall openssl-develIf you are installing Ubuntu*, run these commands instead:apt-get updateapt-get install pciutils-devNote:If you are installing a recent distribution of Fedora*, run these commands instead:dnfdnfdnfdnfdnfdnfgroupinstall "Development Tools"install gcc-c install systemd-develinstall kernel-devel- uname -r install elfutils-develinstall openssl-develIntel QuickAssist Technology Software for Linux*Getting Started Guide16June 2018Document Number: 336212-003

Building and Installing Software—Intel QuickAssist Technology3.2.2Starting the DriverTo start the driver, use the qat service, or rmmod the upstreamed modules (qat *,intel qat) and insert the modules built with the software package assumed in thisdocument before starting the driver.The acceleration software package supports the standard Linux software installationprocess.# ./configure [OPTION]. [VAR VALUE]# make# make installRun the following command to see the list of available options:# ./configure --helpNote:If you are installing an Intel C629 Series Chipset or any QAT device that does notsupport Public Key Encryption (PKE), enter the following configuration option:# ./configure --enable-icp-dc-sym-onlyThis option enables the data compression and symmetric code services and disablescryptographic services.3.2.3Installation ProcedureWhen installing acceleration software on a system that had a previous or modifiedversion of the acceleration software installed, it is strongly recommended to uninstallthe previous acceleration software first, using make uninstall in the accelerationsoftware package.1. Open a Terminal Window and switch to superuser.# su enter root password # cd /QAT2. Enter the following commands to build and install the acceleration software andsample code using default options:# ./configure# make install# make samples-installNote:To build 64-bit kernel components and 32-bit user-space components, run the makeinstall command with the following build parameter:# make ICP ARCH USER i686 installNote:After building/installing the acceleration software, secure the build output files by eitherdeleting them or setting permissions according to your needs.Note:The messages "Can't read private key" can be safely ignored. These are generatedbecause the modules are not signed by the private key of OS distribution.3. After installing the Acceleration Software, it is recommended to verify that theacceleration software kernel object is loaded and ready to use.# lsmod grep qaJune 2018Document Number: 336212-003Intel QuickAssist Technology Software for Linux*Getting Started Guide17

Intel QuickAssist Technology—Building and Installing SoftwareDepending on the specific hardware present, this command returns somethingsimilar to the following:# lsmod grep qaqat c62xqat dh895xccintel qatauthencuio13581135811415571777619259003 usdm drv,qat dh895xcc,qat c62x1 intel qat1 intel qatNot all modules are required, depending on the specific hardware present.If the acceleration software is not installed, all of these modules are typically notpresent.Applications need to make use of the static library (libqat.a) or the shared object(libqat s.so). If the installation procedure described in this chapter is not used, theshared object needs to be copied manually, or other steps (e.g., settingLD LIBRARY PATH) need to be taken to link to this file.It is a good idea to check /var/log/messages or dmesg to make sure that theacceleration service

Getting Started Guide June 2018 6 Document Number: 336212-003 1.0 Introduction 1.1 About This Manual This getting started guide documents the instructions to obtain, build, install and exercise the Intel QuickAssist