[RFC] drm/radeon: make dynamic allocation of page tables on demand in radeon_vm_update_pte v2

2012-10-04 Thread Dmitry Cherkasov
v2: setup and alloc number of contiguous PTs if possible Warning: Heaven benchmark /sometimes/ fails with this patch after 10 or 15 minutes of working, so any insight is greatly appreciated. The code is a bit bloated because it's a question how a decent optimization should be made: via macros? us

[RFC] drm/radeon: make dynamic allocation of page tables on demand in radeon_vm_update_pte v2

2012-10-04 Thread Dmitry Cherkasov
v2: setup and alloc number of contiguous PTs if possible Warning: Heaven benchmark /sometimes/ fails with this patch after 10 or 15 minutes of working, so any insight is greatly appreciated. The code is a bit bloated because it's a question how a decent optimization should be made: via macros? us

[PATCH 2/2] drm/radeon: implement dynamic PTs allocation via SA

2012-09-26 Thread Dmitry Cherkasov
make dynamic allocation of page tables on demand in radeon_vm_update_pte Signed-off-by: Dmitry Cherkasov --- drivers/gpu/drm/radeon/radeon.h | 12 drivers/gpu/drm/radeon/radeon_gart.c | 106 ++ 2 files changed, 107 insertions(+), 11 deletions

[PATCH 1/2] drm/radeon: interface cleanup patch v6

2012-09-26 Thread Dmitry Cherkasov
add addr_list array to set_page. if it's not NULL these addresses will be put to the ring. Signed-off-by: Dmitry Cherkasov --- to be applied on top of drm/radeon: add 2-level VM pagetables support v9 drivers/gpu/drm/radeon/ni.c | 11 --- drivers/gpu/drm/radeon/rad

[PATCH 2/2] drm/radeon: implement dynamic PTs allocation via SA

2012-09-25 Thread Dmitry Cherkasov
make dynamic allocation of page tables on demand in radeon_vm_update_pte Signed-off-by: Dmitry Cherkasov --- drivers/gpu/drm/radeon/radeon.h | 12 drivers/gpu/drm/radeon/radeon_gart.c | 106 ++ 2 files changed, 107 insertions(+), 11 deletions

[PATCH 1/2] drm/radeon: interface cleanup patch v6

2012-09-25 Thread Dmitry Cherkasov
add addr_list array to set_page. if it's not NULL these addresses will be put to the ring. Signed-off-by: Dmitry Cherkasov --- to be applied on top of drm/radeon: add 2-level VM pagetables support v9 drivers/gpu/drm/radeon/ni.c | 11 --- drivers/gpu/drm/radeon/rad

[PATCH 2/2] Add 2-level GPUVM pagetables support to radeon v3

2012-09-18 Thread Dmitry Cherkasov
* rebased on top of "refactor set_page chipset interface v3" * switched offsets calc macros to inline funcs where possible * remove pd_addr from radeon_vm * switched RADEON_BLOCK_SIZE define to 9 (and PTE_COUNT to 1 << BLOCK_SIZE) Signed-off-by: Dmitry Cherkasov --- d

[PATCH 1/2] drm/radeon: refactor set_page chipset interface v3

2012-09-18 Thread Dmitry Cherkasov
From: Christian König Cleanup the interface in preparation for hierarchical page tables. v3: * add incr parameter to set_page for simple scattered PTs uptates * added PDE-specific flags to r600_flags and radeon_drm.h * removed superflous value masking with 0x * removed superfl

[PATCH 2/2] Add 2-level GPUVM pagetables support to radeon v3

2012-09-17 Thread Dmitry Cherkasov
* rebased on top of "refactor set_page chipset interface v3" * switched offsets calc macros to inline funcs where possible * remove pd_addr from radeon_vm * switched RADEON_BLOCK_SIZE define to 9 (and PTE_COUNT to 1 << BLOCK_SIZE) Signed-off-by: Dmitry Cherkasov --- d

[PATCH 1/2] drm/radeon: refactor set_page chipset interface v3

2012-09-17 Thread Dmitry Cherkasov
From: Christian K?nig Cleanup the interface in preparation for hierarchical page tables. v3: * add incr parameter to set_page for simple scattered PTs uptates * added PDE-specific flags to r600_flags and radeon_drm.h * removed superflous value masking with 0x * removed superfl

[PATCH 2/2] Add 2-level GPUVM pagetables support to radeon driver. v2

2012-09-15 Thread Dmitry Cherkasov
* rebased on top of "refactor set_page chipset interface v2" * code cleanups Signed-off-by: Dmitry Cherkasov --- drivers/gpu/drm/radeon/ni.c |4 +- drivers/gpu/drm/radeon/radeon.h |4 +- drivers/gpu/drm/radeon/radeon_gart.c | 145 +++

[PATCH 1/2] drm/radeon: refactor set_page chipset interface v2

2012-09-15 Thread Dmitry Cherkasov
From: Christian König Cleanup the interface in preparation for hierarchical page tables. v2: * add incr parameter to set_page for simple scattered PTs uptates * added PDE-specific flags to r600_flags and radeon_drm.h * removed superflous value masking with 0x Signed-off-by: Chris

[PATCH 2/2] Add 2-level GPUVM pagetables support to radeon driver. v2

2012-09-14 Thread Dmitry Cherkasov
* rebased on top of "refactor set_page chipset interface v2" * code cleanups Signed-off-by: Dmitry Cherkasov --- drivers/gpu/drm/radeon/ni.c |4 +- drivers/gpu/drm/radeon/radeon.h |4 +- drivers/gpu/drm/radeon/radeon_gart.c | 145 +++

[PATCH 1/2] drm/radeon: refactor set_page chipset interface v2

2012-09-14 Thread Dmitry Cherkasov
From: Christian K?nig Cleanup the interface in preparation for hierarchical page tables. v2: * add incr parameter to set_page for simple scattered PTs uptates * added PDE-specific flags to r600_flags and radeon_drm.h * removed superflous value masking with 0x Signed-off-by: Chris

[PATCH] Add 2-level GPUVM pagetables support to radeon driver.

2012-09-13 Thread Dmitry Cherkasov
PDE/PTE update code uses CP ring for memory writes. All page table entries are preallocated for now in alloc_pt(). It is made as whole because it's hard to divide it to several patches that compile and doesn't break anything being applied separately. Tested on cayman card. Signed-off-

[PATCH] Add 2-level GPUVM pagetables support to radeon driver.

2012-09-13 Thread Dmitry Cherkasov
PDE/PTE update code uses CP ring for memory writes. All page table entries are preallocated for now in alloc_pt(). It is made as whole because it's hard to divide it to several patches that compile and doesn't break anything being applied separately. Tested on cayman card. Signed-off-