Linux cryptographic layer development
 help / color / mirror / Atom feed
From: Tom Zanussi <tom.zanussi@linux.intel.com>
To: Jerry Snitselaar <jsnitsel@redhat.com>
Cc: Jonathan Corbet <corbet@lwn.net>,
	linux-crypto@vger.kernel.org,  linux-doc@vger.kernel.org
Subject: Re: [PATCH] crypto: iaa: Fix some errors in IAA documentation
Date: Mon, 18 Mar 2024 14:01:18 -0500	[thread overview]
Message-ID: <64229faa848b78d263a9383f664b0c269ffd65c3.camel@linux.intel.com> (raw)
In-Reply-To: <hdb2l73guzxz2ck5qbkvpmpfiez646t33ocfqawdgxrnemwrpp@izvr4k6b2jft>

On Mon, 2024-03-18 at 10:58 -0700, Jerry Snitselaar wrote:
> 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@linux.intel.com>
> > > > Cc: Jonathan Corbet <corbet@lwn.net>
> > > > Cc: linux-crypto@vger.kernel.org
> > > > Cc: linux-doc@vger.kernel.org
> > > > Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com>
> > > > ---
> > > >  .../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              |
> 

Very nice. I think it would need a little explanation on how to read
the table and mention of how the defaults correspond to actual config
options e.g. sm+ = CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y,
etc...

Thanks,

Tom

> 
> Regards,
> Jerry
> 
> 
> 
> > 
> > > Regards,
> > > Jerry
> > > 
> > 
> 


  reply	other threads:[~2024-03-18 19:01 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-18  6:44 [PATCH] crypto: iaa: Fix some errors in IAA documentation Jerry Snitselaar
2024-03-18  7:49 ` Jerry Snitselaar
2024-03-18 16:26   ` Tom Zanussi
2024-03-18 17:58     ` Jerry Snitselaar
2024-03-18 19:01       ` Tom Zanussi [this message]
2024-03-18 19:46         ` Jerry Snitselaar
2024-03-18 15:40 ` Tom Zanussi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=64229faa848b78d263a9383f664b0c269ffd65c3.camel@linux.intel.com \
    --to=tom.zanussi@linux.intel.com \
    --cc=corbet@lwn.net \
    --cc=jsnitsel@redhat.com \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox