| /linux-6.15/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-6.15/include/linux/ |
| H A D | iova.h | 33 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 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); 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 D | map_benchmark.h | 29 __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 D | arm-cca-guest.c | 28 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 D | rsi_cmds.h | 145 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 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-6.15/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 | 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() 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 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 | 877 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 D | iova.c | 38 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 D | io-pgtable-arm-v7s.c | 786 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 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 | dma-iommu.c | 423 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 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-6.15/arch/arm64/kvm/hyp/ |
| H A D | pgtable.c | 40 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 D | msm_iommu.c | 242 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 D | microwatt.dts | 119 reservation-granule-size = <64>; 149 reservation-granule-size = <64>;
|
| /linux-6.15/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-6.15/arch/arm64/kvm/hyp/nvhe/ |
| H A D | mem_protect.c | 475 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 D | swiotlb.rst | 53 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 D | arm-smmu-v3.c | 2271 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 D | arm-smmu-v3.h | 954 size_t granule, bool leaf,
|
| /linux-6.15/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,
|