Re: nvidia-driver 195.22 use horribly broken on amd64 between r206173 and

From: Christian Zander <czander_at_nvidia.com>
Date: Mon, 14 Jun 2010 14:31:22 -0700
On Mon, Jun 14, 2010 at 02:30:03PM -0700, Rene Ladan wrote:
(...)
> >>>>> I've asked the driver author if the calls to vm_page_wire() and
> >>>>> vm_page_unwire() can simply be removed but have not heard back yet.
> >>>>>
> >>>>
> >>>> Is there any news on this? I have updated to the latest current so I'm
> >>>> running the nv driver now, but I'd like to get the nvidia driver running
> >>>> again.
> >>>>
> >>>>
> >>> Yes, the unnecessary (and now problematic) wiring and unwiring calls will 
> > be
> >>> removed in a future release of the driver.
> >>
> >> Excellent! Any ETA? Or are there patches against an existing version of 
> >> the driver?
> > 
> > I would just remove the calls to vm_page_wire() and vm_page_unwire() along 
> > with the immediately adjacent calls to vm_page_{un,}lock_queues().
> > 
> Just to confirm, like the attached patch?
> 

Yes.


> This is with a GeForce GT 240M, current/amd64 r209035, nvidia-driver
> 195.36.15
> 
> I haven't runtime-tested it yet...
> 
> Rene
> -- 
> http://www.rene-ladan.nl/
> 
> GPG fingerprint = E738 5471 D185 7013 0EE0  4FC8 3C1D 6F83 12E1 84F6
> (subkeys.pgp.net)

Content-Description: patch-jhb-current
> --- src/nvidia_subr.c.orig	2010-03-12 17:48:52.000000000 +0100
> +++ src/nvidia_subr.c	2010-06-14 23:25:28.000000000 +0200
> _at__at_ -1301,9 +1301,6 _at__at_
>  
>      for (i = 0; i < count; i++) {
>          pte_array[i] = at->pte_array[i].physical_address;
> -        vm_page_lock_queues();
> -        vm_page_wire(PHYS_TO_VM_PAGE(pte_array[i]));
> -        vm_page_unlock_queues();
>          sglist_append_phys(at->sg_list, pte_array[i], PAGE_SIZE);
>      }
>  
> _at__at_ -1365,9 +1362,6 _at__at_
>          os_flush_cpu_cache();
>  
>      for (i = 0; i < count; i++) {
> -        vm_page_lock_queues();
> -        vm_page_unwire(PHYS_TO_VM_PAGE(at->pte_array[i].physical_address), 0);
> -        vm_page_unlock_queues();
>          kmem_free(kernel_map,
>                  at->pte_array[i].virtual_address, PAGE_SIZE);
>          malloc_type_freed(M_NVIDIA, PAGE_SIZE);

-- 
christian zander
ch?zander_at_nvidia.com
Received on Mon Jun 14 2010 - 19:31:32 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:04 UTC