Displaying 11 results from an estimated 11 matches for "fpde".
Did you mean:
fde
2013 Mar 05
4
[RFC PATCH] drm/nouveau: use vmalloc for pgt allocation
...re/subdev/vm/base.c b/drivers/gpu/drm/nouveau/core/subdev/vm/base.c
index 77c67fc..e66fb77 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/vm/base.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/vm/base.c
@@ -362,7 +362,7 @@ nouveau_vm_create(struct nouveau_vmmgr *vmm, u64 offset, u64 length,
vm->fpde = offset >> (vmm->pgt_bits + 12);
vm->lpde = (offset + length - 1) >> (vmm->pgt_bits + 12);
- vm->pgt = kcalloc(vm->lpde - vm->fpde + 1, sizeof(*vm->pgt), GFP_KERNEL);
+ vm->pgt = vzalloc((vm->lpde - vm->fpde + 1) * sizeof(*vm->pgt));
if (!vm->...
2013 Jul 29
0
[PATCH] drm/nouveau: protect vm refcount with mutex
...nouveau_vm_ref(vm, &vma->vm, NULL);
vma->offset = (u64)vma->node->offset << 12;
#ifdef NOUVEAU_VM_POISON
if (vm->poison)
@@ -353,7 +355,7 @@ nouveau_vm_put(struct nouveau_vma *vma)
{
struct nouveau_vm *vm = vma->vm;
struct nouveau_vmmgr *vmm = vm->vmm;
- u32 fpde, lpde;
+ u32 fpde, lpde, ref;
if (unlikely(vma->node == NULL))
return;
@@ -363,9 +365,12 @@ nouveau_vm_put(struct nouveau_vma *vma)
mutex_lock(&nv_subdev(vmm)->mutex);
nouveau_vm_unmap_pgt(vm, vma->node->type != vmm->spg_shift, fpde, lpde);
nouveau_mm_free(&vm-&g...
2013 Jun 11
0
[RFC PATCH] drm/nouveau: use vmalloc for pgt allocation
...vers/gpu/drm/nouveau/core/subdev/vm/base.c
> index 77c67fc..e66fb77 100644
> --- a/drivers/gpu/drm/nouveau/core/subdev/vm/base.c
> +++ b/drivers/gpu/drm/nouveau/core/subdev/vm/base.c
> @@ -362,7 +362,7 @@ nouveau_vm_create(struct nouveau_vmmgr *vmm, u64 offset, u64 length,
> vm->fpde = offset >> (vmm->pgt_bits + 12);
> vm->lpde = (offset + length - 1) >> (vmm->pgt_bits + 12);
>
> - vm->pgt = kcalloc(vm->lpde - vm->fpde + 1, sizeof(*vm->pgt), GFP_KERNEL);
> + vm->pgt = vzalloc((vm->lpde - vm->fpde + 1) * sizeof(*vm->...
2013 Aug 11
2
Fixing nouveau for >4k PAGE_SIZE
...hift != vmm->spg_shift;
u32 offset = vma->node->offset + (delta >> 12);
- u32 bits = vma->node->type - 12;
- u32 num = length >> vma->node->type;
+ u32 bits = shift - 12;
+ u32 num = length >> shift;
u32 pde = (offset >> vmm->pgt_bits) - vm->fpde;
u32 pte = (offset & ((1 << vmm->pgt_bits) - 1)) >> bits;
u32 max = 1 << (vmm->pgt_bits - bits);
@@ -98,7 +99,7 @@ nouveau_vm_map_sg_table(struct nouveau_vma *vma, u64 delta, u64 length,
for_each_sg(mem->sg->sgl, sg, mem->sg->nents, i) {
struct n...
2013 Aug 11
2
Fixing nouveau for >4k PAGE_SIZE
...node->offset + (delta >> 12);
> > - u32 bits = vma->node->type - 12;
> > - u32 num = length >> vma->node->type;
> > + u32 bits = shift - 12;
> > + u32 num = length >> shift;
> > u32 pde = (offset >> vmm->pgt_bits) - vm->fpde;
> > u32 pte = (offset & ((1 << vmm->pgt_bits) - 1)) >> bits;
> > u32 max = 1 << (vmm->pgt_bits - bits);
> > @@ -98,7 +99,7 @@ nouveau_vm_map_sg_table(struct nouveau_vma *vma, u64 delta, u64 length,
> >
> > for_each_sg(mem->sg-&...
2013 Aug 11
0
Fixing nouveau for >4k PAGE_SIZE
...; u32 offset = vma->node->offset + (delta >> 12);
> - u32 bits = vma->node->type - 12;
> - u32 num = length >> vma->node->type;
> + u32 bits = shift - 12;
> + u32 num = length >> shift;
> u32 pde = (offset >> vmm->pgt_bits) - vm->fpde;
> u32 pte = (offset & ((1 << vmm->pgt_bits) - 1)) >> bits;
> u32 max = 1 << (vmm->pgt_bits - bits);
> @@ -98,7 +99,7 @@ nouveau_vm_map_sg_table(struct nouveau_vma *vma, u64 delta, u64 length,
>
> for_each_sg(mem->sg->sgl, sg, mem->sg-&g...
2013 Aug 29
0
Fixing nouveau for >4k PAGE_SIZE
...gt; 12);
>> > - u32 bits = vma->node->type - 12;
>> > - u32 num = length >> vma->node->type;
>> > + u32 bits = shift - 12;
>> > + u32 num = length >> shift;
>> > u32 pde = (offset >> vmm->pgt_bits) - vm->fpde;
>> > u32 pte = (offset & ((1 << vmm->pgt_bits) - 1)) >> bits;
>> > u32 max = 1 << (vmm->pgt_bits - bits);
>> > @@ -98,7 +99,7 @@ nouveau_vm_map_sg_table(struct nouveau_vma *vma, u64 delta, u64 length,
>> >
>> >...
2013 Nov 29
2
Fixing nouveau for >4k PAGE_SIZE
...ode->offset + (delta >> 12);
- u32 bits = vma->node->type - 12;
- u32 num = length >> vma->node->type;
+ u32 shift = vma->node->type;
+ u32 order = PAGE_SHIFT - shift;
+ u32 num = length >> PAGE_SHIFT;
u32 pde = (offset >> vmm->pgt_bits) - vm->fpde;
- u32 pte = (offset & ((1 << vmm->pgt_bits) - 1)) >> bits;
- u32 max = 1 << (vmm->pgt_bits - bits);
- unsigned m, sglen;
- u32 end, len;
+ u32 pte = offset & ((1 << vmm->pgt_bits) - 1);
+ u32 max = 1 << vmm->pgt_bits;
+ u32 end, len, cardlen;...
2013 Aug 11
2
Fixing nouveau for >4k PAGE_SIZE
Op 11-08-13 07:36, Benjamin Herrenschmidt schreef:
> On Sun, 2013-08-11 at 10:41 +1000, Benjamin Herrenschmidt wrote:
>> Now, to do that, I need a better understanding of the various things
>> in there since I'm not familiar with nouveau at all. What I think I've
>> figured out is with a few questions, it would be awesome if you could
>> answer them so I can have
2013 Dec 11
0
Fixing nouveau for >4k PAGE_SIZE
...>node->type - 12;
> - u32 num = length >> vma->node->type;
> + u32 shift = vma->node->type;
> + u32 order = PAGE_SHIFT - shift;
> + u32 num = length >> PAGE_SHIFT;
> u32 pde = (offset >> vmm->pgt_bits) - vm->fpde;
> - u32 pte = (offset & ((1 << vmm->pgt_bits) - 1)) >> bits;
> - u32 max = 1 << (vmm->pgt_bits - bits);
> - unsigned m, sglen;
> - u32 end, len;
> + u32 pte = offset & ((1 << vmm->pgt_bits) - 1);
> +...
2015 Apr 16
15
[PATCH 0/6] map big page by platform IOMMU
Hi,
Generally the the imported buffers which has memory type TTM_PL_TT are
mapped as small pages probably due to lack of big page allocation. But the
platform device which also use memory type TTM_PL_TT, like GK20A, can
*allocate* big page though the IOMMU hardware inside the SoC. This is a try
to map the imported buffers as big pages in GMMU by the platform IOMMU. With
some preparation work to