On Mon, Mar 18, 2024 at 11:26:31AM -0500, Tom Zanussi wrote: > Hi Jerry, > > On Mon, 2024-03-18 at 00:49 -0700, Jerry Snitselaar wrote: > > On Sun, Mar 17, 2024 at 11:44:21PM -0700, Jerry Snitselaar wrote: > > > This cleans up the following issues I ran into when trying to use > > > the > > > scripts and commands in the iaa-crypto.rst document. > > > > > > - Fix incorrect arguments being passed to accel-config > > > config-wq. > > > - Replace --device_name with --driver-name. > > > - Replace --driver_name with --driver-name. > > > - Replace --size with --wq-size. > > > - Add missing --priority argument. > > > - Add missing accel-config config-engine command after the > > > config-wq commands. > > > - Fix wq name passed to accel-config config-wq. > > > - Add rmmod/modprobe of iaa_crypto to script that disables, > > > then enables all devices and workqueues to avoid enable-wq > > > failing with -EEXIST when trying to register to compression > > > algorithm. > > > - Fix device name in cases where iaa was used instead of iax. > > > > > > Cc: Tom Zanussi <tom.zanussi@xxxxxxxxxxxxxxx> > > > Cc: Jonathan Corbet <corbet@xxxxxxx> > > > Cc: linux-crypto@xxxxxxxxxxxxxxx > > > Cc: linux-doc@xxxxxxxxxxxxxxx > > > Signed-off-by: Jerry Snitselaar <jsnitsel@xxxxxxxxxx> > > > --- > > > .../driver-api/crypto/iaa/iaa-crypto.rst | 22 ++++++++++++++- > > > ---- > > > 1 file changed, 16 insertions(+), 6 deletions(-) > > > > > > diff --git a/Documentation/driver-api/crypto/iaa/iaa-crypto.rst > > > b/Documentation/driver-api/crypto/iaa/iaa-crypto.rst > > > index de587cf9cbed..330d35df5f16 100644 > > > --- a/Documentation/driver-api/crypto/iaa/iaa-crypto.rst > > > +++ b/Documentation/driver-api/crypto/iaa/iaa-crypto.rst > > > @@ -179,7 +179,9 @@ has the old 'iax' device naming in place) :: > > > > > > # configure wq1.0 > > > > > > - accel-config config-wq --group-id=0 --mode=dedicated -- > > > type=kernel --name="iaa_crypto" --device_name="crypto" iax1/wq1.0 > > > + accel-config config-wq --group-id=0 --mode=dedicated -- > > > type=kernel --priority=10 --name="iaa_crypto" --driver- > > > name="crypto" iax1/wq1.0 > > > + > > > + accel-config config-engine iax1/engine1.0 --group-id=0 > > > > > > # enable IAA device iax1 > > > > > > @@ -536,12 +538,20 @@ The below script automatically does that:: > > > > > > echo "End Disable IAA" > > > > > > + echo "Reload iaa_crypto module" > > > + > > > + rmmod iaa_crypto > > > + modprobe iaa_crypto > > > + > > > + echo "End Reload iaa_crypto module" > > > + > > > # > > > # configure iaa wqs and devices > > > # > > > echo "Configure IAA" > > > for ((i = 1; i < ${num_iaa} * 2; i += 2)); do > > > - accel-config config-wq --group-id=0 --mode=dedicated -- > > > size=128 --priority=10 --type=kernel --name="iaa_crypto" -- > > > driver_name="crypto" iax${i}/wq${i} > > > + accel-config config-wq --group-id=0 --mode=dedicated --wq- > > > size=128 --priority=10 --type=kernel --name="iaa_crypto" --driver- > > > name="crypto" iax${i}/wq${i}.0 > > > + accel-config config-engine iax${i}/engine${i}.0 --group-id=0 > > > done > > > > > > echo "End Configure IAA" > > > @@ -552,10 +562,10 @@ The below script automatically does that:: > > > echo "Enable IAA" > > > > > > for ((i = 1; i < ${num_iaa} * 2; i += 2)); do > > > - echo enable iaa iaa${i} > > > - accel-config enable-device iaa${i} > > > - echo enable wq iaa${i}/wq${i}.0 > > > - accel-config enable-wq iaa${i}/wq${i}.0 > > > + echo enable iaa iax${i} > > > + accel-config enable-device iax${i} > > > + echo enable wq iax${i}/wq${i}.0 > > > + accel-config enable-wq iax${i}/wq${i}.0 > > > done > > > > > > echo "End Enable IAA" > > > -- > > > 2.41.0 > > > > > > > In addition to the above, the sections related to the modes seem > > to be off to me. > > > > Legacy mode in the Intel IOMMU context is when the IOMMU does not > > have > > scalable mode enabled. If you pass intel_iommu=off the Intel IOMMU > > will not be initialized, and I think that would correspond to the No > > IOMMU > > mode instead of Legacy mode. The other suggestion for Legacy mode of > > disabling VT-d in the BIOS would also be No IOMMU mode, but in > > addition to the dma remapping units being disabled it would disable > > interrupt remapping since the DMAR table would no longer be presented > > to the OS by the BIOS. > > > > I think the modes should be: > > > > Scalable mode: intel_iommu=on,sm_on > > Legacy mode: intel_iommu=on > > No IOMMU mode: intel_iommu=off (or VT-d disabled in BIOS) > > > > Yes, I think you're correct, those make more sense. > > > Since Intel IOMMU and scabale mode have config options that allow > > them > > to be enabled by default, there are different parameter variations > > that would match the above cases. I don't know if they need to > > be detailed here, or if it would just make it more confusing. > > > > Personally, I think it would be useful to have them detailed and might > lessen confusion for people setting things up and/or debugging a setup. > > Thanks, > > Tom Hi Tom, This is what I came up with last night for the kernel parameters when thinking about it: | mode \ default enable | intel_iommu + /sm + | intel_iommu + / sm - | intel_iommu - / sm + | intel_iommu - / sm - | |-----------------------+---------------------+----------------------+-----------------------+----------------------| | Scalable Mode | nothing | intel_iommu=sm_on | intel_iommu=on | intel_iommu=on,sm_on | | Legacy Mode | intel_iommu=sm_off | nothing | intel_iommu=on,sm_off | intel_iommu=on | | No IOMMU Mode | intel_iommu=off | intel_iommu=off | nothing | nothing | Regards, Jerry > > > Regards, > > Jerry > > >