当前位置: 首页 > news >正文

做语音聊天网站要多少钱星巴克seo网络推广

做语音聊天网站要多少钱,星巴克seo网络推广,创业中文网站模板,快速做网站的软件最近在看虚拟化相关的东西,以virtio-console为例,记录下。 此文只是学习笔记,文中肯定有不少错误,不要参考 devicemd侧: virtio_console.c中,初始化会对port->cb赋值为 viritio_console_control_tx&am…

最近在看虚拟化相关的东西,以virtio-console为例,记录下。
此文只是学习笔记,文中肯定有不少错误,不要参考

devicemd侧:

virtio_console.c中,初始化会对port->cb赋值为
viritio_console_control_tx,此函数会根据后端不同,最终将log输出到标准输出/pty/file。

那么是谁调的port-cb?,是virtio_console_notify_tx,同样是初始化时,对这个console->queues[i].notify函数指针进行赋值为virtio_console_notify_tx。

那么是谁调的console->queues[i].notify函数指针呢?
是virtio.c中的virtio_set_iothread,这是一个callback handler,他是在virtio_set_iothread时被初始化赋值。

谁掉的virtio_set_iothread?他是vritio_pci_write的一个case,
virtio_pci_write会被virtio_console.c的.vdev_bar_write所引用。

而.vdev_bar_write 会被devicemodel/hw/pci/core.c.c中的pci_emul_io_handler和pci_emul_mem_handler调用。

再上的调用先不追,我们先看virtio_set_iothread:

此函数除了设置callback handler,还建立epoll做监听,检测上报来执行handler,
同时还会ioctl,把notify注册给内核驱动,
servervm的driver/virt/acrn/ioeventfd.c中的acrn_io_range_add会注册这个io range,如果有事件被监听到,将会signal上层,virtio_set_iothread注册的handler会被执行,如果是console事件,会调用port->cb做打印

那么内核里是如何监听并收集事件的呢?
先看看如何监听的:
当新一个vm被创建时ioctl->acrn_vm_create->acrn_ioeventfd_init->acrn_ioreq_client_create会创建内核线程ioreq_task,这个线程会做循环检测has_pending_request,如果有执行handler,这个handler是acrn_ioeventfd_handler,在上级传参进来被注册,acrn_ioeventfd_handler会查看事件addr size是否被注册,如果被注册,就上报上层。

那内核是如何收集事件的呢,也就是说has_pending_request如何检测到有pending_request?
在arch/x86/kernel/cpu/acrn.c中会HYPERVISOR_CALLBACK_VECTOR这个irq的callback,这个callback会调用acrn_intr_handler,这是个函数指针,他最后调用的是/drver/virt/acrn/ioreq.c 中的ioreq_intr_handler, 在hsm driver初始化时就被调用注册。
这个handler会执行工作队列ioreq_wq的handler:ioreq_dispatch->wake_up_interruptable,同时设置bitmap,这样刚才内核的has_pending_request就被检测到了。
说白了就是hypervisor会向servervm 注入中断,servervm收到中断后,会做些处理,同时唤醒一个循环检测的内核线程,一切条件符合内核线程把事件上报到上层。

hypervisor如何向server vm 注入总断的呢?
这个很好追,hypervisor中的get_hsm_notification_vector()会得到这个中断vector,acrn_fire_hsm_interrupt会向server vm 注入这个中断,
他的上级是acrn_insert_request,这个函数在emulate_io中进行调用,emulate_io的逻辑是会把捕获的io请求现在hybervisor里模拟,如果模拟不了,会发给server vm 进行模拟。

http://www.yidumall.com/news/10907.html

相关文章:

  • 做网站怎么去文化局备案seo机构
  • 产品推广方式有哪些河北seo基础教程
  • 怎么做一个个人网页seo顾问服务四川
  • web网站模块设计网络推广策划案
  • 自己做的网站加载慢自己怎么做一个网页
  • 厦门外贸网站免费顶级域名注册网站
  • 在网站中写小说想要删除如何做竞猜世界杯
  • 个人网站设计怎么做刚刚刚刚刚刚刚刚刚刚刚刚刚刚刚
  • 即时设计生成网页seo联盟
  • 网站续费要多少钱seo的推广技巧
  • 教育培训类网站建设互联网推广是什么
  • wordpress tag name slug or id星链seo管理
  • 长清区政府网站建设前端开发
  • 网站做任务赚qb优化推广排名网站教程
  • 杭州软装设计公司哪家好庆云网站seo
  • 滨州正规网站建设价格刷评论网站推广
  • 武威市建设局网站 放管服东莞关键词优化平台
  • asp网站开发论文参考文献在线的crm系统软件
  • 合肥专门做网站网站一级域名和二级域名区别
  • 湖北省级建设主管部门网站可以投放广告的网站
  • 哪里有手机网站建设中国十大网站
  • 网站制作的评价指标中电商平台
  • PHP做的网站能容纳多少人网络营销策划案怎么写
  • 清远网站开发百度 营销推广费用
  • 小企业网站如何建设好百度竞价排名费用
  • html5可以做手机网站吗连云港seo公司
  • st3网站开发网站排名优化服务
  • 公司网站建站公司苏州网站建设
  • 建企业网站价格关键词seo排名怎么选
  • 重庆网约车哪个平台最好整站优化工具