All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joerg Roedel <joro@8bytes.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Nicolin Chen <nicolinc@nvidia.com>,
	will@kernel.org, robin.murphy@arm.com,
	alex.williamson@redhat.com, suravee.suthikulpanit@amd.com,
	marcan@marcan.st, sven@svenpeter.dev, alyssa@rosenzweig.io,
	robdclark@gmail.com, dwmw2@infradead.org,
	baolu.lu@linux.intel.com, mjrosato@linux.ibm.com,
	gerald.schaefer@linux.ibm.com, orsonzhai@gmail.com,
	baolin.wang@linux.alibaba.com, zhang.lyra@gmail.com,
	thierry.reding@gmail.com, vdumpa@nvidia.com,
	jonathanh@nvidia.com, jean-philippe@linaro.org,
	cohuck@redhat.com, tglx@linutronix.de,
	shameerali.kolothum.thodi@huawei.com, thunder.leizhen@huawei.com,
	christophe.jaillet@wanadoo.fr, yangyingliang@huawei.com,
	jon@solid-run.com, iommu@lists.linux.dev,
	linux-kernel@vger.kernel.org, asahi@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org,
	linux-arm-msm@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-tegra@vger.kernel.org,
	virtualization@lists.linux-foundation.org, kvm@vger.kernel.org,
	kevin.tian@intel.com
Subject: Re: [PATCH v6 1/5] iommu: Return -EMEDIUMTYPE for incompatible domain and device/group
Date: Thu, 8 Sep 2022 15:28:22 +0200	[thread overview]
Message-ID: <Yxnt9uQTmbqul5lf@8bytes.org> (raw)
In-Reply-To: <YxjQiVnpU0dr7SHC@nvidia.com>

On Wed, Sep 07, 2022 at 02:10:33PM -0300, Jason Gunthorpe wrote:
> Sure, rust has all sorts of nice things. But the kernel doesn't follow
> rust idioms, and I don't think this is a great place to start
> experimenting with them.

It is actually a great place to start experimenting. The IOMMU
interfaces are rather domain specific and if we get something wrong the
damage is limited to a few callers. There are APIs much more exposed in
the kernel which would be worse for that.

But anyway, I am not insisting on it.

> It has been 3 months since EMEDIUMTYPE was first proposed and 6
> iterations of the series, don't you think it is a bit late in the game
> to try to experiment with rust error handling idioms?

If I am not mistaken, I am the person who gets blamed when crappy IOMMU
code is sent upstream. So it is also up to me to decide in which state
and how close to merging a given patch series is an whether it is
already 'late in the game'.

> So, again, would you be happy with a simple 
> 
>  #define IOMMU_EINCOMPATIBLE_DEVICE xx
> 
> to make it less "re-using random error codes"?

I am wondering if this can be solved by better defining what the return
codes mean and adjust the call-back functions to match the definition.
Something like:

	-ENODEV : Device not mapped my an IOMMU
	-EBUSY  : Device attached and domain can not be changed
	-EINVAL : Device and domain are incompatible
	...

That would be much more intuitive than using something obscure like
EMEDIUMTYPE.

Regards,

	Joerg

WARNING: multiple messages have this Message-ID (diff)
From: Joerg Roedel <joro@8bytes.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: linux-s390@vger.kernel.org, marcan@marcan.st,
	mjrosato@linux.ibm.com, linux-kernel@vger.kernel.org,
	thierry.reding@gmail.com, will@kernel.org, alyssa@rosenzweig.io,
	jean-philippe@linaro.org, kvm@vger.kernel.org,
	zhang.lyra@gmail.com, jon@solid-run.com, jonathanh@nvidia.com,
	iommu@lists.linux.dev, Nicolin Chen <nicolinc@nvidia.com>,
	yangyingliang@huawei.com, orsonzhai@gmail.com,
	gerald.schaefer@linux.ibm.com, sven@svenpeter.dev,
	linux-arm-msm@vger.kernel.org, vdumpa@nvidia.com,
	christophe.jaillet@wanadoo.fr, baolin.wang@linux.alibaba.com,
	thunder.leizhen@huawei.com, linux-tegra@vger.kernel.org,
	tglx@linutronix.de, virtualization@lists.linux-foundation.org,
	linux-arm-kernel@lists.infradead.org, dwmw2@infradead.org,
	cohuck@redhat.com, shameerali.kolothum.thodi@huawei.com,
	robdclark@gmail.com, asahi@lists.linux.dev,
	suravee.suthikulpanit@amd.com, robin.murphy@arm.com,
	baolu.lu@linux.intel.com
