Home
last modified time | relevance | path

Searched refs:granule (Results 1 – 25 of 27) sorted by relevance

12

/Linux-v5.15/tools/testing/selftests/dma/
Ddma_map_benchmark.c43 __u32 granule; /* how many PAGE_SIZE will do map/unmap once a time */ member
56 int granule = 1; in main() local
82 granule = atoi(optarg); in main()
119 if (granule < 1 || granule > 1024) { in main()
137 map.granule = granule; in main()
145 threads, seconds, node, dir[directions], granule); in main()
/Linux-v5.15/include/linux/
Diova.h73 unsigned long granule; /* pfn granularity for this domain */ member
108 return __ffs(iovad->granule); in iova_shift()
113 return iovad->granule - 1; in iova_mask()
123 return ALIGN(size, iovad->granule); in iova_align()
154 void init_iova_domain(struct iova_domain *iovad, unsigned long granule,
214 unsigned long granule, in init_iova_domain() argument
Dio-pgtable.h41 void (*tlb_flush_walk)(unsigned long iova, size_t size, size_t granule,
44 unsigned long iova, size_t granule, void *cookie);
224 size_t size, size_t granule) in io_pgtable_tlb_flush_walk() argument
227 iop->cfg.tlb->tlb_flush_walk(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_walk()
233 size_t granule) in io_pgtable_tlb_add_page() argument
236 iop->cfg.tlb->tlb_add_page(gather, iova, granule, iop->cookie); in io_pgtable_tlb_add_page()
/Linux-v5.15/kernel/dma/
Dmap_benchmark.c41 __u32 granule; /* how many PAGE_SIZE will do map/unmap once a time */ member
62 int npages = map->bparam.granule; in map_benchmark_thread()
239 if (map->bparam.granule < 1 || map->bparam.granule > 1024) { in map_benchmark_ioctl()
/Linux-v5.15/drivers/iommu/arm/arm-smmu/
Dqcom_iommu.c158 size_t granule, bool leaf, void *cookie) in qcom_iommu_tlb_inv_range_nosync() argument
174 iova += granule; in qcom_iommu_tlb_inv_range_nosync()
175 } while (s -= granule); in qcom_iommu_tlb_inv_range_nosync()
180 size_t granule, void *cookie) in qcom_iommu_tlb_flush_walk() argument
182 qcom_iommu_tlb_inv_range_nosync(iova, size, granule, false, cookie); in qcom_iommu_tlb_flush_walk()
187 unsigned long iova, size_t granule, in qcom_iommu_tlb_add_page() argument
190 qcom_iommu_tlb_inv_range_nosync(iova, granule, granule, true, cookie); in qcom_iommu_tlb_add_page()
Darm-smmu.c280 size_t granule, void *cookie, int reg) in arm_smmu_tlb_inv_range_s1() argument
295 iova += granule; in arm_smmu_tlb_inv_range_s1()
296 } while (size -= granule); in arm_smmu_tlb_inv_range_s1()
302 iova += granule >> 12; in arm_smmu_tlb_inv_range_s1()
303 } while (size -= granule); in arm_smmu_tlb_inv_range_s1()
308 size_t granule, void *cookie, int reg) in arm_smmu_tlb_inv_range_s2() argument
323 iova += granule >> 12; in arm_smmu_tlb_inv_range_s2()
324 } while (size -= granule); in arm_smmu_tlb_inv_range_s2()
328 size_t granule, void *cookie) in arm_smmu_tlb_inv_walk_s1() argument
336 arm_smmu_tlb_inv_range_s1(iova, size, granule, cookie, in arm_smmu_tlb_inv_walk_s1()
[all …]
/Linux-v5.15/drivers/iommu/
Dmsm_iommu.c139 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()
Dio-pgtable-arm.c741 unsigned long granule, page_sizes; in arm_lpae_restrict_pgsizes() local
752 granule = PAGE_SIZE; in arm_lpae_restrict_pgsizes()
754 granule = 1UL << __fls(cfg->pgsize_bitmap & ~PAGE_MASK); in arm_lpae_restrict_pgsizes()
756 granule = 1UL << __ffs(cfg->pgsize_bitmap & PAGE_MASK); in arm_lpae_restrict_pgsizes()
758 granule = 0; in arm_lpae_restrict_pgsizes()
760 switch (granule) { in arm_lpae_restrict_pgsizes()
1195 size_t granule, void *cookie) in dummy_tlb_flush() argument
1202 unsigned long iova, size_t granule, in dummy_tlb_add_page() argument
1205 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
Diova.c48 init_iova_domain(struct iova_domain *iovad, unsigned long granule, in init_iova_domain() argument
56 BUG_ON((granule > PAGE_SIZE) || !is_power_of_2(granule)); in init_iova_domain()
62 iovad->granule = granule; in init_iova_domain()
Dio-pgtable-arm-v7s.c878 size_t granule, void *cookie) in dummy_tlb_flush() argument
885 unsigned long iova, size_t granule, in dummy_tlb_add_page() argument
888 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
Ddma-iommu.c82 return cookie->iovad.granule; in cookie_msi_granule()
165 if (cookie->type == IOMMU_DMA_IOVA_COOKIE && cookie->iovad.granule) in iommu_put_dma_cookie()
215 start += iovad->granule; in cookie_init_hw_msi_region()
386 if (1UL << order != iovad->granule || in iommu_dma_init_domain()
Dipmmu-vmsa.c318 size_t granule, void *cookie) in ipmmu_tlb_flush() argument
Dmtk_iommu.c227 size_t granule, in mtk_iommu_tlb_flush_range_sync() argument
/Linux-v5.15/arch/arm64/kvm/hyp/
Dpgtable.c69 u64 granule = kvm_granule_size(level); in kvm_block_mapping_supported() local
74 if (granule > (end - addr)) in kvm_block_mapping_supported()
77 if (kvm_phys_is_valid(phys) && !IS_ALIGNED(phys, granule)) in kvm_block_mapping_supported()
80 return IS_ALIGNED(addr, granule); in kvm_block_mapping_supported()
405 u64 granule = kvm_granule_size(level), phys = data->phys; in hyp_map_walker_try_leaf() local
414 data->phys += granule; in hyp_map_walker_try_leaf()
663 u64 granule = kvm_granule_size(level), phys = data->phys; in stage2_map_walker_try_leaf() local
691 granule); in stage2_map_walker_try_leaf()
694 mm_ops->icache_inval_pou(kvm_pte_follow(new, mm_ops), granule); in stage2_map_walker_try_leaf()
700 data->phys += granule; in stage2_map_walker_try_leaf()
/Linux-v5.15/Documentation/ia64/
Daliasing.rst72 identity mapping only when the entire granule supports cacheable
75 Therefore, kern_memmap contains only full granule-sized regions that
162 If the EFI memory map reports that the entire granule supports
166 If the granule contains non-WB memory, but we can cover the
200 which uses a granule-sized UC mapping. This granule will cover some
236 at 0xA0000 prevents use of a WB granule. The UC mapping causes
/Linux-v5.15/arch/ia64/
DKconfig.debug12 Select "16MB" for a small granule size.
13 Select "64MB" for a large granule size. This is the current default.
/Linux-v5.15/arch/arm64/kvm/hyp/nvhe/
Dmem_protect.c284 u64 granule = kvm_granule_size(level); in host_stage2_adjust_range() local
285 cur.start = ALIGN_DOWN(addr, granule); in host_stage2_adjust_range()
286 cur.end = cur.start + granule; in host_stage2_adjust_range()
/Linux-v5.15/drivers/gpu/drm/msm/
Dmsm_iommu.c130 size_t granule, void *cookie) in msm_iommu_tlb_flush_walk() argument
135 unsigned long iova, size_t granule, void *cookie) in msm_iommu_tlb_add_page() argument
/Linux-v5.15/drivers/iommu/amd/
Dio_pgtable.c31 size_t granule, void *cookie) in v1_tlb_flush_walk() argument
36 unsigned long iova, size_t granule, in v1_tlb_add_page() argument
/Linux-v5.15/arch/powerpc/boot/dts/
Dmicrowatt.dts70 reservation-granule-size = <64>;
/Linux-v5.15/drivers/iommu/arm/arm-smmu-v3/
Darm-smmu-v3.c1853 size_t granule, in __arm_smmu_tlb_inv_range() argument
1858 size_t inv_range = granule; in __arm_smmu_tlb_inv_range()
1872 cmd->tlbi.ttl = 4 - ((ilog2(granule) - 3) / (tg - 3)); in __arm_smmu_tlb_inv_range()
1913 size_t granule, bool leaf, in arm_smmu_tlb_inv_range_domain() argument
1930 __arm_smmu_tlb_inv_range(&cmd, iova, size, granule, smmu_domain); in arm_smmu_tlb_inv_range_domain()
1940 size_t granule, bool leaf, in arm_smmu_tlb_inv_range_asid() argument
1952 __arm_smmu_tlb_inv_range(&cmd, iova, size, granule, smmu_domain); in arm_smmu_tlb_inv_range_asid()
1956 unsigned long iova, size_t granule, in arm_smmu_tlb_inv_page_nosync() argument
1962 iommu_iotlb_gather_add_page(domain, gather, iova, granule); in arm_smmu_tlb_inv_page_nosync()
1966 size_t granule, void *cookie) in arm_smmu_tlb_inv_walk() argument
[all …]
Darm-smmu-v3.h745 size_t granule, bool leaf,
/Linux-v5.15/Documentation/arm64/
Dmemory-tagging-extension.rst19 allocation tag for each 16-byte granule in the physical address space.
186 4-bit tag per byte and correspond to a 16-byte MTE tag granule in the
189 **Note**: If ``addr`` is not aligned to a 16-byte granule, the kernel
/Linux-v5.15/Documentation/dev-tools/
Dkasan.rst144 Internally, KASAN tracks memory state separately for each memory granule, which
149 For generic KASAN, the size of each memory granule is 8. The state of each
150 granule is encoded in one shadow byte. Those 8 bytes can be accessible,
/Linux-v5.15/drivers/gpu/drm/panfrost/
Dpanfrost_mmu.c355 static void mmu_tlb_flush_walk(unsigned long iova, size_t size, size_t granule, in mmu_tlb_flush_walk() argument

12