Home
last modified time | relevance | path

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

12

/linux-6.15/tools/testing/selftests/dma/
H A Ddma_map_benchmark.c33 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-6.15/include/linux/
H A Diova.h33 unsigned long granule; /* pfn granularity for this domain */ member
50 return __ffs(iovad->granule); in iova_shift()
55 return iovad->granule - 1; in iova_mask()
65 return ALIGN(size, iovad->granule); in iova_align()
70 return ALIGN_DOWN(size, iovad->granule); in iova_align_down()
100 void init_iova_domain(struct iova_domain *iovad, unsigned long granule,
153 unsigned long granule, in init_iova_domain() argument
H A Dio-pgtable.h43 void (*tlb_flush_walk)(unsigned long iova, size_t size, size_t granule,
46 unsigned long iova, size_t granule, void *cookie);
273 size_t size, size_t granule) in io_pgtable_tlb_flush_walk() argument
276 iop->cfg.tlb->tlb_flush_walk(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_walk()
282 size_t granule) in io_pgtable_tlb_add_page() argument
285 iop->cfg.tlb->tlb_add_page(gather, iova, granule, iop->cookie); in io_pgtable_tlb_add_page()
H A Dmap_benchmark.h29 __u32 granule; /* how many PAGE_SIZE will do map/unmap once a time */ member
/linux-6.15/drivers/virt/coco/arm-cca-guest/
H A Darm-cca-guest.c28 phys_addr_t granule; member
64 info->result = rsi_attestation_token_continue(info->granule, in arm_cca_attestation_continue()
139 info.granule = (unsigned long)virt_to_phys(buf); in arm_cca_report_new()
/linux-6.15/arch/arm64/include/asm/
H A Drsi_cmds.h145 static inline unsigned long rsi_attestation_token_continue(phys_addr_t granule, in rsi_attestation_token_continue() argument
153 granule, offset, size, 0, &res); in rsi_attestation_token_continue()
/linux-6.15/Documentation/virt/kvm/arm/
H A Dhypercalls.rst67 | | | | 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-6.15/drivers/iommu/arm/arm-smmu/
H A Dqcom_iommu.c148 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 Darm-smmu.c297 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()
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
348 arm_smmu_tlb_inv_range_s1(iova, granule, granule, cookie, in arm_smmu_tlb_add_page_s1()
353 size_t granule, void *cookie) in arm_smmu_tlb_inv_walk_s2() argument
364 arm_smmu_tlb_inv_range_s2(iova, granule, granule, cookie, in arm_smmu_tlb_add_page_s2()
[all …]
/linux-6.15/drivers/iommu/
H A 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()
H A Dio-pgtable-arm.c877 unsigned long granule, page_sizes; in arm_lpae_restrict_pgsizes() local
888 granule = PAGE_SIZE; in arm_lpae_restrict_pgsizes()
890 granule = 1UL << __fls(cfg->pgsize_bitmap & ~PAGE_MASK); in arm_lpae_restrict_pgsizes()
892 granule = 1UL << __ffs(cfg->pgsize_bitmap & PAGE_MASK); in arm_lpae_restrict_pgsizes()
894 granule = 0; in arm_lpae_restrict_pgsizes()
896 switch (granule) { in arm_lpae_restrict_pgsizes()
1279 size_t granule, void *cookie) in dummy_tlb_flush() argument
1286 unsigned long iova, size_t granule, in dummy_tlb_add_page() argument
1289 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
H A Diova.c38 init_iova_domain(struct iova_domain *iovad, unsigned long granule, in init_iova_domain() argument
46 BUG_ON((granule > PAGE_SIZE) || !is_power_of_2(granule)); in init_iova_domain()
52 iovad->granule = granule; in init_iova_domain()
H A Dio-pgtable-arm-v7s.c786 size_t granule, void *cookie) in dummy_tlb_flush() argument
793 unsigned long iova, size_t granule, in dummy_tlb_add_page() argument
796 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
H A Dvirtio-iommu.c389 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 Ddma-iommu.c423 if (cookie->iovad.granule) { in iommu_put_dma_cookie()
486 start += iovad->granule; in cookie_init_hw_msi_region()
686 if (1UL << order != iovad->granule || in iommu_dma_init_domain()
1752 return domain->iova_cookie->iovad.granule; in cookie_msi_granule()
/linux-6.15/kernel/dma/
H A Dmap_benchmark.c39 int npages = map->bparam.granule; in map_benchmark_thread()
236 if (map->bparam.granule < 1 || map->bparam.granule > 1024) { in map_benchmark_ioctl()
/linux-6.15/arch/arm64/kvm/hyp/
H A Dpgtable.c40 u64 granule = kvm_granule_size(ctx->level); in kvm_block_mapping_supported() local
45 if (granule > (ctx->end - ctx->addr)) in kvm_block_mapping_supported()
48 if (!IS_ALIGNED(phys, granule)) in kvm_block_mapping_supported()
51 return IS_ALIGNED(ctx->addr, granule); in kvm_block_mapping_supported()
466 u64 granule = kvm_granule_size(ctx->level); in hyp_unmap_walker() local
483 if (ctx->end - ctx->addr < granule) in hyp_unmap_walker()
489 *unmapped += granule; in hyp_unmap_walker()
906 u64 granule = kvm_granule_size(ctx->level); in stage2_map_walker_try_leaf() local
949 granule); in stage2_map_walker_try_leaf()
953 mm_ops->icache_inval_pou(kvm_pte_follow(new, mm_ops), granule); in stage2_map_walker_try_leaf()
/linux-6.15/drivers/gpu/drm/msm/
H A Dmsm_iommu.c242 size_t granule, void *cookie) in msm_iommu_tlb_flush_walk() argument
252 pagetable->tlb->tlb_flush_walk(iova, size, granule, (void *)adreno_smmu->cookie); in msm_iommu_tlb_flush_walk()
258 unsigned long iova, size_t granule, void *cookie) in msm_iommu_tlb_add_page() argument
/linux-6.15/arch/powerpc/boot/dts/
H A Dmicrowatt.dts119 reservation-granule-size = <64>;
149 reservation-granule-size = <64>;
/linux-6.15/Documentation/arch/arm64/
H A Dmemory-tagging-extension.rst19 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-6.15/arch/arm64/kvm/hyp/nvhe/
H A Dmem_protect.c475 u64 granule = kvm_granule_size(level); in host_stage2_adjust_range() local
476 cur.start = ALIGN_DOWN(addr, granule); in host_stage2_adjust_range()
477 cur.end = cur.start + granule; in host_stage2_adjust_range()
/linux-6.15/Documentation/core-api/
H A Dswiotlb.rst53 granule, other parts of the granule may contain unrelated kernel data. Since
54 IOMMU access control is per-granule, the untrusted device can gain access to
136 devices. It is set to the granule size - 1 so that the bounce buffer is
189 granule size, and granules cannot be larger than PAGE_SIZE. But if that were to
/linux-6.15/drivers/iommu/arm/arm-smmu-v3/
H A Darm-smmu-v3.c2271 size_t granule, in __arm_smmu_tlb_inv_range() argument
2276 size_t inv_range = granule; in __arm_smmu_tlb_inv_range()
2300 cmd->tlbi.ttl = 4 - ((ilog2(granule) - 3) / (tg - 3)); in __arm_smmu_tlb_inv_range()
2341 size_t granule, bool leaf, in arm_smmu_tlb_inv_range_domain() argument
2358 __arm_smmu_tlb_inv_range(&cmd, iova, size, granule, smmu_domain); in arm_smmu_tlb_inv_range_domain()
2377 size_t granule, bool leaf, in arm_smmu_tlb_inv_range_asid() argument
2389 __arm_smmu_tlb_inv_range(&cmd, iova, size, granule, smmu_domain); in arm_smmu_tlb_inv_range_asid()
2393 unsigned long iova, size_t granule, in arm_smmu_tlb_inv_page_nosync() argument
2399 iommu_iotlb_gather_add_page(domain, gather, iova, granule); in arm_smmu_tlb_inv_page_nosync()
2403 size_t granule, void *cookie) in arm_smmu_tlb_inv_walk() argument
[all …]
H A Darm-smmu-v3.h954 size_t granule, bool leaf,
/linux-6.15/Documentation/dev-tools/
H A Dkasan.rst250 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,

12