Subject: Re: [PATCH v6 1/5] iommu: Return -EMEDIUMTYPE for incompatible domain and device/group
Date: Thu, 8 Sep 2022 15:28:22 +0200	[thread overview]
Message-ID: <Yxnt9uQTmbqul5lf@8bytes.org> (raw)
In-Reply-To: <YxjQiVnpU0dr7SHC@nvidia.com>

On Wed, Sep 07, 2022 at 02:10:33PM -0300, Jason Gunthorpe wrote:
> Sure, rust has all sorts of nice things. But the kernel doesn't follow
> rust idioms, and I don't think this is a great place to start
> experimenting with them.

It is actually a great place to start experimenting. The IOMMU
interfaces are rather domain specific and if we get something wrong the
damage is limited to a few callers. There are APIs much more exposed in
the kernel which would be worse for that.

But anyway, I am not insisting on it.

> It has been 3 months since EMEDIUMTYPE was first proposed and 6
> iterations of the series, don't you think it is a bit late in the game
> to try to experiment with rust error handling idioms?

If I am not mistaken, I am the person who gets blamed when crappy IOMMU
code is sent upstream. So it is also up to me to decide in which state
and how close to merging a given patch series is an whether it is
already 'late in the game'.

> So, again, would you be happy with a simple 
> 
>  #define IOMMU_EINCOMPATIBLE_DEVICE xx
> 
> to make it less "re-using random error codes"?

I am wondering if this can be solved by better defining what the return
codes mean and adjust the call-back functions to match the definition.
Something like:

	-ENODEV : Device not mapped my an IOMMU
	-EBUSY  : Device attached and domain can not be changed
	-EINVAL : Device and domain are incompatible
	...

That would be much more intuitive than using something obscure like
EMEDIUMTYPE.

Regards,

	Joerg
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

WARNING: multiple messages have this Message-ID (diff)
From: Joerg Roedel <joro@8bytes.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: linux-s390@vger.kernel.org, marcan@marcan.st,
	mjrosato@linux.ibm.com, linux-kernel@vger.kernel.org,
	thierry.reding@gmail.com, will@kernel.org, alyssa@rosenzweig.io,
	jean-philippe@linaro.org, kvm@vger.kernel.org,
	zhang.lyra@gmail.com, jon@solid-run.com, jonathanh@nvidia.com,
	iommu@lists.linux.dev, Nicolin Chen <nicolinc@nvidia.com>,
	yangyingliang@huawei.com, orsonzhai@gmail.com,
	gerald.schaefer@linux.ibm.com, kevin.tian@intel.com,
	sven@svenpeter.dev, linux-arm-msm@vger.kernel.org,
	christophe.jaillet@wanadoo.fr, baolin.wang@linux.alibaba.com,
	thunder.leizhen@huawei.com, linux-tegra@vger.kernel.org,
	tglx@linutronix.de, virtualization@lists.linux-foundation.org,
	linux-arm-kernel@lists.infradead.org, dwmw2@infradead.org,
	cohuck@redhat.com, alex.williamson@redhat.com,
	shameerali.kolothum.thodi@huawei.com, robdclark@gmail.com,
	asahi@lists.linux.dev, suravee.suthikulpanit@amd.com,
	robin.murphy@arm.com, baolu.lu@linux.intel.com
