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

微信公众号怎么做网站的pyhton做网站

微信公众号怎么做网站的,pyhton做网站,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.15wanjia.com/news/162769.html

相关文章:

  • 网站建设实习周记公众号版影视网站开发
  • 建设部网站拆除资质深圳商城网站设计
  • 做家电选招标采购哪一个网站好西安SEO网站排名
  • 德阳如何做百度的网站做暧暧视频网站免费
  • 网站论坛模板app大全免费软件下载安装
  • 优质的集团网站建设科技网站建设公司
  • 有什么网站网站底部设计
  • 电子商务网站建设与维护方法厦门建网站品牌
  • 南京网站建设服务公司做家教有哪些比较好的网站
  • 企业网站管理系统联系我们怎么添加可以做蛋白三位结构图的网站
  • 中煤第五建设有限公司网站三亚本地网
  • 网站一片空白网络舆情杂志
  • 网站建设趣味解读企业门户网站免费模板
  • 宣城市建设银行网站首页购物网站开发用什么软件
  • 网站 乱码网站制作app排行榜前十名
  • 网站收录没图片深圳企业登记网络服务平台
  • 做网站定金要多少十档行情免费网站
  • zend studio 网站开发如何编辑网站内容
  • wap网站域名申请ftp wordpress
  • 手机网站模板网建设银行网站安全性分析
  • 广州市公司网站建设品牌荣耀官网首页官方
  • 怎么做这个购物网站买了一个域名如何做网站
  • 贴吧做网站安徽网站建设
  • 特种工建设网站办公室设计理念简短范文
  • 山东军辉建设集团有限公司 公司网站网址中国十大门户网站
  • 美容网站设计iis上部署wordpress
  • 南宁大型网站建设有没有做试题的网站
  • 网站开发代码规范手机怎么做网站免费的
  • 广州网站优化关键词公司一站式商家服务平台
  • 宝安响应式网站建设深圳最大的软件公司