From mboxrd@z Thu Jan 1 00:00:00 1970 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 ADEF6C10DCE for ; Fri, 8 Dec 2023 10:11:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 32BCA6B007E; Fri, 8 Dec 2023 05:11:34 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2DC326B0081; Fri, 8 Dec 2023 05:11:34 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 17CB56B0082; Fri, 8 Dec 2023 05:11:34 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 03A0D6B007E for ; Fri, 8 Dec 2023 05:11:34 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id CDECE1A0128 for ; Fri, 8 Dec 2023 10:11:33 +0000 (UTC) X-FDA: 81543234066.19.3466F63 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by imf04.hostedemail.com (Postfix) with ESMTP id C48D740027 for ; Fri, 8 Dec 2023 10:11:31 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="OwF2/duX"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of ckoenig.leichtzumerken@gmail.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=ckoenig.leichtzumerken@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702030291; 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:in-reply-to:references:references:dkim-signature; bh=im9nnALNwN7E//WCxEa1aZN0RojtWf9cHUEF5mzT8cc=; b=m+aPt3dnFChltfL4HC0QbyPCYLFfFVojNlbF06zo4eGpKAelGFkqtkgYwpz7L5OmFkCf9o 6jJHzIfs+yylpihXFDbg7b5pclXeDcAsyOJZBpu69MbKaB/JLKecWvl5nVjIgVGdDu/c9o 0mUiroRufEWj4okzUk5OWEGF4DrUwRE= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="OwF2/duX"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of ckoenig.leichtzumerken@gmail.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=ckoenig.leichtzumerken@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702030291; a=rsa-sha256; cv=none; b=cXQsDYEHhuUqAJ/myJHKPA/P8fHT+HNPhFAHofjbDaY6Ru4yZqSWAkY63REAscZrj7qVup BCZduhAyOy7Ihm1TCJftSNXwQliYsjjgfxj3GUh9G9RqM7pv/8fdnWVSQM0QiAsG2quafu FWYb2VK7E9eE4jCoKvI2ewzNZe0K1pI= Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-40c32df9174so5981265e9.3 for ; Fri, 08 Dec 2023 02:11:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702030290; x=1702635090; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=im9nnALNwN7E//WCxEa1aZN0RojtWf9cHUEF5mzT8cc=; b=OwF2/duXYA13UtOX8d563oD/F+6OXTwHQwpdvSz4Cjf+KZZ6+UtCHFawvse8dvUcAk z16AjdvwslEjB0tRccHzxd+bULk7Gy9jAvNL4mdoZAHQgeaIe3SCg1TR9+xtJp4YDt2w Gk1hv1CQyhZepoVdYRjJ0h9RgmzdZImEZDMlvUMUKJW/6Yxp1pfZ7x/9jmE+V6qHvlE+ 3b0ZeNDJFKakRRjlDfx1H1jdqBM5auml3CRsTFcyLq5PIVi4WYHifZ/05xrirq4g/Jpi n7pG01Um+sp1/lmbIpUgmV5kCZixiTyxFfTW1yxv3ilxn4KB7Wv627vsvq9fFQJcjTKw 0u0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702030290; x=1702635090; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=im9nnALNwN7E//WCxEa1aZN0RojtWf9cHUEF5mzT8cc=; b=PI0B+3zmnceg+36hTYXsu0XxWb4VtOMcpDGo5caVYw2W7bQJqvH9ju7J4fFRQ7Z437 xv3sRssfQeCqz/2Q93BrWvQDJcBu1hUeuPUG4UVNgIR/BDr+IG9GpG8P/fFWlyFqk881 ge303rb7HhinUf+hlKHMfVgm78AtfIqe2fyT61g3yXFMMTzJgfQu7lmosXz1ylTyOB5U p+7rC0u0Zb/9mG/GzSongacJNTBYH2JoxqjJ0e+zhxMpEbT80YON8TEf0BG+gbUOI6eP F8UD0g1dAJWc4OOH+YW0csvy1Dhli2Wsz5TX9Z67uZ1b5ub333iqHY+DYglY3s308Csm 0Prg== X-Gm-Message-State: AOJu0YxRAVJYAKulmUrm1h6fMny+mXLjaZLb8NSs5Lj2wp8nZYfs/hEm 9kZZ4O3rN78EaLzoi4cDZy8= X-Google-Smtp-Source: AGHT+IF0r5ma6il8jDSDiDeWMYx0Kx8GaC2ZYvhGNJCfRxCYlNty4j0giO6YcnEU7nbUYZq3uiahww== X-Received: by 2002:a05:600c:198d:b0:40b:5e1a:db91 with SMTP id t13-20020a05600c198d00b0040b5e1adb91mr1670501wmq.50.1702030289956; Fri, 08 Dec 2023 02:11:29 -0800 (PST) Received: from [10.254.108.81] (munvpn.amd.com. [165.204.72.6]) by smtp.gmail.com with ESMTPSA id g20-20020a05600c4ed400b0040c31bb66dcsm2200191wmq.20.2023.12.08.02.11.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 08 Dec 2023 02:11:29 -0800 (PST) Message-ID: Date: Fri, 8 Dec 2023 11:11:27 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] drm/amdkfd: Fix sparse __rcu annotation warnings Content-Language: en-US To: Felix Kuehling , amd-gfx@lists.freedesktop.org, =?UTF-8?Q?Christian_K=C3=B6nig?= Cc: linux-mm@kvack.org, kernel test robot References: <20231205222026.2108094-1-Felix.Kuehling@amd.com> From: =?UTF-8?Q?Christian_K=C3=B6nig?= In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspam-User: X-Stat-Signature: 7opwmya1ouo8nr15hz8qudz6xxg3x6tq X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: C48D740027 X-HE-Tag: 1702030291-2325 X-HE-Meta: U2FsdGVkX1/+nIlRjNjbXq1spVCLHPoLIpeNcjlE4jTJBWuf2CohpzuY73Z4bJTsFe5Xsj3oo3kZlSiD3E2LpV+binHlTbOeL6Ep8T+KB0ySjvDoN/Ys0ZuX+O/VnULkJIPOEca5R/QP2ctP7TxF3EHGi7FnH6EuMRs+CDjz2mOQ7wMUNsXB5mNM2TubObqQI3xtU8VM+0PiYW0NmCHKU0PPkYhHh+Zg3KO2OC9QxF04Zw+c7EsQDQFNK+l9dXlXq/ZEAYHpsLb2ENedb5p4DoRXXwo9IuDgc5tTp5auek0Jv2ty4e6exZgVnRNUVkaluit1AyeRCygrIPhk+tKZlRbydmlw4K8nPOZHzf5KJJNcnNjQ1oDbDBqqisubfGPnBrpg8NkYSZej4zy8uRFh4SOoghg65imkipfFQmq+ckL08GwNIpkMn7h7zn28rf/Wbt0ZvQ4d5QXAKb776lS2XOAbyD3F8nVrZJXYrnHe63UNcrHD3Wpm/cgJcNLP/sDsm/ioK9mh2AU2Vrva5ibpXWGTFg7No2xS2/devzq5/MSmsGS3gbxwl5DZrTRnL5C1czQhS2HPtHgCQ7OuYPuSyH1ONikMTxDmaswkbBVpOxV+Le2d+ZBlMIDpUXnnFKvx6WvQAbAa0JmkXKfJaPNLkxwx7O87mqUgKrE62kG8N9QAkSDwZNvC0XWgpJLwA1BFpWZGL1aR11wuShLIeP++OOP9Z0qbp9gO7qpKpBBCFaGm4Wf2m3iWG9rnvbiNW4vdc6zZoLkIwx6meA4Tr0YXwhgSPjnddK/McUgXL8PzD+9UO+/yDy9DKzYPqbIdmLEd4WQ2bBONHYpQ/X+SvLL5jZU8LALd7BPccocCDp/c3BSvgF+gEH8ueFReCvuAf9z3KPTxPB6t7kgr6/TBiT38nomyJw2XkHiPgr1LjlJ/2IWROpPl8AkLdXxeLaHuceLXBK18QxKnDaCNc8PbJxr 4qC4GjUx l/Bd/Djz1tEjxW+Qu6cXkf2RJkyc3152WXOR/FqM/k1yRmSKYez9+IDuBjvazW9lS7/HAY62AtKkDGk7ZS8xeZ9CUyN9+3m3AxH74mh6zTwEPJ8QaoamrrM7NzW8aOSkj/g25j/N2xQvxqfIVCEKZBHI3QWD74e2utYhRTTQJkHjiHR2LyaoJirhn7e2KsVijjRKwbgmWZgP6KbHGqRXtyAftwSPkp4Eu2Lj6wJSEVxglJi71g+pDZ4I2BWD1tBSeZhVBaeksUBF3NO8zPqtrSDBI7A0rj0SNsiBOdY5bpEJg32uEnt7KNpAr7L9ki4HtKD12jpTv+gkh7KQYXZjeMmKj+e2CDIgROMdrzIb3C+cXvXUWklPRvlQNtnx7yOKyE1ZfUJ0ueZz04ykr9Ujffl5ZCqlfFJzB1NkHytGQRnpfPVXBl6MXNCofktpDAJ9ObzTChRa7w1ZG6sQSxRV0VBtWBeSDo1uSHuerqwftkeLy8E+ORR/fNiGDeJi0gB41diGrM1YBLqgLqk9ubnQvDL7i3F4w1miq/6/eagSH+sj0CzQj3d0BaHcudcYJu+pNPILQ/A8uKGuy1OqLpZrUaHwGyF6w6VjVI6ib4xsGitdb+zib9P4s1Oa2ENX0OxZfExOY+k+lxG8UrGp2if+IZhbOlzKXOBYAHpj/J3HBlk/8vn0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000562, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Am 07.12.23 um 20:14 schrieb Felix Kuehling: > > On 2023-12-05 17:20, Felix Kuehling wrote: >> Properly mark kfd_process->ef as __rcu and consistently access it with >> rcu_dereference_protected. >> >> Reported-by: kernel test robot >> Closes: >> https://lore.kernel.org/oe-kbuild-all/202312052245.yFpBSgNH-lkp@intel.com/ >> Signed-off-by: Felix Kuehling > > ping. > > Christian, would you review this patch, please? Looks a bit suspicious, especially the rcu_dereference_protected() use. What is the static checker complaining about in the first place? Regards, Christian. > > Thanks, >   Felix > > > >> --- >>   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         | 6 ++++-- >>   4 files changed, 8 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h >> index f2e920734c98..20cb266dcedd 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h >> @@ -314,7 +314,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 7d91f99acb59..8ba6f6c8363d 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c >> @@ -2806,7 +2806,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 >> @@ -2841,7 +2841,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 45366b4ca976..5a24097a9f28 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..14b11d61f8dd 100644 >> --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c >> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c >> @@ -1110,6 +1110,8 @@ 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 = rcu_dereference_protected(p->ef, >> +        kref_read(&p->ref) == 0); >>         kfd_process_dequeue_from_all_devices(p); >>       pqm_uninit(&p->pqm); >> @@ -1118,7 +1120,7 @@ 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); >> +    dma_fence_signal(ef); >>         kfd_process_remove_sysfs(p); >>   @@ -1127,7 +1129,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);