X-Received: by 2002:a17:90a:6043:b0:1bb:e73f:9640 with SMTP id h3-20020a17090a604300b001bbe73f9640mr9133518pjm.65.1645622571485; Wed, 23 Feb 2022 05:22:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645622571; cv=none; d=google.com; s=arc-20160816; b=ubmYkp8ah+fJonWIy0R+cz4UphOqgBrd+17oehjsiLVnB+XUJ8OxHcqPIYNbTfvGWM y8HU5+LWyXaam4eWprpRg3VABVKxAryIvVAHclqvs8NUDY3aKaywTfChaKf/5u76u13H IJfx04V1j4MmFt8zQUVR8jdTnAYY9W4p1Lgmnhab4YCyif0RPTry/jdHt3gUWBM6nHHv XAZosrjRiHfjuHqisUe2JxMZ2Q8mOyZRhE+4wT5Wb82G/rzFLVe4Oklx6Wq+x+oB8WHe 68KuofjvOWzwSGe2Kq/FXrFMHswy/E2T1Af2DHxCxKBz5dJBbJLrwKzjv3pcALaHVWiw rtuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=dOf41jW+SbVxhrNgz/1309Tg2LU9yaMsGenvPEV/hds=; b=NUTx9ceFJ2fRU3ZNu6ThCwNZIcdFN5oW3pE30QAysEYcOYXEGDOZv/bmUb4+bl0MtU QQ7x7fph03g3V/TVRrHVWSDSBi+njegEMcdOPAQ6aQAkFKie20UsTSyBvr/S2RPivJB5 4JnFJ1zJsMznUq0xKL2o458DPFbLs5b9fJyF/UwbLph3zl7TKILzLiT9A3dXhQL2IA1g V89L0H8OUXk5BAlkGXF54hw0EM3/C+QuTMLHjrMnlKkTdPYEAkbzaGDn3F/Vlxk4OVlk GbjsFEe23Qn7q9JniY+WG2DAmjn7BQ+aseZxrKFbJ81gDoFqB0Cj/kPEvPRI+wwJEJCv dpgw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=EUjrDNav; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y28si12372360pfw.361.2022.02.23.05.22.33; Wed, 23 Feb 2022 05:22:51 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=EUjrDNav; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238824AbiBWHzV (ORCPT + 99 others); Wed, 23 Feb 2022 02:55:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53010 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238821AbiBWHzU (ORCPT ); Wed, 23 Feb 2022 02:55:20 -0500 Received: from mail-oi1-x22f.google.com (mail-oi1-x22f.google.com [IPv6:2607:f8b0:4864:20::22f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 64CE360CEF for ; Tue, 22 Feb 2022 23:54:53 -0800 (PST) Received: by mail-oi1-x22f.google.com with SMTP id k2so13576904oia.2 for ; Tue, 22 Feb 2022 23:54:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=dOf41jW+SbVxhrNgz/1309Tg2LU9yaMsGenvPEV/hds=; b=EUjrDNavl6Xdtl07S0e5hH3teF2X2AhpcVme19R0H3iVxCWiRydUjt/+G0zgRplcPd yFyubejfq8Jso17iqo51SDmkeg1VpdhyH4cUkBpDovOle+BiVmkolS7AW6xC7DxRmZ7+ imZu0Z+Vt59zi3NaxL9ORm8Siw1J4ryXDHaDpmUq6Nd68SmatDw8kGdooSvQDbx/9fIH PuBM6emXs4NY+CSRCUEbflKrSDLYTHHxyN9xX4kGU3XPUuMB876ECuE0K7iKrbIT7kZN 8N4u6tmRKqlhcMnrl0hethQCKcyOUpOPyPduFKsInWXA0M6alADLmuorUSg5XiGYn0YO 0xQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=dOf41jW+SbVxhrNgz/1309Tg2LU9yaMsGenvPEV/hds=; b=IAlB5uN+r1IAQtoQk5XmQOklhzeGkvqz9aSitqqCf7to996yS71oXKjrmn2C4Y1hjk MI5cQJoIXIuJF1jfrQYzXg6Teub/KYVDntLAB2bIH2/oohH1Szs4v1JyXMnKnpq5RwP5 USghmKXIN8HVtYcxYANPcsJbQhlESwsWkIr7Q2nD8rT8JJnmjT3lFHWPfGNz+QfL0n93 4K9OXz08JfiBIA7xchbxP+xq/nxZB8dX9B5I6lPjeTi4MB1uyVuHXl+3tggUKDC/YgCA Qe0IcCZ12+5AtoKhBi3juBIUkqQWs5eUEvxT3n8+JPxZWTwPe46e4o5D3VWiu5pyxddv GjhQ== X-Gm-Message-State: AOAM531+ZSEOfzhwMOnZlvuvgLWEl2oDFyi/LjkstdZfnrrUdvqq7J3K RrckXtdOyAjRZxirPHxo0NIyE8zBSq+UTc4+o7M= X-Received: by 2002:a05:6808:1710:b0:2d3:f699:b876 with SMTP id bc16-20020a056808171000b002d3f699b876mr3912306oib.281.1645602892805; Tue, 22 Feb 2022 23:54:52 -0800 (PST) MIME-Version: 1.0 References: <20220222024651.36675-1-qiang.yu@amd.com> <2998de6b-bff2-4ef5-135a-1269f948c486@molgen.mpg.de> In-Reply-To: <2998de6b-bff2-4ef5-135a-1269f948c486@molgen.mpg.de> From: Qiang Yu Date: Wed, 23 Feb 2022 15:54:41 +0800 Message-ID: Subject: Re: [PATCH v2] drm/amdgpu: check vm ready by amdgpu_vm->evicting flag To: Paul Menzel Cc: Qiang Yu , David Airlie , Xinhui Pan , Linux Kernel Mailing List , dri-devel , amd-gfx@lists.freedesktop.org, Alex Deucher , =?UTF-8?Q?Christian_K=C3=B6nig?= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Feb 23, 2022 at 3:47 PM Paul Menzel wrote: > > Dear Qiang, > > > Am 22.02.22 um 03:46 schrieb Qiang Yu: > > Workstation application ANSA/META v21.1.4 get this error dmesg when > > running CI test suite provided by ANSA/META: > > [drm:amdgpu_gem_va_ioctl [amdgpu]] *ERROR* Couldn't update BO_VA (-16) > > > > This is caused by: > > 1. create a 256MB buffer in invisible VRAM > > 2. CPU map the buffer and access it causes vm_fault and try to move > > it to visible VRAM > > 3. force visible VRAM space and traverse all VRAM bos to check if > > evicting this bo is valuable > > 4. when checking a VM bo (in invisible VRAM), amdgpu_vm_evictable() > > will set amdgpu_vm->evicting, but latter due to not in visible > > VRAM, won't really evict it so not add it to amdgpu_vm->evicted > > 5. before next CS to clear the amdgpu_vm->evicting, user VM ops > > ioctl will pass amdgpu_vm_ready() (check amdgpu_vm->evicted) > > but fail in amdgpu_vm_bo_update_mapping() (check > > amdgpu_vm->evicting) and get this error log > > > > This error won't affect functionality as next CS will finish the > > waiting VM ops. But we'd better clear the error log by checking > > the amdgpu_vm->evicting flag in amdgpu_vm_ready() to stop calling > > amdgpu_vm_bo_update_mapping() latter. > > later > > Another reason is amdgpu_vm->evicted list holds all BOs (both > > user buffer and page table), but only page table BOs' eviction > > prevent VM ops. amdgpu_vm->evicting flag is set only for page > > table BOs, so we should use evicting flag instead of evicted list > > in amdgpu_vm_ready(). > > > > The side effect of This change is: previously blocked VM op (user > > this > > > buffer in "evicted" list but no page table in it) gets done > > immediately. > > > > v2: update commit comments. > > > > Reviewed-by: Christian K=C3=B6nig > > Signed-off-by: Qiang Yu > > --- > > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 9 +++++++-- > > 1 file changed, 7 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/a= md/amdgpu/amdgpu_vm.c > > index 37acd8911168..2cd9f1a2e5fa 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > > @@ -770,11 +770,16 @@ int amdgpu_vm_validate_pt_bos(struct amdgpu_devic= e *adev, struct amdgpu_vm *vm, > > * Check if all VM PDs/PTs are ready for updates > > * > > * Returns: > > - * True if eviction list is empty. > > + * True if VM is not evicting. > > */ > > bool amdgpu_vm_ready(struct amdgpu_vm *vm) > > { > > - return list_empty(&vm->evicted); > > + bool ret; > > + > > + amdgpu_vm_eviction_lock(vm); > > + ret =3D !vm->evicting; > > + amdgpu_vm_eviction_unlock(vm); > > + return ret; > > } > > > > /** > > Acked-by: Paul Menzel > Thanks, will submit with the typo fixed. Regards, Qiang > > Kind regards, > > Paul