From patchwork Fri Jan 5 23:00:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Felix Kuehling X-Patchwork-Id: 13512581 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB423C46CD2 for ; Fri, 5 Jan 2024 23:01:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4115D6B02C8; Fri, 5 Jan 2024 18:01:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3C1A16B02CA; Fri, 5 Jan 2024 18:01:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2619F6B02CC; Fri, 5 Jan 2024 18:01:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 114206B02C8 for ; Fri, 5 Jan 2024 18:01:07 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id D47C7A0AB1 for ; Fri, 5 Jan 2024 23:01:06 +0000 (UTC) X-FDA: 81646779732.01.9940216 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2072.outbound.protection.outlook.com [40.107.244.72]) by imf25.hostedemail.com (Postfix) with ESMTP id DDE80A002B for ; Fri, 5 Jan 2024 23:01:02 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=amd.com header.s=selector1 header.b=gd9eAktA; spf=pass (imf25.hostedemail.com: domain of Felix.Kuehling@amd.com designates 40.107.244.72 as permitted sender) smtp.mailfrom=Felix.Kuehling@amd.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=quarantine) header.from=amd.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1704495663; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=iHo+3qrulvoKWbEo/1kjGZCOLoRYyqWrwmE1xpvbcEM=; b=ZmzdNVuG51mJTLN2v6qMjavhqIzUDWD86lfzPAjfovKWSjf7dwkrWalyltSyjdccLppd9S e0FIQNiRITHn0aQNYd91xBEq6F06UtspndLrmIIg02tf7MyW2vcxoQRLviDnk4VAmCaldH pPO1YMuiZChQzIDAgU5cWF0zkLlhg5c= ARC-Authentication-Results: i=2; imf25.hostedemail.com; dkim=pass header.d=amd.com header.s=selector1 header.b=gd9eAktA; spf=pass (imf25.hostedemail.com: domain of Felix.Kuehling@amd.com designates 40.107.244.72 as permitted sender) smtp.mailfrom=Felix.Kuehling@amd.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=quarantine) header.from=amd.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1704495663; a=rsa-sha256; cv=pass; b=A+MJCj8Qqx5xvrioHc6ML1l9Mg3LZeIKBab2Jf5NzE4J6wyEOOFLuu+ogKsO89x5RAXprB LU7BH5XZzLcxm1Pz68uoO2PtUX3Tt1l8J8dJuIQkiCTWyGREFDv8H18sTxFb/fGg65JWl0 Rd3mir+7Y6xYOFi7YIUm7F1oF4Nj5OA= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kj/d1t0TjFE3YcuRI52K0ZJ5b3I2C8BZLKeyDcIY9vuIzPqx9hkD+Oy3ox8QeYsmSQAODnNgBBJM6OqUd1ihNOrEFkBaDzPC5/MjVBg4SC6jQMO6pXZQ/2SppND3QAHWqaz6leSKLo9VFOHWepSQix+/mDMcT1a17IEIOZY5lw8dPdF4ULhDzyf6/lgLiLUv6p1r3CjLFLeBT5UMXt5MO+MbaVkJFXT1UqwPElz9Hk/XW39rfwc8omqp8wHFAwcWwxlANfbzgXJYl27bkcDWLMJwWjYY9ekola4JJjmqlv4Jij4OfeJZwHEP40RTD4mzmlXnJyQlnHPFpiZPdQ5t4A== 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=iHo+3qrulvoKWbEo/1kjGZCOLoRYyqWrwmE1xpvbcEM=; b=DbT7K8RnO2lXU7wf0gobWWdVHN3zxXoIA+ENc5KlDAj1HDjwCwu0+MyietIoaLxJdvHKm1R2/5ZN3gj6YKqIxmrdx3i+XwZIJ+vIztymAyHeaU3heJfUpAvq968TNemFwzMENchgNkc9/1FO/7fax0MrOfazJdkYIh7APacHEgYYuwCbZnKwd5VXYY1j9I9RxiDyeuy2vkQza9KvIoqzneUEAAic+p/iMpYv6lvUOdxnWO6nNdzr64QEGoF80NV22uf2A19X7Gh7kXYWd23Gx6h+Hvrr/lzaclXrxItkNN7W5cCFxkeULSi6BNz7XuYQjfpgGu1yYTCh4zB5c6iaDQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.freedesktop.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iHo+3qrulvoKWbEo/1kjGZCOLoRYyqWrwmE1xpvbcEM=; b=gd9eAktAqLzcUTMtsIVsspBbRohIq80QxOEO6eVuR7++Sqw4DXGuPoRwEw5C5wqt9ZARqF7qTpdIYjnWf1AIkjy/W5pyXeHNMpbQ3KYvMoRlnNkA61ecZ8Mk1D1IlERHbG1rNVC3PNIU5MtTwChd5Fjo5QKlB6C0qrgkC0HR57A= Received: from MN2PR19CA0052.namprd19.prod.outlook.com (2603:10b6:208:19b::29) by IA1PR12MB8495.namprd12.prod.outlook.com (2603:10b6:208:44d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.13; Fri, 5 Jan 2024 23:00:59 +0000 Received: from MN1PEPF0000ECD6.namprd02.prod.outlook.com (2603:10b6:208:19b:cafe::17) by MN2PR19CA0052.outlook.office365.com (2603:10b6:208:19b::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.27 via Frontend Transport; Fri, 5 Jan 2024 23:00:59 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by MN1PEPF0000ECD6.mail.protection.outlook.com (10.167.242.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7159.9 via Frontend Transport; Fri, 5 Jan 2024 23:00:59 +0000 Received: from Harpoon.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Fri, 5 Jan 2024 17:00:56 -0600 From: Felix Kuehling To: CC: , , kernel test robot Subject: [PATCH v2] drm/amdkfd: Fix sparse __rcu annotation warnings Date: Fri, 5 Jan 2024 18:00:15 -0500 Message-ID: <20240105230015.492870-1-felix.kuehling@amd.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECD6:EE_|IA1PR12MB8495:EE_ X-MS-Office365-Filtering-Correlation-Id: b743c0e9-f46d-41bf-cf57-08dc0e422ec1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LyPnNv+8bM4Y34bkqgfKIedzePCGZqnkwWT4/371MImVw3tLArKiOM5iz9+Kbap0U7F5V2Qr1TQJ9RMkJLdeqvrdKULdRjFixQ0L6PiAvKqZxK5uUZkBLO5D+bxUhs/0+SM6J6EbSN9hG28mt0leLI+fOFS23D/pTbDxA9gpQhf1gZU8us01Gb6QOjWSQOsyGC/BcylDNex55+iszW+fUXnTtbW5p84OggWwthd0f3GpP5eiHof63/8eJoAitvoXnm78VAs9v961vRQxgTksZw+1JHXsBqnbO7rVlLOpIU1VMkPqAwDyxzC+aeIMLcHgJpihWnpGtg31QA7B+CzZ6ZGx7/0nhLJpIn3wnPI4+zHmPa/j5LGX0+eP7F9xbuS8SMNVdB/e48LNLjpayPMuVQVLEAHz3IJTTxJj8i2hhkfciGurxxCXnxdD4jEfjQ13MM3/aSnUPnB4oaMg8YFjYezrtfe9Bs2JtpanWcUh1wK+IF0DLP5aiKVEVsa+z62Pfkx9p51cUJdIh5c2U8+hTJAuL5kYMkJngeFnbbhF5ISVJO95ZwDbLcil2RrgAJbwBPWD26MBlAGpVFW68TODfrDHEk6J8w6N0kbWg74gjQHrrVb3COcJVKmqklFma935sBUAZjOt1mn/XAuAFmb5w+EZoa0cJjdCaxNsYaF+/DOWnXXIvaAUvcNGKlNinXSeOI2QrS77gXaptbR8uGaSNYx5uDTTljL4rfxfqyrRfT5sA32bhcSnRGhgBDuXm5uNJj+PnojVnc7UVIa3hNiANA== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(39860400002)(376002)(396003)(136003)(346002)(230922051799003)(1800799012)(451199024)(82310400011)(64100799003)(186009)(40470700004)(36840700001)(46966006)(966005)(478600001)(2616005)(7696005)(6666004)(5660300002)(4326008)(316002)(8936002)(8676002)(6916009)(54906003)(70206006)(70586007)(44832011)(82740400003)(40480700001)(36860700001)(81166007)(356005)(86362001)(336012)(40460700003)(83380400001)(36756003)(41300700001)(47076005)(2906002)(426003)(26005)(16526019)(1076003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2024 23:00:59.4382 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b743c0e9-f46d-41bf-cf57-08dc0e422ec1 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000ECD6.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8495 X-Rspamd-Queue-Id: DDE80A002B X-Rspam-User: X-Stat-Signature: 1csy9wnan161j84t99dk7d95fnf7r7eq X-Rspamd-Server: rspam01 X-HE-Tag: 1704495662-52478 X-HE-Meta: U2FsdGVkX195zLUbIQRMXpZ1SYPFxBYUZJWLXX0/szAynaAM2/LkihQjMqN86zKPVYRcOc9uw66ZEFBuQNXYro5K5RwR7rdFYFghXHaYJ4XNbaFLbmGeAebcrNBWPHRhMUi/rg+eRXbady0Aqa53jfUhmvhLeZAqiW42NSZHdGntivrDwmewsNQOeLJOeL5sF5hZ049qfdePY9vKkXKTJXuYPhBfgnQeKbXCxgDOxkR8m0IBp4yyLaYU7fUxJE6HD9lZTv6CqWVo5LgbcPAezv71/8LyNoISx+taxe+RsEhuQuCvebOhYXsuIal5Y2npzI1cQNrm/FFVOPGl4vidzFelBBpIEaEgURP5DSTp6ZcPag7D2M2gxEOhQEg9Dcsdbh5DcygS0Ycaxew+BsSPUveGxehcXroQYfsAW6R2W9X8FtfvBkXM6TadmpGsnkTg8gf29OEfBdwJnrMUTTR+6azrxuZhSvWpp/dj5WDnD+1kd3OODkJrYcIl2Llaze0s4aOQW6JRG9xSpVzv/yac3nvkyohzdbsnxqGqF2S3SefZpjmAZpz7BjBfbFTkdtACXC/hgB2fzHjjZb+ntZVNePzmEzu1DwAuao1Hrj9Ecy1pzGYjA6oxz5t8J56oj7HAnebovqOT3//mpyPR1Ff2PjqPkocSqHR78xjVo53TiNjUXZfMyeXUrGqKvqOZ1Idm1zQgGXDdRsLM2rqu8RJ+0w2tlsshoEKc5Xoe+0j43iOGFm7QX2mXM9oOasluWrFvNB50012l3qwZIH82n/fpUHwIfZsZ/8a75oClLIn/bN9ONRqDoAsdf65k+Td9a048VFQQzefD6Gko10zFE3wm7tJNHphdVu/+Vy5PEaIXdrxaay6UmdG4bU3JVcdo7HGylYUJBkrqsw1ZU8S1fAgz9cLNyvDpCZWJjzLe00YEkMK56+IrEdXSIiODm71asZoB4l3rJoMyP/n21b/tCGw zHRdfgkk coHOAW1d3dU17T3pddev2LLSdLC4Q4Ebgno4RNvH2Zys0Ir39yK7FzjQFymB9mO9HRSZdg1Xqm6KTqf1W8KtSyQIWHRAM+HhKIH+EVDVrczpoYX2oXFDuYNX8i1q+NnsjnSn5fhAEwO9VtKVzVtCei8fXn4poQC99o5mW3pvmKHrkW+zzgunVhZUhEn10tbBNjfDno/DD8M6rKO1lUMl3aEyx6cfU83KfVJX0ZIjb36OplbNhifZG9s3UiA34oOMXPt/BOxURGrhes9Z3fNnAcj/DZEnYTVAHYmwwvi6kYjNgS9eT6ZcbwfPTxqfHbdL3kKZrvMIqYl/g69KdY/dXs7GpWXNaQjCOjOESChiQeUUlUYnclyq3OEBeOlavRMi7cvWSCLsWbkevoC20OPhl1/IcJJXlMrGDmFKoMHvYF11rkZHt7SoIWtqnBNyhLj/EKuX1YJh4ScJ27Io= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Properly mark kfd_process->ef as __rcu and consistently use the right accessor functions. Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202312052245.yFpBSgNH-lkp@intel.com/ Signed-off-by: Felix Kuehling Reviewed-by: Christian König --- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 4 ++-- drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 7 +++++-- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h index cf6ed5fce291..f262b9d89541 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h @@ -311,7 +311,7 @@ void amdgpu_amdkfd_gpuvm_unmap_gtt_bo_from_kernel(struct kgd_mem *mem); int amdgpu_amdkfd_map_gtt_bo_to_gart(struct amdgpu_device *adev, struct amdgpu_bo *bo); int amdgpu_amdkfd_gpuvm_restore_process_bos(void *process_info, - struct dma_fence **ef); + struct dma_fence __rcu **ef); int amdgpu_amdkfd_gpuvm_get_vm_fault_info(struct amdgpu_device *adev, struct kfd_vm_fault_info *info); int amdgpu_amdkfd_gpuvm_import_dmabuf_fd(struct amdgpu_device *adev, int fd, diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c index 48697b789342..5f445d856769 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c @@ -2802,7 +2802,7 @@ static void amdgpu_amdkfd_restore_userptr_worker(struct work_struct *work) put_task_struct(usertask); } -static void replace_eviction_fence(struct dma_fence **ef, +static void replace_eviction_fence(struct dma_fence __rcu **ef, struct dma_fence *new_ef) { struct dma_fence *old_ef = rcu_replace_pointer(*ef, new_ef, true @@ -2837,7 +2837,7 @@ static void replace_eviction_fence(struct dma_fence **ef, * 7. Add fence to all PD and PT BOs. * 8. Unreserve all BOs */ -int amdgpu_amdkfd_gpuvm_restore_process_bos(void *info, struct dma_fence **ef) +int amdgpu_amdkfd_gpuvm_restore_process_bos(void *info, struct dma_fence __rcu **ef) { struct amdkfd_process_info *process_info = info; struct amdgpu_vm *peer_vm; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h index 745024b31340..17fbedbf3651 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h +++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h @@ -917,7 +917,7 @@ struct kfd_process { * fence will be triggered during eviction and new one will be created * during restore */ - struct dma_fence *ef; + struct dma_fence __rcu *ef; /* Work items for evicting and restoring BOs */ struct delayed_work eviction_work; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c index 71df51fcc1b0..717a60d7a4ea 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c @@ -1110,6 +1110,7 @@ static void kfd_process_wq_release(struct work_struct *work) { struct kfd_process *p = container_of(work, struct kfd_process, release_work); + struct dma_fence *ef; kfd_process_dequeue_from_all_devices(p); pqm_uninit(&p->pqm); @@ -1118,7 +1119,9 @@ static void kfd_process_wq_release(struct work_struct *work) * destroyed. This allows any BOs to be freed without * triggering pointless evictions or waiting for fences. */ - dma_fence_signal(p->ef); + synchronize_rcu(); + ef = rcu_access_pointer(p->ef); + dma_fence_signal(ef); kfd_process_remove_sysfs(p); @@ -1127,7 +1130,7 @@ static void kfd_process_wq_release(struct work_struct *work) svm_range_list_fini(p); kfd_process_destroy_pdds(p); - dma_fence_put(p->ef); + dma_fence_put(ef); kfd_event_free_process(p);