From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BE71C5672 for ; Tue, 31 Oct 2023 04:11:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="de5B+Z4U" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1698725483; x=1730261483; h=message-id:date:subject:to:references:from:in-reply-to: content-transfer-encoding:mime-version; bh=L30BKa+riwWHvozX4yGfSwgHn8Z9QlXJRfSlnaZSlls=; b=de5B+Z4UN2AtEwCNiP+LVx6wXTl7VCyLCNJtrO1rVuaHJkzSX4croLOu 5gKSd5TJEzrfPTJX1eAcUvRZj7x3LL9T0nFXb+toiKsD9xiDeMjgk8GZj 4kyf6hbYA1qFh/UbyTMcb9lODx4MkAP3Fg2rikG+fb7mE3U+RanW64vSX RLzxbDC1xV3qOAvpao7D56Wmx+9fmpmgA3qwhU659CzLomHak7mhCISF7 Mc2ocTAdOckDYmuKQ7/5KUUspnpJUJiBKiH9SpcQQOiDobZ0OqFJ0oiUW dOKB9OFHr+Xy2agmxY+wBTkyQnYRz7PdQKjrNZIvxrcv9MK3JdFdK5PMq A==; X-IronPort-AV: E=McAfee;i="6600,9927,10879"; a="385402142" X-IronPort-AV: E=Sophos;i="6.03,264,1694761200"; d="scan'208";a="385402142" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Oct 2023 21:11:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10879"; a="710302650" X-IronPort-AV: E=Sophos;i="6.03,264,1694761200"; d="scan'208";a="710302650" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga003.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 30 Oct 2023 21:11:22 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 30 Oct 2023 21:11:21 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 30 Oct 2023 21:11:21 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Mon, 30 Oct 2023 21:11:21 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.169) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Mon, 30 Oct 2023 21:11:20 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W+194ETql8AwMQxjdJt86Ax6yq7prfE9QvK0DwcmPnEcv7biiWaebTK/fpqJE4ojSBkmPhmQyuS0gazmEu+cXwy3QP9pPWtFvm5ejQcS5nrI4V818JfBrdSxWZmBK0KO9x21CgtJamant/gbOAf3V4LglNVxuRlk3Mg5MHxqN2zRLwOj0LybuxBu+9KvUOcqybKPNKtyl5cVWPI3na99PhxvGVJ9LloMdR1R0Otc52lsLBZH2SMsvJJXJiGCJLEZ9JA+YxTfrZLOunAHdcAkhvKVvHPnihcyNKRS7WJSrxiXxBmFFWiaCNSORtHrK3RQ9L/Q8JJAgMn/0lZkx0/fUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IYUdz5f5/em9BXe9WfIpqCOKPL+pvp157WkeM/pfFNk=; b=Yjq3Q8GRf3t1XgZdWN8tC8jpzI8gzw5hWfhd9ybiKSC1mHeIh4lXUgJy/uWORlFO1lpBxW6nWpAmTDWlJpO17M43wotNV/g2jcHIDms7UcRKPsQSFm7qFBb5lPKH0+FhgjoxGyYnGbqhl07iS1cj9ibBeRXQuDzvcHjfUTLF/DUjK4Q7tspVAqSfP7d4TfjSuuu5efaLwIMggTAgowGd7B2iJgqrlxe9h2XeBHbWoUBZam8ioz28mr6Vv/w9ESJK7rd45tE9NTfXoNbZWFSpN3SdDfBND8xPTxXTZJdhyPs1MFaDb3bW9679zPVUPELnFMuX23gdZQgOvrD8cC8lSw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DS0PR11MB7529.namprd11.prod.outlook.com (2603:10b6:8:141::20) by CH3PR11MB8589.namprd11.prod.outlook.com (2603:10b6:610:1ad::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.29; Tue, 31 Oct 2023 04:11:18 +0000 Received: from DS0PR11MB7529.namprd11.prod.outlook.com ([fe80::e4ae:3948:1f55:547d]) by DS0PR11MB7529.namprd11.prod.outlook.com ([fe80::e4ae:3948:1f55:547d%4]) with mapi id 15.20.6933.024; Tue, 31 Oct 2023 04:11:18 +0000 Message-ID: <10a2d6ca-80a3-423c-9795-2b330fbfb558@intel.com> Date: Tue, 31 Oct 2023 12:13:50 +0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] iommufd: Organize the mock domain alloc functions closer to Joerg's tree Content-Language: en-US To: Jason Gunthorpe , , Kevin Tian , Nicolin Chen References: <0-v1-90a855762c96+19de-mock_merge_jgg@nvidia.com> From: Yi Liu In-Reply-To: <0-v1-90a855762c96+19de-mock_merge_jgg@nvidia.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SG2PR02CA0013.apcprd02.prod.outlook.com (2603:1096:3:17::25) To DS0PR11MB7529.namprd11.prod.outlook.com (2603:10b6:8:141::20) Precedence: bulk X-Mailing-List: iommu@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR11MB7529:EE_|CH3PR11MB8589:EE_ X-MS-Office365-Filtering-Correlation-Id: d8370cb2-07e4-4b1a-8d39-08dbd9c76eb7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NRvnxl0VY8/MkZ+gefxxl1oSA/FWYnxipMY3IryqR0YzAqMOgKCt4xpMrqLf5bWSfiPzL4sNHw/jhSLXvFyV7f0do50zwrtXzafNaKIS7iNfSVBQSyg3Vnz/SFepkPswIF0CfViAX582Gxfu+nv7DpJrRoo9lx5Jimq3uYYmjYYKhAdPPNJakRmCSP7l36RcWSKgnug9Nhhm+dhSZx7ALBaE2W1gdLQagCPtPGTh2gigs+7DdZQRJV0+L4df/YcISGGEb/o2iBloZsm5LB7ap3lWsrOpwqGRISbRkpQAaV+Pegf5KGkR9iVgQdkEBk2wHh7Vy0+Mx/MrjZiI+ttDUu30OlLELdQtgYlCuu8L2JSwSt/c3LcUMKVVk/nWerOVMHl5UO/rW6bwevL/ptt5nOUWZq2qV6EoNPrqsdfyQjSsCIUlWqD3YIY/GB3BbIRGZDeFyn4+9KaT5bJwwap4UFzo3TNq7M8STG5pEa+T44PiPsb1y1B/odXEjeGw5b3gHoQq+CD19+N9e4CHdmtYPcBef7zMmPvc9hE6rxSlBK53R7mrVrWkDLEZkfW9EJwEbjD8UThIi1DD53KLe4mH/mYyR7wgQygbOekONv+0xO/gWqUqErLEO5ey5FbO8NyAcqpRQJco3RmGHlaIVsKxOw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR11MB7529.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(346002)(396003)(376002)(366004)(136003)(230922051799003)(1800799009)(451199024)(186009)(64100799003)(83380400001)(82960400001)(26005)(6506007)(6512007)(6666004)(2616005)(53546011)(31686004)(31696002)(86362001)(36756003)(38100700002)(6486002)(478600001)(316002)(8676002)(41300700001)(8936002)(5660300002)(2906002)(66476007)(66556008)(66946007)(110136005)(45980500001)(43740500002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RUphMS9DRzZEMzZuN2RrQ2VGeE5HdDJSRVRQb3RKOVhHKzl4YjlxMHhKMHJS?= =?utf-8?B?Ri8rdkVpL3RaWXVsTnZReVo1RTBnK2JYSnBpUm1Uenl3eEE3bkEzY3VOcUFl?= =?utf-8?B?L0dIVlZ6dU5lcGhiemJVMks5L0pCL3h5aFBiWXpCQUhSUGZTNmtFRk1aTWZL?= =?utf-8?B?NjNTbnhlUDRMVTU4dXNKMjJTSUJGbGZ6UklMNWcrbXdrRWI4NnhJblA1RU9G?= =?utf-8?B?Nm5hNkR4MFpJWnQvUCtoVytueGU1czd4SW9wTnpWOHFWMy9zVmRhbE1hdVhl?= =?utf-8?B?OE5wcGZnUTAyU3BXREFjamhNZ2VoOW05bzh5VTNxc3o2Y3ZZMm1namI4K3ZZ?= =?utf-8?B?OGdzRGxGM3JOM1FsR0diMkxUU25Nb3lFN2pXSGF0MzBxZWRWK0lCaTlqUUJX?= =?utf-8?B?STNPUTE0VW43MkIxMkx5YVdEYURaVzNnSWQ1SWJrdk1uU1JOckx0REc5UU5H?= =?utf-8?B?TlVVV2NlRE0xeERQdFUxRGUrQWFJdVduK1VBU0dhbnJuTjE5K2R2ekZQS2dX?= =?utf-8?B?U0xteWxaektYMlpDOHFGUmxnNDhoVEdnN2xwc1lZOWFrR1ZTdHhEVXJFU1dy?= =?utf-8?B?bmQ4ZnlCd0RWUE5sQkROUCtnTG55Mlp6V2FtZVU3S1lNUElhR0Y5cnU3QklJ?= =?utf-8?B?TG43bTRibU5FQVBrQnluU0M2Y2o0SGdBSkN5Z05sa0Yxejd2dUZWODRZanBF?= =?utf-8?B?NmxJV2FyR3RMTUlFRWZRN1NGQUEvRDZ5dFZYZ1dxU2NNMk54OUJKb1VGelg2?= =?utf-8?B?aUpDbmtlTnZtS2hQTG1lZXpFWEN3ckJmU1RMTTh5YkdsNlVVaDUxNUV1WGZu?= =?utf-8?B?eDQzemRIUDJoL0QvdzY2NDdmUHh6cHJ1YVNMRFVWZkR1aDhkN2RIVWhGT0lj?= =?utf-8?B?clZjVG1YSXZGbURsaXJOVDQ1R1Q0RG5WbkJGMldtTDlHQ25vS0d6ZGpjYkdh?= =?utf-8?B?eU4wc0c4bUZMeGVhemRRdDB4aGpxQVNjbDdzc3huQ2JiK1NNWVlTWDJIWkZr?= =?utf-8?B?bjROanhRejUxS0xYbFBjYU5rYnlZRE5tUGxGdDdEVnljaEduelc3LzRNNXo3?= =?utf-8?B?cHUwUjJHdU1yalQyVzR3cHZKVDl1eloxYTFTU1h4TTl6bld6WHRhblRERWw4?= =?utf-8?B?M04vV3dGZHhJRzlVVzFnbnNaaDhOakVnallIQ0hTUG8vOXo4MEl2WXpTbjI4?= =?utf-8?B?eXFmdmJUV0txL0pDWmoyS0NKS08zYW9zWGZhZDJrblI4SGJoKzN0Z1Y2WWVi?= =?utf-8?B?OStMT21ZZ1VnNXNsenpTNmR6MVQzR0FPTXNpamprVVFYUE1saTFwSExnbkUr?= =?utf-8?B?dkRnQy8rUzFnUVJiaHdwTk44bXdMT2c5VGZLRG5JVDJPU2hkK0E1MU5USlZI?= =?utf-8?B?SFZYUkdWbEZWa1dsS2tCQkxyL1g4a0ljWmliYlNDSUQyY2ZWdkU4R3dlbDVh?= =?utf-8?B?cnU4akJ6UGZIUVBnTm93WEVTRVZsckViV0oyOW1FSDFWN21hK05YYzMzbXp4?= =?utf-8?B?MHNqNHJCY2w0bzFtNll2bjY1TlVTMkNncTlFRXg4dTM2dlh0MjJFSDdlTUlL?= =?utf-8?B?ajJMMWtvbVBvbVJ3Zm9oZnNRKzk0bUpqVFBjMzJ4dmo4T0ZBWjRmRnBidEMz?= =?utf-8?B?NnZtK1hjUkE0ZXU2OWs1KzhSZ1FGaUo3SHc1RzlPT3RnZkNpZ0pNbnlZQ1lB?= =?utf-8?B?M2dmdmV5YlBkSTlLVk9SYmg0QUNpTXN5WXhOZ24yY1UvaEZmYXVxS2t4U20z?= =?utf-8?B?eDJGRWVkaDhvYW9mVFkyeWk3a2JjYTV1RUYzOGpSTDYyYmI2OVRRbnRRVDRh?= =?utf-8?B?a2E4RjZaK0tNenJvK1JqL1dUZUhtclFoNjdqUGNLcDM3Nk00NzlwMUFmeUpR?= =?utf-8?B?dlQzcGRhckhvOUJzZExSOGhFUHFNK1ZGeVVkYWl5SnpqcVhyOGVIT214Mlpa?= =?utf-8?B?TkF4L2NqTS9LbFRlNGlvelhaVHhaUVU4VFhHbDhhRnFORWRMV2I5TlVvU1J4?= =?utf-8?B?cmJnUUpoSEpGWXV0MmduSDc0WFJKRmJ0N3I0dzQ5ME9MT3NIZVVHOUJZV3Jr?= =?utf-8?B?NVNVMXlnNGRScmhSVUpmaDJFQVZEelRvZlJndHlUVTZlVTVmcDNGT1FYOExp?= =?utf-8?Q?xArh2oHaKCLw5X+JiArQXX5ij?= X-MS-Exchange-CrossTenant-Network-Message-Id: d8370cb2-07e4-4b1a-8d39-08dbd9c76eb7 X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7529.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2023 04:11:18.5416 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: t2ur2qmjmCKcFqzF4/CNyohXXkMFrZ8LaTlVJ5ZVe5F95gtOfRu1WCDMUYcUucutlFgblfBEUMpvhPhqvc70XA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB8589 X-OriginatorOrg: intel.com On 2023/10/31 06:53, Jason Gunthorpe wrote: > Patches in Joerg's iommu tree to convert the mock driver to use > domain_alloc_paging() that clash badly with the way the selftest changes > for nesting were structured. > > Massage the selftest so that it looks closer the code after the > domain_alloc_paging() conversion to ease the merge. Change > __mock_domain_alloc_paging() into mock_domain_alloc_paging() in the same > way as the iommu tree. The merge resolution then trivially takes both and > deletes mock_domain_alloc(). > > Signed-off-by: Jason Gunthorpe > --- > drivers/iommu/iommufd/selftest.c | 35 +++++++++++++++----------------- > 1 file changed, 16 insertions(+), 19 deletions(-) > > The merge conflict is a mess, this helps alot. > > diff --git a/drivers/iommu/iommufd/selftest.c b/drivers/iommu/iommufd/selftest.c > index a11d29f368ff82..d43a87737c1e88 100644 > --- a/drivers/iommu/iommufd/selftest.c > +++ b/drivers/iommu/iommufd/selftest.c > @@ -20,6 +20,8 @@ > static DECLARE_FAULT_ATTR(fail_iommufd); > static struct dentry *dbgfs_root; > static struct platform_device *selftest_iommu_dev; > +static const struct iommu_ops mock_ops; > +static struct iommu_domain_ops domain_nested_ops; > > size_t iommufd_test_memory_limit = 65536; > > @@ -222,24 +224,18 @@ const struct iommu_dirty_ops dirty_ops = { > .read_and_clear_dirty = mock_domain_read_and_clear_dirty, > }; > > -static const struct iommu_ops mock_ops; > -static struct iommu_domain_ops domain_nested_ops; > - > -static struct iommu_domain * > -__mock_domain_alloc_paging(unsigned int iommu_domain_type, bool needs_dirty_ops) > +static struct iommu_domain *mock_domain_alloc_paging(struct device *dev) > { > struct mock_iommu_domain *mock; > > mock = kzalloc(sizeof(*mock), GFP_KERNEL); > if (!mock) > - return ERR_PTR(-ENOMEM); > + return NULL; > mock->domain.geometry.aperture_start = MOCK_APERTURE_START; > mock->domain.geometry.aperture_end = MOCK_APERTURE_LAST; > mock->domain.pgsize_bitmap = MOCK_IO_PAGE_SIZE; > mock->domain.ops = mock_ops.default_domain_ops; > - if (needs_dirty_ops) > - mock->domain.dirty_ops = &dirty_ops; > - mock->domain.type = iommu_domain_type; > + mock->domain.type = IOMMU_DOMAIN_UNMANAGED; > xa_init(&mock->pfns); > return &mock->domain; > } > @@ -264,16 +260,11 @@ __mock_domain_alloc_nested(struct mock_iommu_domain *mock_parent, > > static struct iommu_domain *mock_domain_alloc(unsigned int iommu_domain_type) > { > - struct iommu_domain *domain; > - > if (iommu_domain_type == IOMMU_DOMAIN_BLOCKED) > return &mock_blocking_domain; > - if (iommu_domain_type != IOMMU_DOMAIN_UNMANAGED) > - return NULL; > - domain = __mock_domain_alloc_paging(iommu_domain_type, false); > - if (IS_ERR(domain)) > - domain = NULL; > - return domain; > + if (iommu_domain_type == IOMMU_DOMAIN_UNMANAGED) > + return mock_domain_alloc_paging(NULL); > + return NULL; a nit, will success oriented better suit here? if otherwise looks good to me. Reviewed-by: Yi Liu > } > > static struct iommu_domain * > @@ -290,14 +281,20 @@ mock_domain_alloc_user(struct device *dev, u32 flags, > struct mock_dev *mdev = container_of(dev, struct mock_dev, dev); > bool has_dirty_flag = flags & IOMMU_HWPT_ALLOC_DIRTY_TRACKING; > bool no_dirty_ops = mdev->flags & MOCK_FLAGS_DEVICE_NO_DIRTY; > + struct iommu_domain *domain; > > if (flags & (~(IOMMU_HWPT_ALLOC_NEST_PARENT | > IOMMU_HWPT_ALLOC_DIRTY_TRACKING))) > return ERR_PTR(-EOPNOTSUPP); > if (user_data || (has_dirty_flag && no_dirty_ops)) > return ERR_PTR(-EOPNOTSUPP); > - return __mock_domain_alloc_paging(IOMMU_DOMAIN_UNMANAGED, > - has_dirty_flag); > + domain = mock_domain_alloc_paging(NULL); > + if (!domain) > + return ERR_PTR(-ENOMEM); > + if (has_dirty_flag) > + container_of(domain, struct mock_iommu_domain, domain) > + ->domain.dirty_ops = &dirty_ops; > + return domain; > } > > /* must be mock_domain_nested */ > > base-commit: 2e22aac3ea9cfc0ec3209c96644f60c1806a8117 -- Regards, Yi Liu