| /linux/tools/dma/ |
| H A D | dma_map_benchmark.c | 38 /* default granule 1 PAGESIZE */ in main() 39 int granule = 1; in main() 64 granule = atoi(optarg); in main() 110 if (granule < 1 || granule > 1024) { in main() 111 fprintf(stderr, "invalid granule size\n"); in main() 128 map.granule = granule; 136 printf("dma mapping benchmark(%s): threads:%d seconds:%d node:%d dir:%s granule:%d\n", 137 mode[map_mode], threads, seconds, node, directions[dir], granule); 32 int granule = 1; main() local [all...] |
| /linux/include/linux/ |
| H A D | io-pgtable.h | 41 void (*tlb_flush_walk)(unsigned long iova, size_t size, size_t granule, 44 unsigned long iova, size_t granule, void *cookie); 286 size_t size, size_t granule) in io_pgtable_tlb_flush_walk() argument 289 iop->cfg.tlb->tlb_flush_walk(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_walk() 295 size_t granule) in io_pgtable_tlb_add_page() argument 298 iop->cfg.tlb->tlb_add_page(gather, iova, granule, iop->cookie); in io_pgtable_tlb_add_page()
|
| /linux/drivers/iommu/ |
| H A D | io-pgtable-arm-selftests.c | 27 size_t granule, void *cookie) in dummy_tlb_flush() argument 34 unsigned long iova, size_t granule, in dummy_tlb_add_page() argument 37 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
|
| H A D | msm_iommu.c | 139 size_t granule, bool leaf, void *cookie) in __flush_iotlb_range() argument 159 iova += granule; in __flush_iotlb_range() 160 } while (temp_size -= granule); in __flush_iotlb_range() 171 size_t granule, void *cookie) in __flush_iotlb_walk() argument 173 __flush_iotlb_range(iova, size, granule, false, cookie); in __flush_iotlb_walk() 177 unsigned long iova, size_t granule, void *cookie) in __flush_iotlb_page() argument 179 __flush_iotlb_range(iova, granule, granule, true, cookie); in __flush_iotlb_page()
|
| H A D | io-pgtable-arm.c | 909 unsigned long granule, page_sizes; in arm_lpae_restrict_pgsizes() 914 * translation regime for a particular granule. Aim to match in arm_lpae_restrict_pgsizes() 917 * chosen granule. in arm_lpae_alloc_pgtable() 920 granule = PAGE_SIZE; in arm_lpae_alloc_pgtable() 922 granule = 1UL << __fls(cfg->pgsize_bitmap & ~PAGE_MASK); in arm_lpae_alloc_pgtable() 924 granule = 1UL << __ffs(cfg->pgsize_bitmap & PAGE_MASK); in arm_lpae_alloc_pgtable() 926 granule = 0; in arm_lpae_alloc_pgtable() 928 switch (granule) { in arm_lpae_alloc_pgtable() 1137 sl++; /* SL0 format is different for 4K granule size */ in arm_64_lpae_alloc_pgtable_s2() 875 unsigned long granule, page_sizes; arm_lpae_restrict_pgsizes() local
|
| H A D | io-pgtable-arm-v7s.c | 791 size_t granule, void *cookie) in dummy_tlb_flush() argument 799 size_t granule, in dummy_tlb_add_page() argument 802 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
|
| H A D | virtio-iommu.c | 406 unsigned long granule = 1UL << __ffs(vdomain->domain.pgsize_bitmap); in viommu_domain_map_identity() local 408 iova = ALIGN(iova, granule); in viommu_domain_map_identity() 409 limit = ALIGN_DOWN(limit + 1, granule) - 1; in viommu_domain_map_identity() 412 u64 resv_start = ALIGN_DOWN(resv->start, granule); in viommu_domain_map_identity() 413 u64 resv_end = ALIGN(resv->start + resv->length, granule) - 1; in viommu_domain_map_identity()
|
| H A D | dma-iommu.c | 429 if (cookie->iovad.granule) { in iommu_put_dma_cookie() 492 start += iovad->granule; in cookie_init_hw_msi_region() 701 if (1UL << order != iovad->granule || in iommu_dma_init_domain() 1208 * the IOMMU granule. Returns non-zero if either the start or end 1209 * address is not aligned to the granule boundary. 1907 size_t bounce_len = min(size, iovad->granule - iova_start_pad); in iommu_dma_iova_link_swiotlb() 2055 end - addr, iovad->granule - iova_start_pad); in iommu_dma_iova_unlink_range_slow() 2179 return domain->iova_cookie->iovad.granule; in cookie_msi_pages()
|
| H A D | ipmmu-vmsa.c | 317 size_t granule, void *cookie) in ipmmu_tlb_flush() argument
|
| /linux/drivers/iommu/arm/arm-smmu/ |
| H A D | qcom_iommu.c | 148 size_t granule, bool leaf, void *cookie) in qcom_iommu_tlb_inv_range_nosync() argument 164 iova += granule; in qcom_iommu_tlb_inv_range_nosync() 165 } while (s -= granule); in qcom_iommu_tlb_inv_range_nosync() 170 size_t granule, void *cookie) in qcom_iommu_tlb_flush_walk() argument 172 qcom_iommu_tlb_inv_range_nosync(iova, size, granule, false, cookie); in qcom_iommu_tlb_flush_walk() 177 unsigned long iova, size_t granule, in qcom_iommu_tlb_add_page() argument 180 qcom_iommu_tlb_inv_range_nosync(iova, granule, granule, true, cookie); in qcom_iommu_tlb_add_page()
|
| H A D | arm-smmu.c | 282 size_t granule, void *cookie, int reg) in arm_smmu_tlb_inv_range_s1() argument 297 iova += granule; in arm_smmu_tlb_inv_range_s1() 298 } while (size -= granule); in arm_smmu_tlb_inv_range_s1() 304 iova += granule >> 12; in arm_smmu_tlb_inv_range_s1() 305 } while (size -= granule); in arm_smmu_tlb_inv_range_s1() 310 size_t granule, void *cookie, int reg) in arm_smmu_tlb_inv_range_s2() argument 325 iova += granule >> 12; in arm_smmu_tlb_inv_range_s2() 326 } while (size -= granule); in arm_smmu_tlb_inv_range_s2() 330 size_t granule, void *cookie) in arm_smmu_tlb_inv_walk_s1() argument 338 arm_smmu_tlb_inv_range_s1(iova, size, granule, cookie, in arm_smmu_tlb_inv_walk_s1() [all …]
|
| /linux/arch/arm64/kvm/hyp/ |
| H A D | pgtable.c | 34 u64 granule = kvm_granule_size(ctx->level); in kvm_block_mapping_supported() local 39 if (granule > (ctx->end - ctx->addr)) in kvm_block_mapping_supported() 42 if (!IS_ALIGNED(phys, granule)) in kvm_block_mapping_supported() 45 return IS_ALIGNED(ctx->addr, granule); in kvm_block_mapping_supported() 473 u64 granule = kvm_granule_size(ctx->level); in hyp_unmap_walker() local 490 if (ctx->end - ctx->addr < granule) in hyp_unmap_walker() 496 *unmapped += granule; in hyp_unmap_walker() 961 u64 granule = kvm_granule_size(ctx->level); in stage2_map_walker_try_leaf() local 1004 granule); in stage2_map_walker_try_leaf() 1008 mm_ops->icache_inval_pou(kvm_pte_follow(new, mm_ops), granule); in stage2_map_walker_try_leaf()
|
| /linux/arch/powerpc/boot/dts/ |
| H A D | microwatt.dts | 119 reservation-granule-size = <64>; 149 reservation-granule-size = <64>;
|
| /linux/drivers/gpu/drm/msm/ |
| H A D | msm_iommu.c | 373 * and determined at creation time based on the granule size. 426 * and determined at creation time based on the granule size. in msm_iommu_pagetable_free_pt() 467 size_t granule, void *cookie) in msm_iommu_tlb_flush_walk() 477 pagetable->tlb->tlb_flush_walk(iova, size, granule, (void *)adreno_smmu->cookie); in msm_iommu_tlb_flush_walk() 483 unsigned long iova, size_t granule, void *cookie) 464 msm_iommu_tlb_flush_walk(unsigned long iova,size_t size,size_t granule,void * cookie) msm_iommu_tlb_flush_walk() argument 480 msm_iommu_tlb_add_page(struct iommu_iotlb_gather * gather,unsigned long iova,size_t granule,void * cookie) msm_iommu_tlb_add_page() argument
|
| /linux/Documentation/arch/arm64/ |
| H A D | memory-tagging-extension.rst | 19 allocation tag for each 16-byte granule in the physical address space. 197 4-bit tag per byte and correspond to a 16-byte MTE tag granule in the 200 **Note**: If ``addr`` is not aligned to a 16-byte granule, the kernel 247 in a byte. With the tag granule of 16 bytes, a 4K page requires 128
|
| /linux/arch/arm64/kvm/hyp/nvhe/ |
| H A D | mem_protect.c | 523 u64 granule; in host_stage2_adjust_range() 544 granule = kvm_granule_size(level); in host_stage2_adjust_range() 545 cur.start = ALIGN_DOWN(addr, granule); in host_stage2_adjust_range() 546 cur.end = cur.start + granule; in host_stage2_adjust_range() 520 u64 granule; host_stage2_adjust_range() local
|
| /linux/drivers/gpu/drm/panfrost/ |
| H A D | panfrost_mmu.c | 539 static void mmu_tlb_flush_walk(unsigned long iova, size_t size, size_t granule, in mmu_tlb_flush_walk() argument
|
| /linux/drivers/gpu/drm/panthor/ |
| H A D | panthor_mmu.c | 442 * and determined at creation time based on the granule size. in alloc_pt() 470 * 4k granule size at init time. in alloc_pt() 502 * and determined at creation time based on the granule size. in wait_ready() 1678 static void mmu_tlb_flush_walk(unsigned long iova, size_t size, size_t granule, void *cookie) in panthor_vm_lock_region() 1611 mmu_tlb_flush_walk(unsigned long iova,size_t size,size_t granule,void * cookie) mmu_tlb_flush_walk() argument
|
| /linux/arch/arm64/ |
| H A D | Kconfig | 1419 Page size (translation granule) configuration.
|