[email protected], le ven. 18 oct. 2024 10:20:06 -0400, a ecrit:
> * i386/intel/pmap.c: removed these unused functions:
> pmap_page_table_page_dealloc
pmap_page_table_page_dealloc is used in the xen case, so rather add the
corresponding ifdef.
> and pmap_page_table_page_alloc
It is actually surprising that it'd be unused, it most probably should
be used corresponding to the pmap_page_table_page_dealloc calls. It
should rather not be removed, since the function does make sense, better
not forget how it was supposed to be written.
Samuel
> i386/intel/pmap.c:1265:1: warning: 'pmap_page_table_page_dealloc' defined but
> not used [-Wunused-function]
> 1265 | pmap_page_table_page_dealloc(vm_offset_t pa)
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> i386/intel/pmap.c:1171:1: warning: 'pmap_page_table_page_alloc' defined but
> not used [-Wunused-function]
> 1171 | pmap_page_table_page_alloc(void)
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> ---
> i386/intel/pmap.c | 76 -----------------------------------------------
> 1 file changed, 76 deletions(-)
>
> diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c
> index 94c580e7..deaa348c 100644
> --- a/i386/intel/pmap.c
> +++ b/i386/intel/pmap.c
> @@ -1159,58 +1159,6 @@ valid_page(phys_addr_t addr)
> return (p != NULL);
> }
>
> -/*
> - * Routine: pmap_page_table_page_alloc
> - *
> - * Allocates a new physical page to be used as a page-table page.
> - *
> - * Must be called with the pmap system and the pmap unlocked,
> - * since these must be unlocked to use vm_page_grab.
> - */
> -static vm_offset_t
> -pmap_page_table_page_alloc(void)
> -{
> - vm_page_t m;
> - phys_addr_t pa;
> -
> - check_simple_locks();
> -
> - /*
> - * We cannot allocate the pmap_object in pmap_init,
> - * because it is called before the cache package is up.
> - * Allocate it now if it is missing.
> - */
> - if (pmap_object == VM_OBJECT_NULL)
> - pmap_object = vm_object_allocate(vm_page_table_size() * PAGE_SIZE);
> -
> - /*
> - * Allocate a VM page for the level 2 page table entries.
> - */
> - while ((m = vm_page_grab(VM_PAGE_DIRECTMAP)) == VM_PAGE_NULL)
> - VM_PAGE_WAIT((void (*)()) 0);
> -
> - /*
> - * Map the page to its physical address so that it
> - * can be found later.
> - */
> - pa = m->phys_addr;
> - assert(pa == (vm_offset_t) pa);
> - vm_object_lock(pmap_object);
> - vm_page_insert(m, pmap_object, pa);
> - vm_page_lock_queues();
> - vm_page_wire(m);
> - inuse_ptepages_count++;
> - vm_page_unlock_queues();
> - vm_object_unlock(pmap_object);
> -
> - /*
> - * Zero the page.
> - */
> - memset((void *)phystokv(pa), 0, PAGE_SIZE);
> -
> - return pa;
> -}
> -
> #ifdef MACH_XEN
> void pmap_map_mfn(void *_addr, unsigned long mfn) {
> vm_offset_t addr = (vm_offset_t) _addr;
> @@ -1256,30 +1204,6 @@ void pmap_map_mfn(void *_addr, unsigned long mfn) {
> }
> #endif /* MACH_XEN */
>
> -/*
> - * Deallocate a page-table page.
> - * The page-table page must have all mappings removed,
> - * and be removed from its page directory.
> - */
> -static void
> -pmap_page_table_page_dealloc(vm_offset_t pa)
> -{
> - vm_page_t m;
> -
> - vm_object_lock(pmap_object);
> - m = vm_page_lookup(pmap_object, pa);
> - vm_page_lock_queues();
> -#ifdef MACH_PV_PAGETABLES
> - if (!hyp_mmuext_op_mfn (MMUEXT_UNPIN_TABLE, pa_to_mfn(pa)))
> - panic("couldn't unpin page %llx(%lx)\n", pa, (vm_offset_t)
> kv_to_ma(pa));
> - pmap_set_page_readwrite((void*) phystokv(pa));
> -#endif /* MACH_PV_PAGETABLES */
> - vm_page_free(m);
> - inuse_ptepages_count--;
> - vm_page_unlock_queues();
> - vm_object_unlock(pmap_object);
> -}
> -
> /*
> * Create and return a physical map.
> *
> --
> 2.45.2
>
>
--
Samuel
(03:13:14) <j> bon
(03:13:19) <j> il est tard :p
(03:13:25) <g> c'est l'heure de manger
(03:13:38) <j> hm j'ai mangé à 1h moi, j'ai des horaires raisonnables