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

用ps做网站尺寸大数据智能营销系统

用ps做网站尺寸,大数据智能营销系统,ui设计的工作流程分为哪三类,网站备案号官网Linux nbd网络块设备(2)-内核实现 关注我,一起学习吧,后续持续更新内核相关 1. 概述: 内核linux/drivers/block/nbd.c 是nbd 网络设备的底层驱动实现逻辑。本文主要介绍nbd 设备注册及I/O请求的处理逻辑。 2. nbd 设备的初始化&#xff1…

Linux nbd网络块设备(2)-内核实现

关注我,一起学习吧,后续持续更新内核相关

1. 概述:

  • 内核linux/drivers/block/nbd.c 是nbd 网络设备的底层驱动实现逻辑。
  • 本文主要介绍nbd 设备注册及I/O请求的处理逻辑。

2. nbd 设备的初始化:

在这里插入图片描述

  • disk 注册到内核后会产生/dev/nbdx 节点,后续nbd_client 可以通过该节点开始nbd 块设备传输;

  • 设置tag_set.ops操作函数:

    nbd->tag_set.ops = &nbd_mq_ops;
    static const struct blk_mq_ops nbd_mq_ops = {.queue_rq	= nbd_queue_rq,.complete	= nbd_complete_rq,.init_request	= nbd_init_request,.timeout	= nbd_xmit_timeout,
    };
    
  • 设置disk 的操作函数:

    • 该函数集主要用于nbd_client 打开nbd 设备,执行ioctl 指令,开始块传输等操作;
    disk->fops = &nbd_fops;
    static const struct block_device_operations nbd_fops =
    {.owner =	THIS_MODULE,.open =		nbd_open,.release =	nbd_release,.ioctl =	nbd_ioctl,.compat_ioctl =	nbd_ioctl,.free_disk =	nbd_free_disk,
    };
    
  • nbd 与tag_set 的关联:

    • tag_set 是nbd的成员

    • tag_set的driver_data 指向该nbd

      nbd->tag_set
      nbd->tag_set.driver_data=nbd
      
  • nbd 与disk的关联:

    • disk 基于tag_set 分配并初始化
    • disk 是nbd 的成员
    • disk的private_data 指向该nbd
    disk = blk_mq_alloc_disk(&nbd->tag_set, NULL);
    nbd->disk = disk;
    disk->private_data = nbd;
    

3. nbd 设备实例创建流程:

在这里插入图片描述

  • nbd_fops 是操作disk 时的相关处理函数,执行nbd_open时会实例化config
  • 所有的ioctl cmd 均通过nbd_ioctl 进行处理,主要设置config 相关属性
  • 执行完NBD_DO_IT 后,nbd 会更新硬件队列并将recv_work 提交工作队列
  • sock 存储关系:
    • 可以通config→socks[connection_number]→sock 访问到链接nbd_client 建立的sock,基于该sock 读取nbd_client 的数据或发送相关cmd

      //nbd.c nbd_add_socket()
      sock = nbd_get_socket(nbd, arg, &err);
      nsock->sock = sock;
      socks[config->num_connections++] = nsock;
      config->socks = socks;
      

3. nbd I/O 传输流程:

  • 通过sock 将块层请求发送给服务端
    • 以virtual-media 为例,将读取镜像的请求通过sock 发送给远程服务端
  • 通过sock 读取来着服务端的响应及响应数据,然后存储到bio_vec 指定内存。供更底层设备获取。

3.1 nbd 块层请求及数据发送:

  • 以virtual-meida 举例,USB层会将USB的请求转换为块请求,并通过nbd_queue_rq 将请求数据通过sock 发给服务端。
    在这里插入图片描述

3.2 nbd 接收处理:

  • recv_work 触发:
    • nbd 模组初始化执行nbd_dev_add 的时候,会创建recv_workq接收工作队列;
    • nbd 响应NBD_DO_IT ioctl cmd 执行nbd_start_device(nbd);时,将recv_work 提交到recv_workq,内核调度会执行recv_workq的工作线程,并执行recv_work.
    • 在recv_work 中主要通过socket读取服务端replay 并读取对应数据到bio_vec
      在这里插入图片描述
http://www.dtcms.com/wzjs/188144.html

相关文章:

  • wordpress的页脚模板修改就出错上海网络关键词优化
  • 网站优化 套站qq推广软件
  • 微信公众号里的网站怎么做的关键词seo价格
  • 巴南市政建设网站网站如何被百度快速收录
  • 深圳网站建设多少钱贵阳做网络推广的公司
  • 苏州专业做网站公司百度快速排名 搜
  • 下载小程序官方免费揭阳新站seo方案
  • 网站推广一般怎么做网络营销是什么
  • 西安 网站设计搜索引擎营销广告
  • 建设网站成本全网网站推广
  • 霸榜seoseo外链发布软件
  • 自己做装修效果的网站广州网站排名推广
  • 青岛房产网签备案查询企业网站怎么优化
  • 重庆专业网站推广方案长沙网络营销推广公司
  • o2o网站开发框架常见的推广方式有哪些
  • 沈阳网站设计推广营业推广促销方式有哪些
  • 会用框架做网站能找到工作吗国外搜索引擎优化
  • 网站进入沙盒后app运营需要做哪些
  • 高密做网站哪家强价位seo1现在怎么看不了
  • 网站建设华科技公司百度权重排名
  • 亿唐网不做网站做品牌原因网络营销课程主要讲什么内容
  • 朔州网站建设天津建站网
  • 如何设置公司网站seo常用工具有哪些
  • 长沙网站建设建网站模板免费下载
  • 建立大型网站吗成人用品网店进货渠道
  • 大连市政府采购网招标公告seo案例模板
  • 学生网站建设的基本流程优化大师手机版
  • 中国做室内设计的网站关键词搜索量查询
  • 太原市做网站wordpress免费网站
  • 专门网站建设可以发外链的网站整理