Skip to content

Nginx QAT - #48

Open
ssherman8 wants to merge 8 commits into
intel:mainfrom
ssherman8:nginx_qat
Open

Nginx QAT#48
ssherman8 wants to merge 8 commits into
intel:mainfrom
ssherman8:nginx_qat

Conversation

@ssherman8

Copy link
Copy Markdown
Contributor

NGINX with QAT support added comparing GNR, GNR with QAT and Turin.

ssherman8and others added 3 commits August 4, 2026 20:29
Add the NGINX + Intel QAT workload guide covering hardware and software
prerequisites, async-mode-nginx build and configuration, and CPS
benchmarking results.
Includes the with/without QAT configuration pair used for the
comparison and the openssl s_time driver script for the handshake
test.
Updates to instance section in Details.
Replace the CPS chart with a version that drops the C3 SPR bar, so
every bar plotted has a corresponding configuration disclosure.
Update the Results text to reference the Xeon 6985P
(c4-highmem-288-metal) rather than the 6980P, matching the Details
section, and reword the worker_processes note so it no longer implies
a specific core-count ratio.
Correct the C4D entry to say Turin rather than GNR and drop QATEngine
from its software list, since QAT is not available on that platform.
adgubrud
adgubrud previously requested changes Aug 11, 2026
Comment threadsoftware/nginx/README.md
Comment threadsoftware/nginx/README.md
Comment threadsoftware/nginx/README.md Outdated
Comment threadsoftware/nginx/README.md Outdated
Comment threadsoftware/nginx/README.md Outdated
Comment threadsoftware/nginx/QAT/images/nginx_qat_comparison_intel_amd.png

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an NGINX + Intel® QAT optimization/benchmarking bundle under software/nginx, including documentation, sample configs (with/without QAT), and a CPS measurement script to compare baseline vs QAT-accelerated TLS.

Changes:

  • Added a detailed QAT setup + async-mode-nginx build/benchmark guide (README.md).
  • Added two NGINX configuration examples for baseline and QAT-enabled runs (nginx_without_qat.conf, nginx_with_qat.conf).
  • Added a CPS benchmarking helper script based on openssl s_time (connection_test.sh).

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 4 comments.

FileDescription
software/nginx/README.mdDocuments QAT requirements, setup, and benchmark methodology/results.
software/nginx/nginx_without_qat.confBaseline async-mode-nginx config with QAT modules disabled.
software/nginx/nginx_with_qat.confQAT-enabled async-mode-nginx config loading QAT modules/engine and qatzip settings.
software/nginx/connection_test.shScript to run parallel openssl s_time clients and compute aggregate CPS.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment threadsoftware/nginx/connection_test.sh Outdated
Comment threadsoftware/nginx/QAT/supporting_files/connection_test.sh
Comment threadsoftware/nginx/connection_test.sh Outdated
Comment threadsoftware/nginx/README.md Outdated
Move the detailed NGINX QAT guide into software/nginx/QAT/, with its
config files and test script under QAT/supporting_files/ and the results
chart under QAT/images/. Rename the chart to
nginx_qat_comparison_intel_amd.png to describe what it shows.
Add a short software/nginx/README.md landing page that points to the QAT
guide, leaving room for future non-QAT nginx entries.
Check each QAT device ID independently in a loop rather than chaining
lspci calls, so the reported device count does not depend on lspci's exit
status and stray errors are suppressed.
In connection_test.sh, initialize emulation to 0 so the flag check is
safe when the flag is absent, drop the stray backslash in the date format
so all three timestamps are written the same way, and replace the
ps/grep polling loop with wait, which returns once the client processes
this script started have exited and cannot match unrelated processes.
Expand CPS on first use.
Address the two remaining review comments on the QAT guide.
Replace the vague "install them through a kernel configuration" sentence
with concrete guidance: how to check which QAT drivers the running kernel
was configured with, which CONFIG options the 4xxx-series devices need,
the per-device minimum kernel versions, and a link to the QATlib System
Requirements page that documents the full kernel, firmware, and boot
parameter requirements.
Add a Required Environment Variables subsection before the configure
snippet describing what NGINX_INSTALL_DIR, OPENSSL_LIB, ICP_ROOT, and
QZ_ROOT point to, with an example export block. Note that ICP_ROOT and
QZ_ROOT are source trees rather than the package install paths used
earlier, and that the lib64 link paths assume a source-installed OpenSSL.
@adgubrud
adgubrud dismissed their stale reviewAugust 17, 2026 18:46

Changes addressed

@adgubrud
adgubrud self-requested a review August 17, 2026 18:46
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@ssherman8@adgubrud