Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 May 2010 19:55:41 -0700
From:      Craig Rodrigues <rodrigc@FreeBSD.org>
To:        "datastream datastream.freecity" <datastream.freecity@gmail.com>
Cc:        FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: nvidia-driver 195.22 use horribly broken on amd64 between r206173 and
Message-ID:  <20100530025541.GA19805@FreeBSD.org>
In-Reply-To: <AANLkTim2-n8CZhbnqFKXVEO_Fjg1KDFxi0eZsGJWSUkd@mail.gmail.com>
References:  <AANLkTil33IEVGXxsjV1oqfBgKQq-aIJ9Ur1U0Gn8Gplt@mail.gmail.com> <4BFD4AE6.5040105@cs.rice.edu> <20100526165141.GF83316@deviant.kiev.zoral.com.ua> <4C0158D0.1000902@FreeBSD.org> <AANLkTim2-n8CZhbnqFKXVEO_Fjg1KDFxi0eZsGJWSUkd@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--Kj7319i9nmIyA2yE
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Sun, May 30, 2010 at 02:48:13AM +0800, datastream datastream.freecity wrote:
> >  http://www.nvnews.net/vbulletin/showthread.php?t=150719
> NVIDIA-FreeBSD-x86_64-195.36.24 with r208117 in my T61 laptop works well.

Hi,

I did the following:

- updated r208649
- applied following patch to nvidia-driver port which bumps driver version
  up to 195.36.24, and also applies kib's patch

My system still hangs after doing a startx.

I also tried recompiling the driver *without* kib's patch, and my
system still hangs.

-- 
Craig Rodrigues
rodrigc@crodrigues.org

--Kj7319i9nmIyA2yE
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="nvidia-patch.txt"

? a.txt
? nvidia-vm_page_lock.1.patch
? work
Index: Makefile
===================================================================
RCS file: /home/pcvs/ports/x11/nvidia-driver/Makefile,v
retrieving revision 1.98
diff -r1.98 Makefile
9c9
< DISTVERSION?=	195.36.15
---
> DISTVERSION?=	195.36.24
Index: distinfo
===================================================================
RCS file: /home/pcvs/ports/x11/nvidia-driver/distinfo,v
retrieving revision 1.36
diff -r1.36 distinfo
1,15c1,3
< MD5 (NVIDIA-FreeBSD-x86-195.36.15.tar.gz) = 2537ca726240344c7eaa44857e2b134e
< SHA256 (NVIDIA-FreeBSD-x86-195.36.15.tar.gz) = 21fc89fa59e2cc96e560af856a3fa583ce4bfb7975465c71170c64962201e7a1
< SIZE (NVIDIA-FreeBSD-x86-195.36.15.tar.gz) = 25614326
< MD5 (NVIDIA-FreeBSD-x86_64-195.36.15.tar.gz) = 95af03aedc818a3dfd8ae9f289746ba4
< SHA256 (NVIDIA-FreeBSD-x86_64-195.36.15.tar.gz) = d64c664398cb4dade24af6b108e03607614f1f7584c71449230c646c313d0e7e
< SIZE (NVIDIA-FreeBSD-x86_64-195.36.15.tar.gz) = 26449559
< MD5 (NVIDIA-FreeBSD-x86-173.14.25.tar.gz) = 1eca3916a9ae86b953f54405e1881774
< SHA256 (NVIDIA-FreeBSD-x86-173.14.25.tar.gz) = c432ed94ce71e297b2d9304d9f34f906b58e2c7c4bc13d8dbac264ed52fd6261
< SIZE (NVIDIA-FreeBSD-x86-173.14.25.tar.gz) = 16682722
< MD5 (NVIDIA-FreeBSD-x86-96.43.16.tar.gz) = 3fc5c2bb537d4a7664d84a7a0df09c7c
< SHA256 (NVIDIA-FreeBSD-x86-96.43.16.tar.gz) = 38bf334284dc600d92d8436333c98d5577e34d69456ed71f1cccc75caa6dffcd
< SIZE (NVIDIA-FreeBSD-x86-96.43.16.tar.gz) = 11842453
< MD5 (NVIDIA-FreeBSD-x86-71.86.13.tar.gz) = 19000b906225ebd39ca3edc1b0c3c7a5
< SHA256 (NVIDIA-FreeBSD-x86-71.86.13.tar.gz) = 27ae01cd6fe050871f7785c2146b18e74ea882f6262e46dc965bf26061238447
< SIZE (NVIDIA-FreeBSD-x86-71.86.13.tar.gz) = 8066159
---
> MD5 (NVIDIA-FreeBSD-x86-195.36.24.tar.gz) = b09ee65d4d445fe8679e50bc49bba8c7
> SHA256 (NVIDIA-FreeBSD-x86-195.36.24.tar.gz) = d175c6848ac174f4c0c54ce7325959e21132f833e13d34004fab116c7034244f
> SIZE (NVIDIA-FreeBSD-x86-195.36.24.tar.gz) = 25632339
Index: files/patch-nvidia-vm_page_lock.1
===================================================================
RCS file: files/patch-nvidia-vm_page_lock.1
diff -N files/patch-nvidia-vm_page_lock.1
0a1,34
> --- src/nvidia_subr.c.orig	2010-05-26 19:34:20.722118986 +0300
> +++ src/nvidia_subr.c	2010-05-26 19:50:00.198768786 +0300
> @@ -1237,6 +1237,7 @@
>      struct nvidia_alloc *at;
>      struct nvidia_softc *sc = nv->os_state;
>      vm_offset_t address;
> +    vm_page_t m;
>      uint32_t i;
>      vm_memattr_t attr;
>      uint32_t size = (count * PAGE_SIZE);
> @@ -1301,9 +1302,10 @@
>  
>      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();
> +        m = PHYS_TO_VM_PAGE(pte_array[i]);
> +        vm_page_lock(m);
> +        vm_page_wire(m);
> +        vm_page_unlock(m);
>          sglist_append_phys(at->sg_list, pte_array[i], PAGE_SIZE);
>      }
>  
> @@ -1365,9 +1367,7 @@
>          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);

--Kj7319i9nmIyA2yE--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100530025541.GA19805>