#5383: MTRR regression: AGP transfer inconsistencies ------------------------+--------------------------------------------------- Reporter: rudolfc | Owner: bonefish Type: bug | Status: closed Priority: normal | Milestone: R1 Component: - General | Version: R1/Development Resolution: fixed | Keywords: Blockedby: | Platform: All Blocking: | ------------------------+--------------------------------------------------- Changes (by bonefish): * status: in-progress => closed * resolution: => fixed Comment: Replying to [comment:10 rudolfc]: > On r35580 it's working again, acceleration is operating correctly in AGP mode. I'll attach a syslog below. Thanks, looks beautiful. :-) > BTW: On previous versions the nvidia kernel driver should have aborted loading because it checks for success of mapping the command buffer (if (si->dma_area < 0) fail). > > Is the kernel correctly reporting failed mappings, where it should fail if it's not able to set the requested cache type? It should have worked as expected. The "Memory range intersects with existing one" output from add_memory_type_range() we see in the syslog was immediately followed by a "return B_BAD_VALUE" in that function. The return value was passed right through by arch_vm_set_memory_type(). The calling vm_map_physical_memory() checked the return value, deleted the already created area and would pass the error code back. So, yes indeed, [vm_]map_physical_memory() would fail, when the memory type could not be set. With the exception that MTRR algorithm has changed and vm_map_physical_memory() now always sets a memory type ("uncached", if none has been specified), errors are still propagated the same way. -- Ticket URL: <http://dev.haiku-os.org/ticket/5383#comment:11> Haiku <http://dev.haiku-os.org> Haiku - the operating system.