Subject: Re: [PATCH v6 1/5] iommu: Return -EMEDIUMTYPE for incompatible domain and device/group
Date: Thu, 8 Sep 2022 15:28:22 +0200	[thread overview]
Message-ID: <Yxnt9uQTmbqul5lf@8bytes.org> (raw)
In-Reply-To: <YxjQiVnpU0dr7SHC@nvidia.com>

On Wed, Sep 07, 2022 at 02:10:33PM -0300, Jason Gunthorpe wrote:
> Sure, rust has all sorts of nice things. But the kernel doesn't follow
> rust idioms, and I don't think this is a great place to start
> experimenting with them.

It is actually a great place to start experimenting. The IOMMU
interfaces are rather domain specific and if we get something wrong the
damage is limited to a few callers. There are APIs much more exposed in
the kernel which would be worse for that.

But anyway, I am not insisting on it.

> It has been 3 months since EMEDIUMTYPE was first proposed and 6
> iterations of the series, don't you think it is a bit late in the game
> to try to experiment with rust error handling idioms?

If I am not mistaken, I am the person who gets blamed when crappy IOMMU
code is sent upstream. So it is also up to me to decide in which state
and how close to merging a given patch series is an whether it is
already 'late in the game'.

> So, again, would you be happy with a simple 
> 
>  #define IOMMU_EINCOMPATIBLE_DEVICE xx
> 
> to make it less "re-using random error codes"?

I am wondering if this can be solved by better defining what the return
codes mean and adjust the call-back functions to match the definition.
Something like:

	-ENODEV : Device not mapped my an IOMMU
	-EBUSY  : Device attached and domain can not be changed
	-EINVAL : Device and domain are incompatible
	...

That would be much more intuitive than using something obscure like
EMEDIUMTYPE.

