免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2604 | 回复: 4
打印 上一主题 下一主题

【新手提问】两个关于hypercall的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-26 13:33 |只看该作者 |倒序浏览
最近在看Xen的源码,有两个地方不太懂

1. 在linux/arch/x86/include目录下有两个文件夹,
其中一个叫 mach-xen/asm,包含一个hypercall.h
另一个为asm/xen,包含一个hypercall.h
这两个头文件分别是给谁用的呢?里面的内容很像但又存在区别,有人知道他们的作用可以讲讲~~~

2. xen/tools中,也使用了hypercall,它是如何使用的呢?我一开始以为是通过ioctl使用,但后来发现其中也存在hypercall.h , 我就疑惑了……

大家来讲讲吧~~~

论坛徽章:
0
2 [报告]
发表于 2011-11-27 09:42 |只看该作者
第2个问题谈一下我的看法,不一定对.

通常的xen tools(domain的用户态)只能通过ioctl切换到domain的核心态, 然后再通过hypercall到达xen执行相应的功能.

xen/tools下的hypercall.h 似乎是在tools/firmware/hvmloader下, 用来装载hvm, 需要xen的某些支持,比如xen的版本号,硬件的某些信息,我觉得使用它是合乎情理的

论坛徽章:
0
3 [报告]
发表于 2011-11-27 13:50 |只看该作者
回复 2# baozhao


    终于有人理我了~ 太感谢您了~~
    您的意思是说,只有当是硬件虚拟化的时候,才会在xen tools里面直接使用hypercall,即hvmloader里面的,
    如果是半虚拟化的情况,就是通过ioctl,从kernel里面再进入xen吗?

论坛徽章:
0
4 [报告]
发表于 2011-11-28 10:00 |只看该作者
hypercall 是 guest和 和xen host直接进行数据交换的。  那些虚拟磁盘,虚拟网卡的应该都是这样,共享内存来做的,好像,xen的文档有说。

半虚拟化更应该使用hypercall吧。类似中断,有接收端和发起端。

具体细节不清楚,可以看一下xen的文档

论坛徽章:
0
5 [报告]
发表于 2011-11-28 19:08 |只看该作者
回复 3# anitawang1989


    个人认为这个取决于需要, 很明显hvm对hypercall的需要要少得多(想对pvm而言)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP