virtio_vring_index里的guest_index和host_index分析
发布日期:2021-09-16 04:36:43 浏览次数:22 分类:技术文章

本文共 1067 字,大约阅读时间需要 3 分钟。

 

virtio_vring_index. 获取 vring queue里的guest_index和host_index,初步看是不清楚 什么是 guest_index和host_index。

void virtio_vring_index(VirtQueue *vq, NetVringIndex *index){    index->guest_index = vring_get_used_event(vq);    index->host_index = vring_used_idx(vq);}

 

gues_index 通过 vring_get_used_event 获取,通过以下代码可以看出,其实就是取的 last_used_idx的值

/* Called within rcu_read_lock().  */static inline uint16_t vring_avail_ring(VirtQueue *vq, int i){    VRingMemoryRegionCaches *caches = vring_get_region_caches(vq);    hwaddr pa = offsetof(VRingAvail, ring[i]);    return virtio_lduw_phys_cached(vq->vdev, &caches->avail, pa);}/* Called within rcu_read_lock().  */static inline uint16_t vring_get_used_event(VirtQueue *vq){    return vring_avail_ring(vq, vq->vring.num);}

host_index 通过vring_used_idx 获取,通过以下代码可以看出,其实就是取的 used ring里的 idx的值

/* Called within rcu_read_lock().  */static uint16_t vring_used_idx(VirtQueue *vq){    VRingMemoryRegionCaches *caches = vring_get_region_caches(vq);    hwaddr pa = offsetof(VRingUsed, idx);    return virtio_lduw_phys_cached(vq->vdev, &caches->used, pa);}

 

转载地址:https://blog.csdn.net/wllabs/article/details/105330347 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:信号处理,信号队列
下一篇:qcow2 和 rbd qemu侧流程

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月09日 18时57分02秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章