Home
last modified time | relevance | path

Searched refs:iova (Results 1 – 25 of 59) sorted by relevance

123

/qemu/hw/vfio/
H A Dcommon.c289 hwaddr iova = iotlb->iova + giommu->iommu_offset; in vfio_iommu_map_notify() local
295 iova, iova + iotlb->addr_mask); in vfio_iommu_map_notify()
545 hwaddr iova; in vfio_get_section_iova_range() local
556 *out_iova = iova; in vfio_get_section_iova_range()
569 hwaddr iova, end; in vfio_listener_region_add() local
734 hwaddr iova, end; in vfio_listener_region_del() local
894 if (*min > iova) { in vfio_dirty_tracking_update()
895 *min = iova; in vfio_dirty_tracking_update()
1126 report->iova = iova; in vfio_device_dma_logging_report()
1220 hwaddr iova = iotlb->iova + giommu->iommu_offset; in vfio_iommu_map_dirty_notify() local
[all …]
H A Dcontainer-base.c19 hwaddr iova, ram_addr_t size, in vfio_container_dma_map() argument
23 return bcontainer->ops->dma_map(bcontainer, iova, size, vaddr, readonly); in vfio_container_dma_map()
27 hwaddr iova, ram_addr_t size, in vfio_container_dma_unmap() argument
31 return bcontainer->ops->dma_unmap(bcontainer, iova, size, iotlb); in vfio_container_dma_unmap()
67 VFIOBitmap *vbmap, hwaddr iova, hwaddr size, Error **errp) in vfio_container_query_dirty_bitmap() argument
70 return bcontainer->ops->query_dirty_bitmap(bcontainer, vbmap, iova, size, in vfio_container_query_dirty_bitmap()
H A Dcontainer.c64 hwaddr iova, ram_addr_t size, in vfio_dma_unmap_bitmap() argument
81 unmap->iova = iova; in vfio_dma_unmap_bitmap()
120 hwaddr iova, ram_addr_t size, in vfio_legacy_dma_unmap() argument
128 .iova = iova, in vfio_legacy_dma_unmap()
138 return vfio_dma_unmap_bitmap(container, iova, size, iotlb); in vfio_legacy_dma_unmap()
157 if (errno == EINVAL && unmap.size && !(unmap.iova + unmap.size) && in vfio_legacy_dma_unmap()
168 ret = vfio_get_dirty_bitmap(bcontainer, iova, size, in vfio_legacy_dma_unmap()
188 .iova = iova, in vfio_legacy_dma_map()
203 vfio_legacy_dma_unmap(bcontainer, iova, size, NULL) == 0 && in vfio_legacy_dma_map()
253 range->iova = iova; in vfio_legacy_query_dirty_bitmap()
[all …]
H A Dspapr.c197 hwaddr iova, hwaddr end) in vfio_find_hostwin() argument
203 if (hostwin->min_iova <= iova && end <= hostwin->max_iova) { in vfio_find_hostwin()
345 hwaddr iova, end; in vfio_spapr_container_add_section_window() local
347 iova = section->offset_within_address_space; in vfio_spapr_container_add_section_window()
348 end = iova + int128_get64(section->size) - 1; in vfio_spapr_container_add_section_window()
350 if (!vfio_find_hostwin(scontainer, iova, end)) { in vfio_spapr_container_add_section_window()
353 iova, end); in vfio_spapr_container_add_section_window()
/qemu/hw/arm/
H A Dsmmu-common.c42 b += extract64(key->iova, 0, 32); in smmu_iotlb_key_hash()
43 c += extract64(key->iova, 32, 32); in smmu_iotlb_key_hash()
55 return (k1->asid == k2->asid) && (k1->iova == k2->iova) && in smmu_iotlb_key_equal()
63 SMMUIOTLBKey key = {.asid = asid, .vmid = vmid, .iova = iova, in smmu_get_iotlb_key()
162 return ((info->iova & ~entry->addr_mask) == entry->iova) || in smmu_hash_remove_by_asid_vmid_iova()
163 ((entry->iova & ~info->mask) == info->iova); in smmu_hash_remove_by_asid_vmid_iova()
185 .asid = asid, .iova = iova, in smmu_iotlb_inv_iova()
308 SMMUTransTableInfo *tt = select_tt(cfg, iova); in smmu_ptw_64_s1()
385 tlbe->entry.iova = iova & ~mask; in smmu_ptw_64_s1()
506 tlbe->entry.iova = ipa & ~mask; in smmu_ptw_64_s2()
[all …]
H A Dtrace-events8 …tage, int level, uint64_t iova, size_t subpage_size, uint64_t baseaddr, uint32_t offset, uint64_t …
10 …tage, int level, uint64_t iova, uint64_t baseaddr, uint64_t pteaddr, uint64_t pte, uint64_t addre…
11 …int64_t pte, uint64_t iova, uint64_t gpa, int bsize_mb) "stage=%d level=%d base@=0x%"PRIx64" pte@=…
37 …_t sid, uint64_t addr, bool is_write) "%s sid=0x%x bypass (smmu disabled) iova:0x%"PRIx64" is_writ…
38 …r *n, uint16_t sid, uint64_t addr, bool is_write) "%s sid=0x%x STE bypass iova:0x%"PRIx64" is_writ…
39 …har *n, uint16_t sid, uint64_t addr, bool is_write) "%s sid=0x%x abort on iova:0x%"PRIx64" is_writ…
40 …te_success(const char *n, uint16_t sid, uint64_t iova, uint64_t translated, int perm) "%s sid=0x%x…
56 …, uint16_t asid, uint16_t vmid, uint64_t iova, uint8_t tg, uint64_t num_pages) "iommu mr=%s asid=%…
H A Dsmmu-internal.h97 uint64_t iova_level_offset(uint64_t iova, int inputsize, in iova_level_offset() argument
100 return ((iova & MAKE_64BIT_MASK(0, inputsize)) >> level_shift(level, gsz)) & in iova_level_offset()
140 uint64_t iova; member
/qemu/util/
H A Diova-tree.c62 if (m1->iova > m2->iova + m2->size) { in iova_tree_compare()
66 if (m1->iova + m1->size < m2->iova) { in iova_tree_compare()
118 const DMAMap *iova_tree_find_address(const IOVATree *tree, hwaddr iova) in iova_tree_find_address() argument
120 const DMAMap map = { .iova = iova, .size = 0 }; in iova_tree_find_address()
135 if (map->iova + map->size < map->iova || map->perm == IOMMU_NONE) { in iova_tree_insert()
200 if (this && this->iova + this->size < args->iova_begin) { in iova_tree_alloc_map_in_hole()
204 hole_start = MAX(prev ? prev->iova + prev->size + 1 : 0, args->iova_begin); in iova_tree_alloc_map_in_hole()
205 hole_last = this ? this->iova : HWADDR_MAX; in iova_tree_alloc_map_in_hole()
274 map->iova = args.iova_result; in iova_tree_alloc_map()
H A Dvfio-helpers.c41 uint64_t iova; member
593 IOVAMapping m = {.host = host, .size = size, .iova = iova}; in qemu_vfio_add_mapping()
620 .iova = iova, in qemu_vfio_do_mapping()
624 trace_qemu_vfio_do_mapping(s, host, iova, size); in qemu_vfio_do_mapping()
643 .iova = mapping->iova, in qemu_vfio_undo_mapping()
696 *iova = s->low_water_mark; in qemu_vfio_find_fixed_iova()
720 *iova = s->high_water_mark - size; in qemu_vfio_find_temp_iova()
721 s->high_water_mark = *iova; in qemu_vfio_find_temp_iova()
794 if (iova) { in qemu_vfio_dma_map()
795 *iova = iova0; in qemu_vfio_dma_map()
[all …]
H A Dtrace-events88 qemu_vfio_dump_mapping(void *host, uint64_t iova, size_t size) "vfio mapping %p to iova 0x%08" PRIx…
90 …void *s, void *host, size_t size, int index, uint64_t iova) "s %p host %p size 0x%zx index %d iova
91 qemu_vfio_do_mapping(void *s, void *host, uint64_t iova, size_t size) "s %p host %p <-> iova 0x%"PR…
92 … void *host, size_t size, bool temporary, uint64_t *iova) "s %p host %p size 0x%zx temporary %d &i…
93 qemu_vfio_dma_mapped(void *s, void *host, uint64_t iova, size_t size) "s %p host %p <-> iova 0x%"PR…
/qemu/backends/
H A Diommufd.c142 int iommufd_backend_map_dma(IOMMUFDBackend *be, uint32_t ioas_id, hwaddr iova, in iommufd_backend_map_dma() argument
153 .iova = iova, in iommufd_backend_map_dma()
162 trace_iommufd_backend_map_dma(fd, ioas_id, iova, size, in iommufd_backend_map_dma()
178 hwaddr iova, ram_addr_t size) in iommufd_backend_unmap_dma() argument
184 .iova = iova, in iommufd_backend_unmap_dma()
198 trace_iommufd_backend_unmap_dma_non_exist(fd, ioas_id, iova, size, ret); in iommufd_backend_unmap_dma()
201 trace_iommufd_backend_unmap_dma(fd, ioas_id, iova, size, ret); in iommufd_backend_unmap_dma()
H A Dtrace-events13 …t iommufd, uint32_t ioas, uint64_t iova, uint64_t size, void *vaddr, bool readonly, int ret) " iom…
14 …t iommufd, uint32_t ioas, uint64_t iova, uint64_t size, int ret) " Unmap nonexistent mapping: iomm…
15 …d_unmap_dma(int iommufd, uint32_t ioas, uint64_t iova, uint64_t size, int ret) " iommufd=%d ioas=%…
/qemu/hw/virtio/
H A Dvhost-vdpa.c103 msg.iotlb.iova = iova; in vhost_vdpa_dma_map()
135 msg.iotlb.iova = iova; in vhost_vdpa_dma_unmap()
206 hwaddr iova = iotlb->iova + iommu->iommu_offset; in vhost_vdpa_iommu_map_notify() local
319 hwaddr iova; in vhost_vdpa_listener_region_add() local
345 if (int128_ge(int128_make64(iova), llend)) { in vhost_vdpa_listener_region_add()
374 iova = mem_region.iova; in vhost_vdpa_listener_region_add()
407 hwaddr iova; in vhost_vdpa_listener_region_del() local
456 iova = result->iova; in vhost_vdpa_listener_region_del()
473 iova += int128_get64(llsize); in vhost_vdpa_listener_region_del()
1204 addr->desc_user_addr = driver_region.iova; in vhost_vdpa_svq_map_rings()
[all …]
H A Dvhost-backend.c357 uint64_t iova, uint64_t uaddr, in vhost_backend_update_device_iotlb() argument
363 imsg.iova = iova; in vhost_backend_update_device_iotlb()
389 uint64_t iova, uint64_t len) in vhost_backend_invalidate_device_iotlb() argument
393 imsg.iova = iova; in vhost_backend_invalidate_device_iotlb()
415 ret = vhost_device_iotlb_miss(dev, imsg->iova, in vhost_backend_handle_iotlb_msg()
/qemu/include/hw/vfio/
H A Dvfio-container-base.h74 hwaddr iova, ram_addr_t size,
77 hwaddr iova, ram_addr_t size,
87 VFIOBitmap *vbmap, hwaddr iova, hwaddr size, Error **errp);
115 hwaddr iova, ram_addr_t size,
118 hwaddr iova, ram_addr_t size,
154 VFIOBitmap *vbmap, hwaddr iova, hwaddr size, Error **errp);
/qemu/include/hw/arm/
H A Dsmmu-common.h127 uint64_t iova; member
176 int smmu_ptw(SMMUTransCfg *cfg, dma_addr_t iova, IOMMUAccessFlags perm,
183 SMMUTransTableInfo *select_tt(SMMUTransCfg *cfg, dma_addr_t iova);
191 SMMUTransTableInfo *tt, hwaddr iova);
193 SMMUIOTLBKey smmu_get_iotlb_key(uint16_t asid, uint16_t vmid, uint64_t iova,
198 void smmu_iotlb_inv_iova(SMMUState *s, int asid, int vmid, dma_addr_t iova,
/qemu/hw/i386/
H A Dtrace-events29 …_t addr, uint64_t slpte, uint16_t domain) "IOTLB page hit sid 0x%"PRIx16" iova 0x%"PRIx64" slpte 0…
30 …addr, uint64_t slpte, uint16_t domain) "IOTLB page update sid 0x%"PRIx16" iova 0x%"PRIx64" slpte 0…
37 …, uint64_t start, uint64_t end) "walk (base=0x%"PRIx64", level=%"PRIu32") iova range 0x%"PRIx64" -…
38 …d_page_walk_one(uint16_t domain, uint64_t iova, uint64_t gpa, uint64_t mask, int perm) "domain 0x%…
39 vtd_page_walk_one_skip_map(uint64_t iova, uint64_t mask, uint64_t translated) "iova 0x%"PRIx64" mas…
40 vtd_page_walk_one_skip_unmap(uint64_t iova, uint64_t mask) "iova 0x%"PRIx64" mask 0x%"PRIx64
41 vtd_page_walk_skip_read(uint64_t iova, uint64_t next) "Page walk skip iova 0x%"PRIx64" - 0x%"PRIx64…
42 vtd_page_walk_skip_reserve(uint64_t iova, uint64_t next) "Page walk skip iova 0x%"PRIx64" - 0x%"PRI…
44 vtd_as_unmap_whole(uint8_t bus, uint8_t slot, uint8_t fn, uint64_t iova, uint64_t size) "Device %02…
45 vtd_translate_pt(uint16_t sid, uint64_t addr) "source id 0x%"PRIx16", iova 0x%"PRIx64
[all …]
H A Dintel_iommu.c1201 .iova = entry->iova, in vtd_page_walk_one()
1295 uint64_t iova = start; in vtd_page_walk_level() local
1304 while (iova < end) { in vtd_page_walk_level()
1349 event.entry.iova = iova & subpage_mask; in vtd_page_walk_level()
1364 iova = iova_next; in vtd_page_walk_level()
1998 entry->iova = addr & page_mask; in vtd_do_iommu_translate()
2006 entry->iova = 0; in vtd_do_iommu_translate()
2226 .iova = addr, in vtd_iotlb_page_invalidate_notify()
2693 event.entry.iova = addr; in vtd_process_device_iotlb_desc()
3849 event.entry.iova = start; in vtd_address_space_unmap()
[all …]
/qemu/subprojects/libvduse/
H A Dlibvduse.c115 uint64_t iova; member
328 if (start <= dev->regions[i].iova && in vduse_iova_remove_region()
355 dev->regions[i].iova = start; in vduse_iova_add_region()
400 if ((iova >= r->iova) && (iova < (r->iova + r->size))) { in iova_to_va()
401 if ((iova + *plen) > (r->iova + r->size)) { in iova_to_va()
402 *plen = r->iova + r->size - iova; in iova_to_va()
404 return (void *)(uintptr_t)(iova - r->iova + in iova_to_va()
409 entry.start = iova; in iova_to_va()
410 entry.last = iova + 1; in iova_to_va()
418 return iova_to_va(dev, plen, iova); in iova_to_va()
[all …]
/qemu/hw/sparc64/
H A Dsun4u_iommu.c85 .iova = 0, in sun4u_translate_iommu()
93 ret.iova = addr & IOMMU_PAGE_MASK_8K; in sun4u_translate_iommu()
177 ret.iova = addr & IOMMU_PAGE_MASK_64K; in sun4u_translate_iommu()
182 ret.iova = addr & IOMMU_PAGE_MASK_8K; in sun4u_translate_iommu()
187 trace_sun4u_iommu_translate(ret.iova, ret.translated_addr, tte); in sun4u_translate_iommu()
/qemu/include/sysemu/
H A Diommufd.h32 int iommufd_backend_map_dma(IOMMUFDBackend *be, uint32_t ioas_id, hwaddr iova,
35 hwaddr iova, ram_addr_t size);
/qemu/hw/s390x/
H A Ds390-pci-inst.c621 .iova = entry->iova, in s390_pci_update_iotlb()
632 g_hash_table_remove(iommu->iotlb, &entry->iova); in s390_pci_update_iotlb()
651 cache->iova = entry->iova; in s390_pci_update_iotlb()
655 g_hash_table_replace(iommu->iotlb, &cache->iova, cache); in s390_pci_update_iotlb()
685 event.entry.iova = start; in s390_pci_batch_unmap()
696 uint64_t iova, coalesce = 0; in rpcit_service_call() local
773 iova = entry.iova; in rpcit_service_call()
778 s390_pci_batch_unmap(iommu, iova, coalesce); in rpcit_service_call()
783 while (entry.iova < start && entry.iova < end) { in rpcit_service_call()
786 entry.iova += TARGET_PAGE_SIZE; in rpcit_service_call()
[all …]
/qemu/include/qemu/
H A Diova-tree.h36 hwaddr iova; member
125 const DMAMap *iova_tree_find_address(const IOVATree *tree, hwaddr iova);
/qemu/include/hw/virtio/
H A Dvhost-vdpa.h81 int vhost_vdpa_dma_map(VhostVDPAShared *s, uint32_t asid, hwaddr iova,
83 int vhost_vdpa_dma_unmap(VhostVDPAShared *s, uint32_t asid, hwaddr iova,
/qemu/target/arm/
H A Dtrace-events15 kvm_arm_fixup_msi_route(uint64_t iova, uint64_t gpa) "MSI iova = 0x%"PRIx64" is translated into 0x%…

123