From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <1a71e77003b3e1e72f9ae1d4f7a7fb1d@quanstro.net> From: erik quanstrom Date: Tue, 14 Jul 2009 08:06:53 -0400 To: 9fans@9fans.net In-Reply-To: <7d3530220907132223o58711065w5a669c7fd0084e53@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Subject: Re: [9fans] ugliness in vesa Topicbox-Message-UUID: 1f10947c-ead5-11e9-9d60-3106f5b1d025 > I didn't seem to see any improvement after applying the mtrr patch... > did you make any changes to the vganvidia file before compiling? I > haven't looked at the 'pat' thing, I'll have to check that out. > for the pat business, i did: /n/sources/plan9//sys/src/9/pc/vganvidia.c:371,377 - vganvidia.c:371,377 if(scr->storage <= scr->apsize) nv.dmabase = (ulong*)((uchar*)scr->vaddr + scr->storage - 128*1024); else{ - nv.dmabase = (void*)vmap(scr->paddr + scr->storage - 128*1024, 128*1024); + nv.dmabase = (void*)vmappat(scr->paddr + scr->storage - 128*1024, 128*1024, PATWT); if(nv.dmabase == 0){ hwaccel = 0; hwblank = 0; a quick explainer. the pat patch just keeps a look-aside table of memory of special types. any time the mmu code is asked to map that memory, it is mapped with the special type given. this means that if you wanted to, for example (the current interface is better than this unless you want a user-space driver), map pci space in a segment accessable from user space, you could do this and you would get the proper NC memory type. it's fun when the explination's longer than the code. - erik