/linux/tools/testing/selftests/dma/ |
H A D | dma_map_benchmark.c | 33 int granule = 1; in main() local 58 granule = atoi(optarg); in main() 95 if (granule < 1 || granule > 1024) { in main() 113 map.granule = granule; in main() 121 threads, seconds, node, dir[directions], granule); in main()
|
/linux/include/linux/ |
H A D | io-pgtable.h | 43 void (*tlb_flush_walk)(unsigned long iova, size_t size, size_t granule, 46 unsigned long iova, size_t granule, void *cookie); 260 size_t size, size_t granule) in io_pgtable_tlb_flush_walk() argument 263 iop->cfg.tlb->tlb_flush_walk(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_walk() 269 size_t granule) in io_pgtable_tlb_add_page() argument 272 iop->cfg.tlb->tlb_add_page(gather, iova, granule, iop->cookie); in io_pgtable_tlb_add_page()
|
H A D | map_benchmark.h | 29 __u32 granule; /* how many PAGE_SIZE will do map/unmap once a time */ member
|
/linux/Documentation/virt/kvm/arm/ |
H A D | hypercalls.rst | 67 | | | | memory protection granule in bytes | 74 permissions. The size of the region is equal to the memory protection granule 100 memory protection granule advertised by ``ARM_SMCCC_KVM_FUNC_HYP_MEMINFO``. 125 region is equal to the memory protection granule advertised by
|
/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 | 278 size_t granule, void *cookie, int reg) in arm_smmu_tlb_inv_range_s1() argument 293 iova += granule; in arm_smmu_tlb_inv_range_s1() 294 } while (size -= granule); in arm_smmu_tlb_inv_range_s1() 300 iova += granule >> 12; in arm_smmu_tlb_inv_range_s1() 301 } while (size -= granule); in arm_smmu_tlb_inv_range_s1() 306 size_t granule, void *cookie, int reg) in arm_smmu_tlb_inv_range_s2() argument 321 iova += granule >> 12; in arm_smmu_tlb_inv_range_s2() 322 } while (size -= granule); in arm_smmu_tlb_inv_range_s2() 326 size_t granule, void *cookie) in arm_smmu_tlb_inv_walk_s1() argument 334 arm_smmu_tlb_inv_range_s1(iova, size, granule, cookie, in arm_smmu_tlb_inv_walk_s1() [all …]
|
/linux/drivers/iommu/ |
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 | 844 unsigned long granule, page_sizes; in arm_lpae_restrict_pgsizes() local 855 granule = PAGE_SIZE; in arm_lpae_restrict_pgsizes() 857 granule = 1UL << __fls(cfg->pgsize_bitmap & ~PAGE_MASK); in arm_lpae_restrict_pgsizes() 859 granule = 1UL << __ffs(cfg->pgsize_bitmap & PAGE_MASK); in arm_lpae_restrict_pgsizes() 861 granule = 0; in arm_lpae_restrict_pgsizes() 863 switch (granule) { in arm_lpae_restrict_pgsizes() 1252 size_t granule, void *cookie) in dummy_tlb_flush() argument 1259 unsigned long iova, size_t granule, in dummy_tlb_add_page() argument 1262 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
|
H A D | iova.c | 37 init_iova_domain(struct iova_domain *iovad, unsigned long granule, in init_iova_domain() argument 45 BUG_ON((granule > PAGE_SIZE) || !is_power_of_2(granule)); in init_iova_domain() 51 iovad->granule = granule; in init_iova_domain()
|
H A D | virtio-iommu.c | 389 unsigned long granule = 1UL << __ffs(vdomain->domain.pgsize_bitmap); in viommu_domain_map_identity() local 391 iova = ALIGN(iova, granule); in viommu_domain_map_identity() 392 limit = ALIGN_DOWN(limit + 1, granule) - 1; in viommu_domain_map_identity() 395 u64 resv_start = ALIGN_DOWN(resv->start, granule); in viommu_domain_map_identity() 396 u64 resv_end = ALIGN(resv->start + resv->length, granule) - 1; in viommu_domain_map_identity()
|
H A D | io-pgtable-arm-v7s.c | 903 size_t granule, void *cookie) in dummy_tlb_flush() argument 910 unsigned long iova, size_t granule, in dummy_tlb_add_page() argument 913 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
|
H A D | dma-iommu.c | 371 return cookie->iovad.granule; in cookie_msi_granule() 449 if (cookie->type == IOMMU_DMA_IOVA_COOKIE && cookie->iovad.granule) { in iommu_put_dma_cookie() 502 start += iovad->granule; in cookie_init_hw_msi_region() 703 if (1UL << order != iovad->granule || in iommu_dma_init_domain()
|
H A D | ipmmu-vmsa.c | 317 size_t granule, void *cookie) in ipmmu_tlb_flush() argument
|
/linux/arch/arm64/kvm/hyp/ |
H A D | pgtable.c | 48 u64 granule = kvm_granule_size(ctx->level); in kvm_block_mapping_supported() local 53 if (granule > (ctx->end - ctx->addr)) in kvm_block_mapping_supported() 56 if (kvm_phys_is_valid(phys) && !IS_ALIGNED(phys, granule)) in kvm_block_mapping_supported() 59 return IS_ALIGNED(ctx->addr, granule); in kvm_block_mapping_supported() 474 u64 granule = kvm_granule_size(ctx->level); in hyp_unmap_walker() local 491 if (ctx->end - ctx->addr < granule) in hyp_unmap_walker() 497 *unmapped += granule; in hyp_unmap_walker() 919 u64 granule = kvm_granule_size(ctx->level); in stage2_map_walker_try_leaf() local 962 granule); in stage2_map_walker_try_leaf() 966 mm_ops->icache_inval_pou(kvm_pte_follow(new, mm_ops), granule); in stage2_map_walker_try_leaf()
|
/linux/kernel/dma/ |
H A D | map_benchmark.c | 39 int npages = map->bparam.granule; in map_benchmark_thread() 236 if (map->bparam.granule < 1 || map->bparam.granule > 1024) { in map_benchmark_ioctl()
|
/linux/drivers/gpu/drm/msm/ |
H A D | msm_iommu.c | 220 size_t granule, void *cookie) in msm_iommu_tlb_flush_walk() argument 230 pagetable->tlb->tlb_flush_walk(iova, size, granule, (void *)adreno_smmu->cookie); in msm_iommu_tlb_flush_walk() 236 unsigned long iova, size_t granule, void *cookie) in 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/powerpc/boot/dts/ |
H A D | microwatt.dts | 78 reservation-granule-size = <64>;
|
/linux/drivers/iommu/arm/arm-smmu-v3/ |
H A D | arm-smmu-v3.c | 2146 size_t granule, in __arm_smmu_tlb_inv_range() argument 2151 size_t inv_range = granule; in __arm_smmu_tlb_inv_range() 2175 cmd->tlbi.ttl = 4 - ((ilog2(granule) - 3) / (tg - 3)); in __arm_smmu_tlb_inv_range() 2216 size_t granule, bool leaf, in arm_smmu_tlb_inv_range_domain() argument 2233 __arm_smmu_tlb_inv_range(&cmd, iova, size, granule, smmu_domain); in arm_smmu_tlb_inv_range_domain() 2243 size_t granule, bool leaf, in arm_smmu_tlb_inv_range_asid() argument 2255 __arm_smmu_tlb_inv_range(&cmd, iova, size, granule, smmu_domain); in arm_smmu_tlb_inv_range_asid() 2259 unsigned long iova, size_t granule, in arm_smmu_tlb_inv_page_nosync() argument 2265 iommu_iotlb_gather_add_page(domain, gather, iova, granule); in arm_smmu_tlb_inv_page_nosync() 2269 size_t granule, void *cookie) in arm_smmu_tlb_inv_walk() argument [all …]
|
H A D | arm-smmu-v3.h | 882 size_t granule, bool leaf,
|
/linux/arch/arm64/kvm/hyp/nvhe/ |
H A D | mem_protect.c | 461 u64 granule = kvm_granule_size(level); in host_stage2_adjust_range() local 462 cur.start = ALIGN_DOWN(addr, granule); in host_stage2_adjust_range() 463 cur.end = cur.start + granule; in host_stage2_adjust_range()
|
/linux/Documentation/dev-tools/ |
H A D | kasan.rst | 250 Internally, KASAN tracks memory state separately for each memory granule, which 255 For Generic KASAN, the size of each memory granule is 8. The state of each 256 granule is encoded in one shadow byte. Those 8 bytes can be accessible,
|
/linux/drivers/gpu/drm/panfrost/ |
H A D | panfrost_mmu.c | 393 static void mmu_tlb_flush_walk(unsigned long iova, size_t size, size_t granule, in mmu_tlb_flush_walk() argument
|
/linux/Documentation/admin-guide/mm/ |
H A D | nommu-mmap.rst | 118 granule but will only discard the excess if appropriately configured as
|