From nobody Sat Jul 25 18:54:51 2026 Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A884241DDE6 for ; Tue, 14 Jul 2026 20:13:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784060014; cv=none; b=gYEr0oDjdR5zvJ3SFRCRXmyfsU1kacODn0GRHL283skoOnu/uaqBYqQmMbODpWw/lZaIRBYI12N/WSiyUFqTME85ptcYxnnS0cxqdICcmzz+NNNWj65vlAdS3IsRQTdhytypcuta7oMwYEKlhEW4X5R2PiFIm3NK4Crax9/uW30= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784060014; c=relaxed/simple; bh=bwr01/9WY7csMe3oixAvNcmOUvWfBdhgJjR3WJyG5E4=; h=Subject:From:To:Cc:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=nikurc1TEesaHQP26bYZmRLWtVBYh+AgYIZlcNNvYY5y+lx7QyRg52yasQwhKdlW+4Ea+y0fo8Dd/AVRQB4iZQFQMgWkvYcIBMjl5089bEqB1FOEvMJE2ekad0wsA/bM5Jq87I+M4ilNNBliBR4VqSGSQM0s3MWsU7zI0TwjjdA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=BqGVP3fr; arc=none smtp.client-ip=209.85.210.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="BqGVP3fr" Received: by mail-pf1-f177.google.com with SMTP id d2e1a72fcca58-84536ecfc5bso1230661b3a.2 for ; Tue, 14 Jul 2026 13:13:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784060013; x=1784664813; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:user-agent :references:in-reply-to:message-id:date:cc:to:from:subject:from:to :cc:subject:date:message-id:reply-to:content-type; bh=Vc1a4EA+CKVDZWmxoam2W7gn+VW7+IE4FDUnuymM6t4=; b=BqGVP3fr3VzcAYMgIEHBrBODNP8u+OiMZeEEj0Sup4UbdHg8E9p+JCzlVbb10OglAe QVX7x/AgHKHFCnqyfJdqWvTtvMh61GMPtH1SBZZGBYzNZcv9Cm6cVhV61HGkkzjKceUg 4J2vlcXWIGc6/k+R/x1EB1wN9wX+rM/uJei10xMgDWeUKfr19ERBBirTSLiQJiHLgyZv Jf4fRJNLJziqgmT4YnpaydBF1AOUxCMPhPBnfZVYKNvCWp8C15GhAScasNW3YgNFTl3v upuHbaQi5XFirl31yUo9rbXHXSpIPu/SNW1wtiACNrw0SVlZWQdqD0JTJT3eFEkmZMBM icuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784060013; x=1784664813; h=content-transfer-encoding:content-type:mime-version:user-agent :references:in-reply-to:message-id:date:cc:to:from:subject:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Vc1a4EA+CKVDZWmxoam2W7gn+VW7+IE4FDUnuymM6t4=; b=Xg5YvO6pzdxCj0B/5OVgbazSJ9q9ICCICEdAy0qsteiej+FtWC/MdKbMkQU0CYz6Fc /m6VbNQWEZbF+eM619XjznqvvE6qsiE7OXyo2VJ6Nad7Im+7cSjb181zi5rULmKLtvge MNuEOJ79I+JmZ4xInsktB1nsy309stjjcmCxu+o9dUBW40hEA+edAXK7eFcuHnbCt0Hz FIC0ihWdpqMVMC/ko+XiiE9SvWjE3vZ3Wd4Co4rMOTgivNC0sM2lxbSrGr/1BU28HU3g 3nsoWCF/ZaNU8Idr32Zzx9HPMQJYynv9KjbU0aOghDv4PBTLqQ2bAnndy5fU5Xlp/ubH fVmw== X-Forwarded-Encrypted: i=1; AHgh+Ro/Zsx0INRY0Bau37nArLQrG8ZGTvIwTec5HMpjPodS1b1PyWyCMXU7U5Y9x/blOti7LxwF7HMSEuOpz8s=@vger.kernel.org X-Gm-Message-State: AOJu0YwJ5qASOerxDuC4GZjMa9pPe9u8PnkYdWgY2mCVnvaEXzv46aWZ mgE/pFU7R6s4mOruqScqJl6aiOlPaJ65EaCyaJuCKc441BnsEWHL6g8K X-Gm-Gg: AfdE7cm3RlpdTyo8MXnua5UPcqAtXX+Du2/Omnx3SvUVAKn9UhZnUHPpqIfKkKm66RU TiHW/df39NWSFju8VDxZh62iQCQRz0BrWlJgo8HEG4bCbURjfN84GMEMpcrwGljSPgnjvYXmyUI mEA6N+yPLccBlA8VPDnlZh5NvcFY8Vmgfuf0oHtKo24AViF4ihVx50voUK/Vy+MJC++fpIXoPuC kRQrYpTga6bZeDOjR77iTFBzn++MDMVQ4khe3+FqRfEQwvzlDYoaO38T/5R4uAZcGz2Zj2tTkrn eEr29B2CiI3TDpy5b4jLEAu9cFmzMPGwaEWAkxmqghjKWZmqDNr5/Qu68SUYmMB4LC/scWr7MPO WuHw7wrgeArd/FzU/8J5nM4PppXfZxUDLmloiViPoQAlvV3wbbi+lkHjgkzQhVV+hYXHqCv3Td8 LvKiBs1qn4sTOudWamxcjvT2DIwQ+1Aen+HT9jTkNgjn1uMzkqAM263qa8T54= X-Received: by 2002:a05:6a00:2341:b0:848:2f84:f429 with SMTP id d2e1a72fcca58-84a6738a72fmr16414b3a.66.1784060012852; Tue, 14 Jul 2026 13:13:32 -0700 (PDT) Received: from [192.168.0.160] (c-98-225-44-182.hsd1.wa.comcast.net. [98.225.44.182]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84a4f6bf5ecsm1974797b3a.29.2026.07.14.13.13.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jul 2026 13:13:32 -0700 (PDT) Subject: [PATCH 1/4] fixup! mm/hmm: add hmm_range_fault_unlocked_timeout() for mmap lock-drop support From: Stanislav Kinsburskii To: airlied@gmail.com, akhilesh@ee.iitb.ac.in, akpm@linux-foundation.org, corbet@lwn.net, dakr@kernel.org, david@kernel.org, jgg@ziepe.ca, kees@kernel.org, leon@kernel.org, liam@infradead.org, lizhi.hou@amd.com, ljs@kernel.org, lyude@redhat.com, maarten.lankhorst@linux.intel.com, mamin506@gmail.com, mhocko@suse.com, mripard@kernel.org, nouveau@lists.freedesktop.org, ogabbay@kernel.org, oleg@redhat.com, rppt@kernel.org, shuah@kernel.org, simona@ffwll.ch, skhan@linuxfoundation.org, skinsburskii@gmail.com, surenb@google.com, tzimmermann@suse.de, vbabka@kernel.org Cc: dri-devel@lists.freedesktop.org, linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-rdma@vger.kernel.org Date: Tue, 14 Jul 2026 13:13:31 -0700 Message-ID: <178406001098.1082778.7615814555318834246.stgit@skinsburskii> In-Reply-To: <178405975214.1082778.5193079941156341151.stgit@skinsburskii> References: <178405975214.1082778.5193079941156341151.stgit@skinsburskii> User-Agent: StGit/0.19 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable The hmm_range_fault_unlocked_timeout() example checks for a concurrent mmu_interval_notifier invalidation after the HMM fault has succeeded. The sequence number used for that check is stored in range->notifier_seq by hmm_range_fault_unlocked_timeout(), so the retry check should use the same notifier stored in range as well. Update the example to pass range.notifier to mmu_interval_read_retry(), and spell out that the retry check uses the notifier and sequence number stored in range by the HMM fault helper. This makes the relationship between the HMM walk and the later invalidation check explicit. Signed-off-by: Stanislav Kinsburskii --- Documentation/mm/hmm.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/mm/hmm.rst b/Documentation/mm/hmm.rst index 5c88d2cf0818..fc1b8dc19825 100644 --- a/Documentation/mm/hmm.rst +++ b/Documentation/mm/hmm.rst @@ -206,7 +206,7 @@ The usage pattern is:: goto out_put; =20 take_lock(driver->update); - if (mmu_interval_read_retry(&interval_sub, range.notifier_seq)) { + if (mmu_interval_read_retry(range.notifier, range.notifier_seq)) { release_lock(driver->update); goto again; } @@ -225,7 +225,8 @@ The usage pattern is:: The driver->update lock is the same lock that the driver takes inside its invalidate() callback. That lock must be held before calling mmu_interval_read_retry() to avoid any race with a concurrent CPU page tab= le -update. +update. The retry check must use the same notifier and sequence number sto= red +in ``range`` by ``hmm_range_fault_unlocked_timeout()``. =20 Holding the mmap lock across HMM faults =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D From nobody Sat Jul 25 18:54:51 2026 Received: from mail-pf1-f169.google.com (mail-pf1-f169.google.com [209.85.210.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 69F6941D645 for ; Tue, 14 Jul 2026 20:13:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784060022; cv=none; b=J79QAlB6pWvL+4r9DyPpYdeJuh74R7sauZWbhRWoemyiInf1r71o7iTSzTeBawnGSthHSsKr1pIDN54H04J41qj0PhgPpIpp+ImiT6SELC9uZOin9egbmg6NeHL49cf33RT+dhrxnLvCqSCOyeHTgYpsSnux30UOPpiOZAHMHjE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784060022; c=relaxed/simple; bh=WvDPQHYOIkqnmOV2e/TAfKZ2L/I07bZ1I5RIwEB62T0=; h=Subject:From:To:Cc:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JZMuM+F5ZMB2ZvEthpiiJXr9zb9CIlVNe2NPq0jd2w1j076rzvybQ9HkTgHf51hwQEKDBtqCx3+N42kIEpDzp1j1o71GqOBnAC0EEL4dcLI1kQyfL4Zn8nJhZiJf72tR2AEQrR0wINEg407lUB408lmpX5gItcL/xYlfkBTWy+g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=tI88np37; arc=none smtp.client-ip=209.85.210.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="tI88np37" Received: by mail-pf1-f169.google.com with SMTP id d2e1a72fcca58-8487b7b4066so4657393b3a.1 for ; Tue, 14 Jul 2026 13:13:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784060021; x=1784664821; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:user-agent :references:in-reply-to:message-id:date:cc:to:from:subject:from:to :cc:subject:date:message-id:reply-to:content-type; bh=SKEncuDEb35sxzE1YTlJf1hRIKo4X4QhyOOQXqSLrW4=; b=tI88np37nu17in0up+CXIDz/YCk68r8JvxjEKWz9q+3FlvBVN9F5+S+WM7wjSQsg1N Bap47XONl7+YRhLzjKnUvgmGKYshkMIarES/ULKGzhWLmWCSD2Cbd5e4dDzchjhD/mzJ ADX8QUG+nY8LWphdb8rEFWqXNOZBl82V2W3XwSou7Mem/YVCBWsaq6eUGEZmOwucFRTb evTXdeQ0uH8idZyN/SzvZhQmIaczrqLaneqBFWdnlP0EmCyTLjN5fAteepSXaROXxmLi kMlE7uI9V3Txd7cQi3j61tSlCgpdtpl13Rj2xPcpBjhSY6azKJfR9KQjufAbFMUTSXVY Yd8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784060021; x=1784664821; h=content-transfer-encoding:content-type:mime-version:user-agent :references:in-reply-to:message-id:date:cc:to:from:subject:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=SKEncuDEb35sxzE1YTlJf1hRIKo4X4QhyOOQXqSLrW4=; b=jZ6LB3FWAp2pSYBwJnho3Ml1sRDJ8lEO1v6LAQ0T5RG55E1GL+U6f6EZLKF9A1Vvms PIST1yc+KluR48KnO+c0gdpjO4UrlXIslKJaM+hhychbXfZXgOsYO51+ssrp0hJjZdYT xKg8ZYYILDpJdHKN4uAqX39Zxq8X/2RhZKZHkOAMTGOSnO332xzwDyscodCZzKwpf+gE h3xRPTnQPeHB9/MzYusTXT3Xyle8oDo6W0zIg3x8soa1huo19402WBPVwWgk6fbnxOs/ Ly7sVvFlO8ziTWnyCpsmsOuusbUVghrBZTcJkO3+qwZPyheWdp1UJM/bmBiT2si7RTXA mdew== X-Forwarded-Encrypted: i=1; AHgh+Rp6kQB7qMP2CjaY+7pMjrNO8qYekemU4YlLRLgHI5CM9a4xtibwkFhwVXw/3K4+r7DMfbVbYaVphe8hmF0=@vger.kernel.org X-Gm-Message-State: AOJu0YyVhMZXPbJdtdWm8HoJY9g4l76tfR/lHhKtPc+M3XsMUCBZgz+G quOVI269vsTHOkvsQiksDYE02wlspzuPQ5hHdgmWOqRMVKL7BRdAm/On X-Gm-Gg: AfdE7cmKW+EO8VfT0jMMmRtPTTTgxVVqZDd7e674PR/ApOMk2AXlvL7zAGv40xx3ZCH qnPpg2sbz8aDwHl4odbF591YLly5SqVUFYYLNciuhCfuUtnWdHuFPm+y0jFKYJonYtupm6nQEZj j13usBMpwp/CQtBsm/wZVIT2K4dRJhUo1GwhhowMvxI0bq94rhmR4fRw1eUEOvlmq/+YfV5Q1PD +gX7CovYhQEpSWETKtcBo5Gri2lYN4+MyBlxiRT1RpAXJY8Mz4x+3rFVLYQuYs55hiKDHH7KJee gQuetphWRdBtctzsqsEXIHFWaytI2eQUg0FSpWlKmQw0woLsr4nGJhCWs82E3lID+gNbkKbEz8K fQ2uRpR6QWJmccp+SjIXdV0NbKe16Vs4sH52/TVOQdV+mT3QoMZ9CHWA7L8ck5ZK8ddsSq3N9nS YFnx6AeYol2KmwRL6SPWsH1QNUz4uN3+/zMtwrBF9yxRWdrBB7e4dQgdMacCc= X-Received: by 2002:a05:6a00:2e16:b0:846:f502:4cd4 with SMTP id d2e1a72fcca58-84a671da73cmr45857b3a.4.1784060020856; Tue, 14 Jul 2026 13:13:40 -0700 (PDT) Received: from [192.168.0.160] (c-98-225-44-182.hsd1.wa.comcast.net. [98.225.44.182]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84a4f81d770sm1966491b3a.61.2026.07.14.13.13.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jul 2026 13:13:39 -0700 (PDT) Subject: [PATCH 2/4] fixup! drm/nouveau: use hmm_range_fault_unlocked_timeout() for SVM faults From: Stanislav Kinsburskii To: airlied@gmail.com, akhilesh@ee.iitb.ac.in, akpm@linux-foundation.org, corbet@lwn.net, dakr@kernel.org, david@kernel.org, jgg@ziepe.ca, kees@kernel.org, leon@kernel.org, liam@infradead.org, lizhi.hou@amd.com, ljs@kernel.org, lyude@redhat.com, maarten.lankhorst@linux.intel.com, mamin506@gmail.com, mhocko@suse.com, mripard@kernel.org, nouveau@lists.freedesktop.org, ogabbay@kernel.org, oleg@redhat.com, rppt@kernel.org, shuah@kernel.org, simona@ffwll.ch, skhan@linuxfoundation.org, skinsburskii@gmail.com, surenb@google.com, tzimmermann@suse.de, vbabka@kernel.org Cc: dri-devel@lists.freedesktop.org, linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-rdma@vger.kernel.org Date: Tue, 14 Jul 2026 13:13:38 -0700 Message-ID: <178406001808.1082778.17299764648397654220.stgit@skinsburskii> In-Reply-To: <178405975214.1082778.5193079941156341151.stgit@skinsburskii> References: <178405975214.1082778.5193079941156341151.stgit@skinsburskii> User-Agent: StGit/0.19 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable nouveau_range_fault() now uses hmm_range_fault_unlocked_timeout() for the HMM fault path. The timeout passed to that helper is meant to bound HMM's internal mmu-notifier retry loop, not the whole nouveau retry loop around mmu_interval_read_retry(). Pass the full relative HMM_RANGE_DEFAULT_TIMEOUT value to hmm_range_fault_unlocked_timeout() on each attempt, and retry from the nouveau-side mmu_interval_read_retry() check with a fresh HMM retry budget. This lets HMM continue when it has made progress, while still preserving a timeout for repeated notifier invalidation retries inside one HMM fault attempt. This also removes the open-coded absolute deadline and remaining-time calculation from nouveau_range_fault(). Signed-off-by: Stanislav Kinsburskii --- drivers/gpu/drm/nouveau/nouveau_svm.c | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_svm.c b/drivers/gpu/drm/nouvea= u/nouveau_svm.c index 4cfb6eb7c771..b1415c2e49fc 100644 --- a/drivers/gpu/drm/nouveau/nouveau_svm.c +++ b/drivers/gpu/drm/nouveau/nouveau_svm.c @@ -655,8 +655,7 @@ static int nouveau_range_fault(struct nouveau_svmm *svm= m, unsigned long hmm_flags, struct svm_notifier *notifier) { - unsigned long timeout =3D - jiffies + msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); + unsigned long timeout =3D msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); /* Have HMM fault pages within the fault window to the GPU. */ unsigned long hmm_pfns[1]; struct hmm_range range =3D { @@ -677,25 +676,16 @@ static int nouveau_range_fault(struct nouveau_svmm *s= vmm, range.start =3D notifier->notifier.interval_tree.start; range.end =3D notifier->notifier.interval_tree.last + 1; =20 - while (true) { - if (time_after(jiffies, timeout)) { - ret =3D -EBUSY; - goto out; - } - - ret =3D hmm_range_fault_unlocked_timeout(&range, - max(timeout - jiffies, - 1L)); - if (ret) - goto out; +again: + ret =3D hmm_range_fault_unlocked_timeout(&range, timeout); + if (ret) + goto out; =20 - mutex_lock(&svmm->mutex); - if (mmu_interval_read_retry(range.notifier, - range.notifier_seq)) { - mutex_unlock(&svmm->mutex); - continue; - } - break; + mutex_lock(&svmm->mutex); + if (mmu_interval_read_retry(range.notifier, + range.notifier_seq)) { + mutex_unlock(&svmm->mutex); + goto again; } =20 nouveau_hmm_convert_pfn(drm, &range, args); From nobody Sat Jul 25 18:54:51 2026 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D33C41D633 for ; Tue, 14 Jul 2026 20:13:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784060030; cv=none; b=ZJqUaSdwfi+mCB+6EMV2T9ew0Ep1FBpYdScJ12lmX4Ay9EInDWHXxMQtuBgC1KV6dh2mvPqkxALC/9oSYScrJao2oespmWhe4muBBt0S3HfgtG34yOcaBFO5eCYPu9zE0udIAhHGqROj8x3IBAocOuWpOUzUyhUCMuY4WPVgqgs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784060030; c=relaxed/simple; bh=KZcIzmwaCHsF/oXSa3XD2VjZoWtXc+ZOgaxQjm2rE1U=; h=Subject:From:To:Cc:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=kIGSi77qjyQZ+J1AJDwHVTj8MgfUo1GNjYWG3I8WsVTdosbwbcPRpVlIYlz/vwI591rVtXMAZXOw+hu3OgLXlqWGWqZQgZK99pp91amLPjGMU4Zw66G210RYyM/0xj1mNIfvKSjzJlJgvk76Yg3wyObjUX9PQ5od8CL1IHjHebc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=moJRbPeZ; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="moJRbPeZ" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2caed617615so52427865ad.3 for ; Tue, 14 Jul 2026 13:13:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784060028; x=1784664828; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:user-agent :references:in-reply-to:message-id:date:cc:to:from:subject:from:to :cc:subject:date:message-id:reply-to:content-type; bh=d214MLGyf83e1Jqi9SjyzgCBFipAoJ9SSnt0shamnDY=; b=moJRbPeZuuK1Zw0TeuRKOD3VC8HH+vbDw+XXRp8EIO8IAmiEie6jLlw2Il59iQp8RF DI8Cl2cFdiAbpqZmxa1COwfJBrwoyHuoA58QmPU88atgYnNjGzzYc2MjKQU8J51sYnOE T+3vAA7ZXoyqATGjwydpsKsp3u+TW5zbkUw6UG2QEdx8I83RoeLjIzyyFKY/4zsC3VtT VOXHa8woFd8+2vJPda/Vkr3y9LPlgfr1EUJQgBlaSJtFuly2vr5nYvIMqrFMa7yeANFT 1cVr3tNV9UiTMU0W6rHNxokp7odK63/MbgUeljSlQBqn/thl8wx0zCoriz7iTJNtNK7m GcQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784060028; x=1784664828; h=content-transfer-encoding:content-type:mime-version:user-agent :references:in-reply-to:message-id:date:cc:to:from:subject:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=d214MLGyf83e1Jqi9SjyzgCBFipAoJ9SSnt0shamnDY=; b=dvnrEyiORFLlyzPa5Y1A5sdQAQSHqyZWnb1eUhsedLnUig8L+g+DIfG7vibWiWFuSY eO+v0O9lsCZIVgyqrxrZKJcNjUmzSvVuR1nFRrlD24nQfRVefqDbQKnBlFuvrXvki3aH /kKXQxD4xTnoxyrVZYokvztfu/Asxva2WfoTYpNqRPRURtM3WKbZWoxgsP0+bdR4yAlq cn8cg9fqYevODESt3tEnm/V3rD1+997uAeAnNDmtkqvmVK1MCCc7BiNsyvFE36uMk0j/ n6aCxioeyQEqohv6VGJxx6LK2s50uivXo+x3W77zgcPiWXfSIMQuN9sxiAIYcuHPaTqq E5Ng== X-Forwarded-Encrypted: i=1; AHgh+RpFGgjt7y4rU8gayCorViyUtpxNFaqVnzXB3Mhpdc3DjqbSD7aWlNH2AqFIn5IWSdZPAsCyoNOgM3qcAYE=@vger.kernel.org X-Gm-Message-State: AOJu0YzxvOXsJ5xeT+mcllu3aby2wG5PLOirz8uA4zuKLl3I+hFQGSW9 3bmWSrmc62kNF+Cy0W8TVJZbOw8AoL4/wFmZS5DznRUSHML/EwIondMU X-Gm-Gg: AfdE7cmYtytoXQfvRClK9MnrJlpF5ZGekuupT7u2cJWJKhLTPlHTEIh7SCksNBVg6mK YCYqo5zyb5a4rlFTu0s9nMvqqgF1/Qs6jXS/ZgCfGSNGqfYjBlLDuymCdyIwoY2lUvUNIUt9Gtb SR1n1TMOnW4tT6YwmP163mwPAk+gt9lZc3A8tO8XGikUtPaf+vg3e9qAoEyIC1+3x9msilWIleL dURwXTzmKbvYBVDI08Ml8YPbt6+IuTVNE4qqrI8alnqz4AqYmgZsqQqr3CSGyNlzji5awIyTm0f VaRDjtYct1I9+tDE1pnmzkzE3Z3pTm/2WA/XDIzGcVNNo6Fq/YsKDz8CQSLRWUmvcD2ydbBbFB3 C2Q+odOREQjAQxu0lrwCNezcSpN67Oli0zZNfklg0GAHkKS/H84c4AFpcucBccmFCRRuV2FrVsa RWVcaXW5KZoiSkhYBQ/VIUNWTZ1VqvJydNl7KxH/0HywhIVvKmWvrXda6NukI= X-Received: by 2002:a17:902:d591:b0:2ca:c68:c554 with SMTP id d9443c01a7336-2ce9f15d1f6mr140607525ad.38.1784060028032; Tue, 14 Jul 2026 13:13:48 -0700 (PDT) Received: from [192.168.0.160] (c-98-225-44-182.hsd1.wa.comcast.net. [98.225.44.182]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9d3d45csm120844995ad.62.2026.07.14.13.13.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jul 2026 13:13:47 -0700 (PDT) Subject: [PATCH 3/4] fixup! accel/amdxdna: use hmm_range_fault_unlocked_timeout() for range population From: Stanislav Kinsburskii To: airlied@gmail.com, akhilesh@ee.iitb.ac.in, akpm@linux-foundation.org, corbet@lwn.net, dakr@kernel.org, david@kernel.org, jgg@ziepe.ca, kees@kernel.org, leon@kernel.org, liam@infradead.org, lizhi.hou@amd.com, ljs@kernel.org, lyude@redhat.com, maarten.lankhorst@linux.intel.com, mamin506@gmail.com, mhocko@suse.com, mripard@kernel.org, nouveau@lists.freedesktop.org, ogabbay@kernel.org, oleg@redhat.com, rppt@kernel.org, shuah@kernel.org, simona@ffwll.ch, skhan@linuxfoundation.org, skinsburskii@gmail.com, surenb@google.com, tzimmermann@suse.de, vbabka@kernel.org Cc: dri-devel@lists.freedesktop.org, linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-rdma@vger.kernel.org Date: Tue, 14 Jul 2026 13:13:46 -0700 Message-ID: <178406002613.1082778.11295976907808029605.stgit@skinsburskii> In-Reply-To: <178405975214.1082778.5193079941156341151.stgit@skinsburskii> References: <178405975214.1082778.5193079941156341151.stgit@skinsburskii> User-Agent: StGit/0.19 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable nouveau_range_fault() now uses hmm_range_fault_unlocked_timeout() for the HMM fault path. The timeout passed to that helper is meant to bound HMM's internal mmu-notifier retry loop, not the whole nouveau retry loop around mmu_interval_read_retry(). Pass the full relative HMM_RANGE_DEFAULT_TIMEOUT value to hmm_range_fault_unlocked_timeout() on each attempt, and retry from the nouveau-side mmu_interval_read_retry() check with a fresh HMM retry budget. This lets HMM continue when it has made progress, while still preserving a timeout for repeated notifier invalidation retries inside one HMM fault attempt. This also removes the open-coded absolute deadline and remaining-time calculation from nouveau_range_fault(). Signed-off-by: Stanislav Kinsburskii --- drivers/accel/amdxdna/aie2_ctx.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/accel/amdxdna/aie2_ctx.c b/drivers/accel/amdxdna/aie2_= ctx.c index 548ba4315554..21f2817751f9 100644 --- a/drivers/accel/amdxdna/aie2_ctx.c +++ b/drivers/accel/amdxdna/aie2_ctx.c @@ -1037,7 +1037,7 @@ static int aie2_populate_range(struct amdxdna_gem_obj= *abo) bool found; int ret; =20 - timeout =3D jiffies + msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); + timeout =3D msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); again: found =3D false; down_write(&xdna->notifier_lock); @@ -1062,13 +1062,9 @@ static int aie2_populate_range(struct amdxdna_gem_ob= j *abo) return -EFAULT; } =20 - ret =3D hmm_range_fault_unlocked_timeout(&mapp->range, - max_t(long, timeout - jiffies, 1)); - if (ret) { - if (ret =3D=3D -EBUSY) - ret =3D -ETIME; + ret =3D hmm_range_fault_unlocked_timeout(&mapp->range, timeout); + if (ret) goto put_mm; - } =20 down_write(&xdna->notifier_lock); if (mmu_interval_read_retry(&mapp->notifier, mapp->range.notifier_seq)) { @@ -1086,7 +1082,7 @@ static int aie2_populate_range(struct amdxdna_gem_obj= *abo) put_mm: amdxdna_umap_put(mapp); mmput(mm); - return ret; + return ret =3D=3D -EBUSY ? -ETIME : ret; } =20 int aie2_cmd_submit(struct amdxdna_hwctx *hwctx, struct amdxdna_sched_job = *job, u64 *seq) From nobody Sat Jul 25 18:54:51 2026 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C70EF41D633 for ; Tue, 14 Jul 2026 20:13:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784060037; cv=none; b=Ihh+9sAThWacg4buNqSSCtUwFJyCMBBGk2nedevRA2DGY2Bjt2g/PuIvimQjyM50vdYoBert9jyFsL65Eju1byovV6ROTskBOR+7W+1OyPjXznAlxOVUBIDOt03lVT7nMp67kBXAAphCaGJAAOBoqFdL0/nqi3PA9NfBDiUjz00= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784060037; c=relaxed/simple; bh=Q8uBbE9XdPRVXQaZ0ExTI42TK7zcMOJJhXBlrcrT8a4=; h=Subject:From:To:Cc:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=G/fKc7b+iPy1wTr/L8gVCHtY4+eZWftM/D9FMnCGsIwV9IOqKTidt6Vqh8JovCQzwNCyqocK0HIOfIhSxG7VWy7AlnWv0s8YlfMEjnbkH+8YZg5C4zro7Y5QDK6B/ta+AtfcVKck+iH5HNG2T36syKzC9FBt/8k19+1EYtufMiM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=pC1DnLXs; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="pC1DnLXs" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2cee9b74ee1so13031615ad.3 for ; Tue, 14 Jul 2026 13:13:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784060035; x=1784664835; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:user-agent :references:in-reply-to:message-id:date:cc:to:from:subject:from:to :cc:subject:date:message-id:reply-to:content-type; bh=EUZJ2b06rpE59kyPt/lRc7T/ATHNB4Peeih6JEYSOE8=; b=pC1DnLXsM9pmrYwdczi94TaLLqpfQzcoJ8YoVM1oFGZFe07rDd/ZCswe0khlgNZrJ1 bnZTQhA9whkBaPIDABjABX27M3zaGGfUO76Dkj5z00rDODdddWT6Euq7TCJeurqS0iI3 +eHgc2AwQ67JCkvEgbI1biks0xb/SD55hvZpvaIsGXP9UULODby2vYd0uE/y1WHYsLXo KP8oZnUlz/rrrGvauR7PVCczqYe+AYH80h0j9wQGrBsbXdSvplOqRnTqBfpFTMMQNRpz 1jD00Q96/vaw21V2zPNgvEJegojwXZXA6TOPslb58rOSvT4N87aKlLO+AFVZUacP7NV4 RIqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784060035; x=1784664835; h=content-transfer-encoding:content-type:mime-version:user-agent :references:in-reply-to:message-id:date:cc:to:from:subject:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=EUZJ2b06rpE59kyPt/lRc7T/ATHNB4Peeih6JEYSOE8=; b=n792Gl3ziFJWQ2KefQ8nWZlsp//RW4SM4BzdYQMDj+dKi3Tm7O4TkYoMAcobKPXdij tb7o0dKlvhaw5h+ztObLhywpxlfo9wp10dc48apkeqNwmeObbT/RrDkj58kXisU3jo6y dMoV7C7LN/1KhixGbqE7LEWD8GxA85rrXwvyYuVDjFruS9Jn48miXKSwPCaHoNgQUXm6 rvFsBVNfYTe8fJWaujUmzErjqb/1ggs6xSqRRd6blRbEKL+4hV2DCiHrzfw9i1heEsSc TkvjSQrBgoWIKS5r7sTvP+2M/d3WdmW0ZlSRwec/WFzUbi616OCtwAoVt4BN0L0/lzrZ Yx6g== X-Forwarded-Encrypted: i=1; AHgh+RoTJqngcibybjz0DMHvZ9UFIpY2/+D+YAoiVj2xJ1BEtVuHvyDut1LNe9eC3tUpdDy/9u66Cmrg4lBwRdo=@vger.kernel.org X-Gm-Message-State: AOJu0Yxt7okluBE5fQ+td5PTqo8KYDnpGmVqCkFuMdYzhCs9buqTJ9/n S3gcdtj0Kq9J5u9XAQWwE8tXjD1sJc+VsgBtyBufSM8R8g95tEns3lz/ X-Gm-Gg: AfdE7cljJJmriAYSx65ZVVdHsM556dtDcT6NPlfitmczB08mGkJf5dalOdTnnXibC0h uIqu2qDuLyiS9qZVzPh5O4LYPdGEEg1S4m0fJtQ9DIMtrwAU1nrL0A/9YLhUxRXcxasktU/UJlw yeUB+lXeLU78mWHeHgypTCvCb8JcYB7jaHEUaPUS4eOyN6pW5Pc/cX9eSk5Lrdmu5g7iJKIMaiO bPencICkICff4UBuo78GNqQD4QgfAn8a3dwLkMVWgKk03S1jgGlE6xmCTKjVqoAczQHSSpyvRXh wMDajhaE9XbRK/EcAxre/331LLcdy/ZAgCdCu2lTfjIX6MecgNSibg1PmH1OX9UOCzCsR4AlAlk QJ4E5BDuL+Fqi3DzC5HaULvLZxVOI3NrfweNfU+oHj3/+j+jzYKHZvI57/qDVidWAPmq4UGmVbd gjiM4zx68cBkQs6EkQJ9YDB6pXZ6/RfYv7QwndLdylbPNJepeDr6UohUySBeB6w5Y/Dtxi1A== X-Received: by 2002:a17:902:fc8f:b0:2c9:97a8:afe5 with SMTP id d9443c01a7336-2ce9f27e6dbmr139524545ad.40.1784060035193; Tue, 14 Jul 2026 13:13:55 -0700 (PDT) Received: from [192.168.0.160] (c-98-225-44-182.hsd1.wa.comcast.net. [98.225.44.182]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9bdb877sm120937885ad.14.2026.07.14.13.13.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jul 2026 13:13:54 -0700 (PDT) Subject: [PATCH 4/4] fixup! drm/gpusvm: use hmm_range_fault_unlocked_timeout() for range faults From: Stanislav Kinsburskii To: airlied@gmail.com, akhilesh@ee.iitb.ac.in, akpm@linux-foundation.org, corbet@lwn.net, dakr@kernel.org, david@kernel.org, jgg@ziepe.ca, kees@kernel.org, leon@kernel.org, liam@infradead.org, lizhi.hou@amd.com, ljs@kernel.org, lyude@redhat.com, maarten.lankhorst@linux.intel.com, mamin506@gmail.com, mhocko@suse.com, mripard@kernel.org, nouveau@lists.freedesktop.org, ogabbay@kernel.org, oleg@redhat.com, rppt@kernel.org, shuah@kernel.org, simona@ffwll.ch, skhan@linuxfoundation.org, skinsburskii@gmail.com, surenb@google.com, tzimmermann@suse.de, vbabka@kernel.org Cc: dri-devel@lists.freedesktop.org, linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-rdma@vger.kernel.org Date: Tue, 14 Jul 2026 13:13:53 -0700 Message-ID: <178406003318.1082778.16211328573488321338.stgit@skinsburskii> In-Reply-To: <178405975214.1082778.5193079941156341151.stgit@skinsburskii> References: <178405975214.1082778.5193079941156341151.stgit@skinsburskii> User-Agent: StGit/0.19 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable The timeout passed to hmm_range_fault_unlocked_timeout() is a relative retry budget for HMM's internal mmu-notifier retry loop. drm_gpusvm was still keeping an absolute deadline around the outer driver retry logic and passing the remaining time into HMM. Pass HMM_RANGE_DEFAULT_TIMEOUT directly to hmm_range_fault_unlocked_timeout() on each HMM fault attempt instead. If HMM succeeds but the later drm_gpusvm-side mmu_interval_read_retry() check observes an invalidation, retry with a fresh HMM retry budget. This keeps the timeout focused on repeated notifier retries inside HMM, while avoiding an outer deadline that also accounts unrelated driver-side work after HMM has made progress. Signed-off-by: Stanislav Kinsburskii --- drivers/gpu/drm/drm_gpusvm.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/drm_gpusvm.c b/drivers/gpu/drm/drm_gpusvm.c index b8f2dd9982f5..76e8a0028c7f 100644 --- a/drivers/gpu/drm/drm_gpusvm.c +++ b/drivers/gpu/drm/drm_gpusvm.c @@ -852,8 +852,7 @@ enum drm_gpusvm_scan_result drm_gpusvm_scan_mm(struct d= rm_gpusvm_range *range, .end =3D end, .dev_private_owner =3D dev_private_owner, }; - unsigned long timeout =3D - jiffies + msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); + unsigned long timeout =3D msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); enum drm_gpusvm_scan_result state =3D DRM_GPUSVM_SCAN_UNPOPULATED, new_st= ate; unsigned long *pfns; unsigned long npages =3D npages_in_range(start, end); @@ -867,8 +866,7 @@ enum drm_gpusvm_scan_result drm_gpusvm_scan_mm(struct d= rm_gpusvm_range *range, hmm_range.hmm_pfns =3D pfns; =20 retry: - err =3D hmm_range_fault_unlocked_timeout(&hmm_range, - max(timeout - jiffies, 1L)); + err =3D hmm_range_fault_unlocked_timeout(&hmm_range, timeout); if (err) goto err_free; =20 @@ -1459,8 +1457,7 @@ int drm_gpusvm_get_pages(struct drm_gpusvm *gpusvm, .dev_private_owner =3D ctx->device_private_page_owner, }; void *zdd; - unsigned long timeout =3D - jiffies + msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); + unsigned long timeout =3D msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); unsigned long i, j; unsigned long npages =3D npages_in_range(pages_start, pages_end); unsigned long num_dma_mapped; @@ -1478,9 +1475,6 @@ int drm_gpusvm_get_pages(struct drm_gpusvm *gpusvm, return -EINVAL; =20 retry: - if (time_after(jiffies, timeout)) - return -EBUSY; - hmm_range.notifier_seq =3D mmu_interval_read_begin(notifier); if (drm_gpusvm_pages_valid_unlocked(gpusvm, svm_pages)) goto set_seqno; @@ -1495,8 +1489,7 @@ int drm_gpusvm_get_pages(struct drm_gpusvm *gpusvm, } =20 hmm_range.hmm_pfns =3D pfns; - err =3D hmm_range_fault_unlocked_timeout(&hmm_range, - max_t(long, timeout - jiffies, 1)); + err =3D hmm_range_fault_unlocked_timeout(&hmm_range, timeout); mmput(mm); if (err) goto err_free; @@ -1718,8 +1711,7 @@ int drm_gpusvm_range_evict(struct drm_gpusvm *gpusvm, .end =3D drm_gpusvm_range_end(range), .dev_private_owner =3D NULL, }; - unsigned long timeout =3D - jiffies + msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); + unsigned long timeout =3D msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); unsigned long *pfns; unsigned long npages =3D npages_in_range(drm_gpusvm_range_start(range), drm_gpusvm_range_end(range)); @@ -1734,8 +1726,7 @@ int drm_gpusvm_range_evict(struct drm_gpusvm *gpusvm, return -ENOMEM; =20 hmm_range.hmm_pfns =3D pfns; - err =3D hmm_range_fault_unlocked_timeout(&hmm_range, - max_t(long, timeout - jiffies, 1)); + err =3D hmm_range_fault_unlocked_timeout(&hmm_range, timeout); =20 kvfree(pfns); mmput(mm);