From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 5435A3CFF4C for ; Wed, 15 Jul 2026 21:10:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784149820; cv=none; b=Zw8ga9isF3AsVJncFaf2ABdOvnMID4o507CnN3RIzdF4F9zUg7odisJB8oMJMUcKWPEJqbndf59dAeM/O7315Pt2GoLkwjIvUY8UQHB+gCKkFkc9O1ebjr8sEuUpQp2Ct4ORZ//pw1ER3uwqJ0w+cWQzRYKIFLuzv+d0Ix6rHEU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784149820; c=relaxed/simple; bh=0P0rB0KdTlhynl0eAlyvymkqf9qNCxYk6xMaot2P0mo=; h=Date:To:From:Subject:Message-Id; b=k+FmSY7wfa6bc7qrpoOFDmalNcnxu7DzpMO2EIpy4sdnvZAajcDIVWGGZGYlGykoSoiLMZ3W5Pgl/4qt3GQJOMsRlBUi+nybpyYXUK3vhNQuPsLSeXvaThpboXcnKjRIzNcQ3THwlrdGMBee0xs+8kxNRburMdttVPd+4ffjwH8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux-foundation.org header.i=@linux-foundation.org header.b=wO2prpVP; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux-foundation.org header.i=@linux-foundation.org header.b="wO2prpVP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C2F961F000E9; Wed, 15 Jul 2026 21:10:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=korg; t=1784149818; bh=dcxX3NXNxT93Ms5PIvec51xY//Bkc5JLy8JI4+fJCAY=; h=Date:To:From:Subject; b=wO2prpVP9wRDLlJA8K66+d8ybG/YFhnHEMENQMyqsYOzUq1Dt4wQnocsIBG0ol8UR 3DlWgewSrFeYqYpF1JPaHhhLEcC+wll3qwIuJoFDZ/iP5+UHTIbjSoGgen1HJsSkgJ dX+DmaKfMwXg+3SUIh1ELukHNxKOoC4lpbxv4xJY= Date: Wed, 15 Jul 2026 14:10:18 -0700 To: mm-commits@vger.kernel.org,skinsburskii@gmail.com,akpm@linux-foundation.org From: Andrew Morton Subject: [to-be-updated] drm-gpusvm-use-hmm_range_fault_unlocked_timeout-for-range-faults-fix.patch removed from -mm tree Message-Id: <20260715211018.C2F961F000E9@smtp.kernel.org> Precedence: bulk X-Mailing-List: mm-commits@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: The quilt patch titled Subject: drm-gpusvm-use-hmm_range_fault_unlocked_timeout-for-range-faults-fix has been removed from the -mm tree. Its filename was drm-gpusvm-use-hmm_range_fault_unlocked_timeout-for-range-faults-fix.patch This patch was dropped because an updated version will be issued ------------------------------------------------------ From: Stanislav Kinsburskii Subject: drm-gpusvm-use-hmm_range_fault_unlocked_timeout-for-range-faults-fix Date: Tue, 14 Jul 2026 15:21:49 -0700 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. Link: https://lore.kernel.org/178406770964.1106335.10099816010446253543.stgit@skinsburskii Signed-off-by: Stanislav Kinsburskii Cc: Danilo Krummrich Cc: Dave Airlie Cc: David Hildenbrand Cc: Dexuan Cui Cc: Haiyang Zhang Cc: Jason Gunthorpe Cc: Jonathan Corbet Cc: Kees Cook Cc: K. Y. Srinivasan Cc: Leon Romanovsky Cc: Liam R. Howlett Cc: Lizhi Hou Cc: Long Li Cc: Lorenzo Stoakes Cc: Lyude Cc: Maarten Lankhorst Cc: Maxime Ripard Cc: Michal Hocko Cc: Mike Rapoport Cc: Oded Gabbay Cc: Oleg Nesterov Cc: Shuah Khan Cc: Suren Baghdasaryan Cc: Thomas Zimemrmann Cc: Vlastimil Babka Cc: Wei Liu Signed-off-by: Andrew Morton --- drivers/gpu/drm/drm_gpusvm.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) --- a/drivers/gpu/drm/drm_gpusvm.c~drm-gpusvm-use-hmm_range_fault_unlocked_timeout-for-range-faults-fix +++ a/drivers/gpu/drm/drm_gpusvm.c @@ -773,8 +773,7 @@ enum drm_gpusvm_scan_result drm_gpusvm_s .end = end, .dev_private_owner = dev_private_owner, }; - unsigned long timeout = - jiffies + msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); + unsigned long timeout = msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); enum drm_gpusvm_scan_result state = DRM_GPUSVM_SCAN_UNPOPULATED, new_state; unsigned long *pfns; unsigned long npages = npages_in_range(start, end); @@ -788,8 +787,7 @@ enum drm_gpusvm_scan_result drm_gpusvm_s hmm_range.hmm_pfns = pfns; retry: - err = hmm_range_fault_unlocked_timeout(&hmm_range, - max(timeout - jiffies, 1L)); + err = hmm_range_fault_unlocked_timeout(&hmm_range, timeout); if (err) goto err_free; @@ -1392,8 +1390,7 @@ int drm_gpusvm_get_pages(struct drm_gpus .dev_private_owner = ctx->device_private_page_owner, }; void *zdd; - unsigned long timeout = - jiffies + msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); + unsigned long timeout = msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); unsigned long i, j; unsigned long npages = npages_in_range(pages_start, pages_end); unsigned long num_dma_mapped; @@ -1408,9 +1405,6 @@ int drm_gpusvm_get_pages(struct drm_gpus struct dma_iova_state *state = &svm_pages->state; retry: - if (time_after(jiffies, timeout)) - return -EBUSY; - hmm_range.notifier_seq = mmu_interval_read_begin(notifier); if (drm_gpusvm_pages_valid_unlocked(gpusvm, svm_pages)) goto set_seqno; @@ -1425,8 +1419,7 @@ retry: } hmm_range.hmm_pfns = pfns; - err = hmm_range_fault_unlocked_timeout(&hmm_range, - max_t(long, timeout - jiffies, 1)); + err = hmm_range_fault_unlocked_timeout(&hmm_range, timeout); mmput(mm); if (err) goto err_free; @@ -1693,8 +1686,7 @@ int drm_gpusvm_range_evict(struct drm_gp .end = drm_gpusvm_range_end(range), .dev_private_owner = NULL, }; - unsigned long timeout = - jiffies + msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); + unsigned long timeout = msecs_to_jiffies(HMM_RANGE_DEFAULT_TIMEOUT); unsigned long *pfns; unsigned long npages = npages_in_range(drm_gpusvm_range_start(range), drm_gpusvm_range_end(range)); @@ -1709,8 +1701,7 @@ int drm_gpusvm_range_evict(struct drm_gp return -ENOMEM; hmm_range.hmm_pfns = pfns; - err = hmm_range_fault_unlocked_timeout(&hmm_range, - max_t(long, timeout - jiffies, 1)); + err = hmm_range_fault_unlocked_timeout(&hmm_range, timeout); kvfree(pfns); mmput(mm); _ Patches currently in -mm which might be from skinsburskii@gmail.com are lib-test_hmm-use-device-devt-for-coherent-device-range-selection.patch