Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Apr 2025 03:35:22 -0700
From:      "Pat Maddox" <pat@patmaddox.com>
To:        "Cy Schubert" <Cy.Schubert@cschubert.com>, "Doug Moore" <dougm@freebsd.org>
Cc:        src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org, manu@freebsd.org
Subject:   Re: git: a3a88ed22cb1 - main - vm_page: drop prev and next
Message-ID:  <6e35f593-40d8-42f2-8fe3-c7a1afef2f73@app.fastmail.com>
In-Reply-To: <20250421070908.65A1C202@slippy.cwsent.com>
References:  <202504181927.53IJRsoQ035803@gitrepo.freebsd.org> <20250421070908.65A1C202@slippy.cwsent.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Apr 21, 2025, at 12:09 AM, Cy Schubert wrote:
> In message <202504181927.53IJRsoQ035803@gitrepo.freebsd.org>, Doug Moore 
> writes
> :
>> The branch main has been updated by dougm:
>>
>> URL: https://cgit.FreeBSD.org/src/commit/?id=a3a88ed22cb111da3336f64ec3ba5815
>> a8278f88
>>
>> commit a3a88ed22cb111da3336f64ec3ba5815a8278f88
>> Author:     Doug Moore <dougm@FreeBSD.org>
>> AuthorDate: 2025-04-18 19:26:56 +0000
>> Commit:     Doug Moore <dougm@FreeBSD.org>
>> CommitDate: 2025-04-18 19:26:56 +0000
>>
>>     vm_page: drop prev and next
>>     
>>     Functions vm_page_prev() and vm_page_next() are no longer
>>     invoked. Remove them.
>>     
>>     Reviewed by:    kib
>>     Differential Revision:  https://reviews.freebsd.org/D49892
>> ---
>>  sys/vm/vm_page.c | 40 ----------------------------------------
>>  sys/vm/vm_page.h |  2 --
>>  2 files changed, 42 deletions(-)
>>
>> diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
>> index 65d278caf3fd..db91b7bab2ab 100644
>> --- a/sys/vm/vm_page.c
>> +++ b/sys/vm/vm_page.c
>> @@ -1894,46 +1894,6 @@ vm_page_find_least(vm_object_t object, vm_pindex_t pin
>> dex)
>>  	return (m);
>>  }
>>  
>> -/*
>> - * Returns the given page's successor (by pindex) within the object if it is
>> - * resident; if none is found, NULL is returned.
>> - *
>> - * The object must be locked.
>> - */
>> -vm_page_t
>> -vm_page_next(vm_page_t m)
>> -{
>> -	vm_page_t next;
>> -
>> -	VM_OBJECT_ASSERT_LOCKED(m->object);
>> -	if ((next = TAILQ_NEXT(m, listq)) != NULL) {
>> -		MPASS(next->object == m->object);
>> -		if (next->pindex != m->pindex + 1)
>> -			next = NULL;
>> -	}
>> -	return (next);
>> -}
>> -
>> -/*
>> - * Returns the given page's predecessor (by pindex) within the object if it 
>> is
>> - * resident; if none is found, NULL is returned.
>> - *
>> - * The object must be locked.
>> - */
>> -vm_page_t
>> -vm_page_prev(vm_page_t m)
>> -{
>> -	vm_page_t prev;
>> -
>> -	VM_OBJECT_ASSERT_LOCKED(m->object);
>> -	if ((prev = TAILQ_PREV(m, pglist, listq)) != NULL) {
>> -		MPASS(prev->object == m->object);
>> -		if (prev->pindex != m->pindex - 1)
>> -			prev = NULL;
>> -	}
>> -	return (prev);
>> -}
>> -
>>  /*
>>   * Uses the page mnew as a replacement for an existing page at index
>>   * pindex which must be already present in the object.
>> diff --git a/sys/vm/vm_page.h b/sys/vm/vm_page.h
>> index 0a40b42ffb62..bf2e850612d7 100644
>> --- a/sys/vm/vm_page.h
>> +++ b/sys/vm/vm_page.h
>> @@ -664,12 +664,10 @@ bool vm_page_iter_rename(struct pctrie_iter *old_pages,
>>  vm_page_t m,
>>  void vm_page_launder(vm_page_t m);
>>  vm_page_t vm_page_lookup(vm_object_t, vm_pindex_t);
>>  vm_page_t vm_page_lookup_unlocked(vm_object_t, vm_pindex_t);
>> -vm_page_t vm_page_next(vm_page_t m);
>>  void vm_page_pqbatch_drain(void);
>>  void vm_page_pqbatch_submit(vm_page_t m, uint8_t queue);
>>  bool vm_page_pqstate_commit(vm_page_t m, vm_page_astate_t *old,
>>      vm_page_astate_t new);
>> -vm_page_t vm_page_prev(vm_page_t m);
>>  bool vm_page_ps_test(vm_page_t m, int psind, int flags, vm_page_t skip_m);
>>  void vm_page_putfake(vm_page_t m);
>>  void vm_page_readahead_finish(vm_page_t m);
>>
>
> This breaks ports/graphics/drm-*-kmod. X will no longer start due to 
> missing vm_page_next().
>
> cc: manu
>
>
> -- 
> Cheers,
> Cy Schubert <Cy.Schubert@cschubert.com>
> FreeBSD UNIX:  <cy@FreeBSD.org>   Web:  https://FreeBSD.org
> NTP:           <cy@nwtime.org>    Web:  https://nwtime.org
>
> 			e^(i*pi)+1=0

Also drm-kmod cannot build:

--- i915_gem_mman.o ---
/wrkdirs/usr/ports/graphics/drm-61-kmod/work/drm-kmod-drm_v6.1.128_1/drivers/gpu/drm/i915/gem/i915_gem_mman.c:171:77: error: call to undeclared function 'vm_page_next'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
  171 |                         for (vm_page_t page = vm_page_find_least(vmobj, 0); page != NULL; page = vm_page_next(page)) {
      |                                                                                                  ^
--- intel_guc_log_debugfs.o ---
--- i915_gem_mman.o ---
/wrkdirs/usr/ports/graphics/drm-61-kmod/work/drm-kmod-drm_v6.1.128_1/drivers/gpu/drm/i915/gem/i915_gem_mman.c:171:75: error: incompatible integer to pointer conversion assigning to 'vm_page_t' (aka 'struct vm_page *') from 'int' [-Wint-conversion]
  171 |                         for (vm_page_t page = vm_page_find_least(vmobj, 0); page != NULL; page = vm_page_next(page)) {
      |                                                                                                ^ ~~~~~~~~~~~~~~~~~~
--- intel_guc_log_debugfs.o ---



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6e35f593-40d8-42f2-8fe3-c7a1afef2f73>