New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support integration with new QAT products #6767
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, just one style error: "commit subject over 50 characters"
| @@ -104,7 +104,7 @@ static kstat_t *qat_ksp; | |||
| static CpaInstanceHandle dc_inst_handles[MAX_INSTANCES]; | |||
| static CpaDcSessionHandle session_handles[MAX_INSTANCES]; | |||
| static CpaBufferList **buffer_array[MAX_INSTANCES]; | |||
| static Cpa32U num_inst = 0; | |||
| static Cpa16U num_inst = 0; | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The type here was previously changed from Cpa16U to Cpa32U in commit 7a25f08 due to an overflow issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the overflow is in "inst_num", the commit 7a25f08 changed "num_inst" also to keep consistent, but it causes a build warning when compile with QAT driver (head file).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ahh yes, OK thanks for the clarification.
module/zfs/qat_compress.c
Outdated
| @@ -36,7 +36,7 @@ | |||
| * Max instances in QAT device, each instance is a channel to submit | |||
| * jobs to QAT hardware | |||
| */ | |||
| #define MAX_INSTANCES 6 | |||
| #define MAX_INSTANCES 48 | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This simply results in slightly larger arrays being allocated which are unused on the previous chipset, correct? It would be helpful to update the comment to document the maximum values per-chipset.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it is the maximum instances supported by the chipset. The real number of instances are defined in the QAT configure file. I will update comment, thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then this looks good to me pending an updated comment and a slightly shorted commit message subject.
Codecov Report
@@ Coverage Diff @@
## master #6767 +/- ##
==========================================
+ Coverage 74.36% 74.54% +0.17%
==========================================
Files 297 297
Lines 94371 94356 -15
==========================================
+ Hits 70181 70338 +157
+ Misses 24190 24018 -172
Continue to review full report at Codecov.
|
Support integration with new QAT products: Intel(R) C62x Chipset, or Atom(R) C3000 Processor Product Family SoC: 1. Detect new file name in auto-conf. 2. Change MAX_INSTANCES to 48. 3. Change "num_inst" to U16 to clean a build warning. Signed-off-by: Weigang Li <weigang.li@intel.com>
|
@behlendorf I've updated the comments, please take a look, thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! I'll get it merged once the bots are done with it.
|
@behlendorf thanks Brian! |
Support integration with new QAT products: Intel(R) C62x Chipset, or Atom(R) C3000 Processor Product Family SoC: 1. Detect new file name in auto-conf. 2. Change MAX_INSTANCES to 48. 3. Change "num_inst" to U16 to clean a build warning. Reviewed-by: George Melikov <mail@gmelikov.ru> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Weigang Li <weigang.li@intel.com> Closes openzfs#6767
Support integration with new QAT products: Intel(R) C62x Chipset, or Atom(R) C3000 Processor Product Family SoC: 1. Detect new file name in auto-conf. 2. Change MAX_INSTANCES to 48. 3. Change "num_inst" to U16 to clean a build warning. Reviewed-by: George Melikov <mail@gmelikov.ru> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Weigang Li <weigang.li@intel.com> Closes openzfs#6767
Support integration with new QAT products: Intel(R) C62x Chipset, or Atom(R) C3000 Processor Product Family SoC: 1. Detect new file name in auto-conf. 2. Change MAX_INSTANCES to 48. 3. Change "num_inst" to U16 to clean a build warning. Reviewed-by: George Melikov <mail@gmelikov.ru> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Weigang Li <weigang.li@intel.com> Closes openzfs#6767
|
The API for HW version 1.7 products looks considerably different than the 1.6 version in #5846. Autoconf definitely fails two of the Are there plans to update ZFS QAT support for this driver? |
|
The driver you referred qat1.7.upstream.l.1.0.3-42.tar.gz doesn't support the kernel API, the kernel driver for the new device has not been released, so please wait for the new driver release. Once you get the kernel driver for HW 1.7, the latest ZFS release with this PR can support it. |
|
Thanks for the info. Makes sense since I couldn't find either of the modules checked for by autoconf anywhere in the driver source tree. I figured the API had changed, not that support wasn't included yet. |
Support integration with new QAT products: Intel(R) C62x Chipset, or Atom(R) C3000 Processor Product Family SoC: 1. Detect new file name in auto-conf. 2. Change MAX_INSTANCES to 48. 3. Change "num_inst" to U16 to clean a build warning. Reviewed-by: George Melikov <mail@gmelikov.ru> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Weigang Li <weigang.li@intel.com> Closes openzfs#6767
Support integration with new QAT products: Intel(R) C62x Chipset, or Atom(R) C3000 Processor Product Family SoC: 1. Detect new file name in auto-conf. 2. Change MAX_INSTANCES to 48. 3. Change "num_inst" to U16 to clean a build warning. Reviewed-by: George Melikov <mail@gmelikov.ru> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Weigang Li <weigang.li@intel.com> Closes openzfs#6767
|
The first driver update |
|
@bmerchant, sorry I can't give an actual date, I'm not in charge of the QAT driver release. Maybe you can feedback your request via the official support? |
|
Thanks, no worries. Our reps from that group are slow on responses so I thought I'd ask here too. |
|
@bmerchant I see.. anyway I can help you connect with the team to speed up the response if you like, we can talk offline. Thanks! |
|
The new QAT driver has been released which can be used to work with the latest QAT hardware C62xx chipset in ZFS, please download the driver from: https://01.org/intel-quickassist-technology |
|
@bmerchant please get the new driver from https://01.org/sites/default/files/downloads/intelr-quickassist-technology/qat1.7.l.4.3.0-00033.tar.gz |
|
@wli5 Great, thanks for the heads up! |
Support integration with new QAT products: Intel(R) C62x Chipset,
or Atom(R) C3000 Processor Product Family SoC:
https://01.org/sites/default/files/downloads/intelr-quickassist-technology/336212qatswgsgrev002review.pdf
Signed-off-by: Weigang Li weigang.li@intel.com
Description
Motivation and Context
There are some slight changes in the new QAT driver, e.g., the driver file name is changed, and max instances is increased. To integrate with the new driver, the changes in ZFS code are required.
These changes do not impact the previous QAT product.
How Has This Been Tested?
Types of changes
Checklist:
Signed-off-by.