lkml.org 
[lkml]   [2023]   [Sep]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v4 01/17] iommu: Add hwpt_type with user_data for domain_alloc_user op
From
On 2023-09-21 17:44, Jason Gunthorpe wrote:
> On Thu, Sep 21, 2023 at 08:12:03PM +0800, Baolu Lu wrote:
>> On 2023/9/21 15:51, Yi Liu wrote:
>>> diff --git a/include/uapi/linux/iommufd.h b/include/uapi/linux/iommufd.h
>>> index 4a7c5c8fdbb4..3c8660fe9bb1 100644
>>> --- a/include/uapi/linux/iommufd.h
>>> +++ b/include/uapi/linux/iommufd.h
>>> @@ -357,6 +357,14 @@ enum iommufd_hwpt_alloc_flags {
>>> IOMMU_HWPT_ALLOC_NEST_PARENT = 1 << 0,
>>> };
>>> +/**
>>> + * enum iommu_hwpt_type - IOMMU HWPT Type
>>> + * @IOMMU_HWPT_TYPE_DEFAULT: default
>>
>> How about s/default/vendor agnostic/ ?
>
> Please don't use the word vendor :)
>
> IOMMU_HWPT_TYPE_GENERIC perhaps if we don't like default

Ah yes, a default domain type, not to be confused with any default
domain type, including the default default domain type. Just in case
anyone had forgotten how gleefully fun this is :D

I particularly like the bit where we end up with this construct later:

switch (hwpt_type) {
case IOMMU_HWPT_TYPE_DEFAULT:
/* allocate a domain */
default:
/* allocate a different domain */
}

But of course neither case allocates a *default* domain, because it's
quite obviously the wrong place to be doing that.

I could go on enjoying myself, but basically yeah, "default" can't be a
type in itself (at best it would be a meta-type which could be
requested, such that it resolves to some real type to actually
allocate), so a good name should reflect what the type functionally
*means* to the user. IIUC the important distinction is that it's an
abstract kernel-owned pagetable for the user to indirectly control via
the API, rather than one it owns and writes directly (and thus has to be
in a specific agreed format).

Thanks,
Robin.

\
 
 \ /
  Last update: 2023-09-22 16:26    [W:0.823 / U:0.024 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site