Regards,

	Joerg

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2022-09-08 13:28 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-15 18:14 [PATCH v6 0/5] Simplify vfio_iommu_type1 attach/detach routine Nicolin Chen
2022-08-15 18:14 ` Nicolin Chen
2022-08-15 18:14 ` [PATCH v6 1/5] iommu: Return -EMEDIUMTYPE for incompatible domain and device/group Nicolin Chen
2022-08-15 18:14   ` Nicolin Chen
2022-09-07 12:41   ` Joerg Roedel
2022-09-07 12:41     ` Joerg Roedel
2022-09-07 12:41     ` Joerg Roedel
2022-09-07 13:47     ` Jason Gunthorpe
2022-09-07 13:47       ` Jason Gunthorpe
2022-09-07 14:06       ` Joerg Roedel
2022-09-07 14:06         ` Joerg Roedel
2022-09-07 14:06         ` Joerg Roedel
2022-09-07 17:10         ` Jason Gunthorpe
2022-09-07 17:10           ` Jason Gunthorpe
2022-09-08 13:28           ` Joerg Roedel [this message]
2022-09-08 13:28             ` Joerg Roedel
2022-09-08 13:28             ` Joerg Roedel
2022-09-08 16:14             ` Jason Gunthorpe
2022-09-08 16:14               ` Jason Gunthorpe
2022-09-09  3:17               ` Nicolin Chen
2022-09-09  3:17                 ` Nicolin Chen
2022-09-09  5:00                 ` Tian, Kevin
2022-09-09  5:00                   ` Tian, Kevin
2022-09-09  5:00                   ` Tian, Kevin
2022-09-09 12:07                   ` Jason Gunthorpe
2022-09-09 12:07                     ` Jason Gunthorpe
2022-09-13  2:22                     ` Tian, Kevin
2022-09-13  2:22                       ` Tian, Kevin
2022-09-13  2:22                       ` Tian, Kevin
2022-09-13  5:07                       ` Nicolin Chen
2022-09-13  5:07                         ` Nicolin Chen
2022-09-07 14:23       ` Robin Murphy
2022-09-07 14:23         ` Robin Murphy
2022-09-07 14:23         ` Robin Murphy
2022-09-07 17:00         ` Jason Gunthorpe
2022-09-07 17:00           ` Jason Gunthorpe
2022-09-07 19:41           ` Robin Murphy
2022-09-07 19:41             ` Robin Murphy
2022-09-07 19:41             ` Robin Murphy
2022-09-08  0:43             ` Jason Gunthorpe
2022-09-08  0:43               ` Jason Gunthorpe
2022-09-08  9:30               ` Tian, Kevin
2022-09-08  9:30                 ` Tian, Kevin
2022-09-08  9:30                 ` Tian, Kevin
2022-09-08 12:08                 ` Jason Gunthorpe
2022-09-08 12:08                   ` Jason Gunthorpe
2022-09-10 23:35                   ` Nicolin Chen
2022-09-10 23:35                     ` Nicolin Chen
2022-09-13  2:24                     ` Tian, Kevin
2022-09-13  2:24                       ` Tian, Kevin
2022-09-13  2:24                       ` Tian, Kevin
2022-09-13  8:36                       ` Nicolin Chen
2022-09-13  8:36                         ` Nicolin Chen
2022-09-08  9:54               ` Tian, Kevin
2022-09-08  9:54                 ` Tian, Kevin
2022-09-08  9:54                 ` Tian, Kevin
2022-09-08 10:25               ` Robin Murphy
2022-09-08 10:25                 ` Robin Murphy
2022-09-08 10:25                 ` Robin Murphy
2022-08-15 18:14 ` [PATCH v6 2/5] vfio/iommu_type1: Prefer to reuse domains vs match enforced cache coherency Nicolin Chen
2022-08-15 18:14   ` Nicolin Chen
2022-08-15 18:14 ` [PATCH v6 3/5] vfio/iommu_type1: Remove the domain->ops comparison Nicolin Chen
2022-08-15 18:14   ` Nicolin Chen
2022-08-15 18:14 ` [PATCH v6 4/5] vfio/iommu_type1: Clean up update_dirty_scope in detach_group() Nicolin Chen
2022-08-15 18:14   ` Nicolin Chen
2022-08-15 18:14 ` [PATCH v6 5/5] vfio/iommu_type1: Simplify group attachment Nicolin Chen
2022-08-15 18:14   ` Nicolin Chen

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=Yxnt9uQTmbqul5lf@8bytes.org \
    --to=joro@8bytes.org \
    --cc=alex.williamson@redhat.com \
    --cc=alyssa@rosenzweig.io \
    --cc=asahi@lists.linux.dev \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=christophe.jaillet@wanadoo.fr \
    --cc=cohuck@redhat.com \
    --cc=dwmw2@infradead.org \
    --cc=gerald.schaefer@linux.ibm.com \
    --cc=iommu@lists.linux.dev \
    --cc=jean-philippe@linaro.org \
    --cc=jgg@nvidia.com \
    --cc=jon@solid-run.com \
    --cc=jonathanh@nvidia.com \
    --cc=kevin.tian@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=marcan@marcan.st \
    --cc=mjrosato@linux.ibm.com \
    --cc=nicolinc@nvidia.com \
    --cc=orsonzhai@gmail.com \
    --cc=robdclark@gmail.com \
    --cc=robin.murphy@arm.com \
    --cc=shameerali.kolothum.thodi@huawei.com \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=sven@svenpeter.dev \
    --cc=tglx@linutronix.de \
    --cc=thierry.reding@gmail.com \
    --cc=thunder.leizhen@huawei.com \
    --cc=vdumpa@nvidia.com \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=will@kernel.org \
    --cc=yangyingliang@huawei.com \
    --cc=zhang.lyra@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.