;IO数据通道处理层次;块设备:
块设备是支持以固定长度的块为单位读/写数据的存储设备的总称。块设备包括支持随机访问(如数码相机存储卡,RAM盘)和寻到的硬件设备(如磁盘、软盘、CDROM、内存区域等),也可以是逻辑设备,如MD设备,Device mapper。;块设备处理请求函数:
请求处理是块设备驱动的核心,实际的工作都是在这个函数执行,是块设备驱动提供给上层的借口,块设备将通过这个函数获得I/O 请求。;struct request {
struct list_head queuelist;
struct request_queue *q;
unsigned int cmd_flags;//请求的类型
sector_t __sector; //请求开始扇区
unsigned int __data_len; 请求的数据长度
struct bio *bio; 请求的第一个bio
struct bio *biotail;请求的最后一个bio
……………….
};
;struct bio_vec {
struct page *bv_page;
unsigned int bv_len;
unsigned int bv_offset;
};
;;分配,初始化请求队列,绑定请求队列和请求函数的两种方式:
一.无请求队列:
适合于完全可以随机访问的设备数码相机存储卡,RAM盘等(现在我们的SSD适合),这种方式不会经过 IO Schedule Layer。;分配请求队列、绑定请求队列和请求函数:
blk_init_queue(make_request,queue_lock) ——分配请求队列且绑定请求队列和请求函数。
;IO 调度层;IO 调度层;中断和中断处理;中断处理:中断处理程序要求快速、高效,而又想中断处理程序处理的工作量多,所以把中断处理分成中断上半部和下半部。
;注册中断处理函数原型:
int request_irq(unsigned int irq,irq_handler_t handler,
unsigned long flags, const char *devname, void *dev_id)
释放中断处理函数原型:void free_irq(unsigned int irq, void *dev_id)
;三、工作队列:
;
软中断的实现:
软中断是在编译期间静态分配的,它由softirq_action 的结构表示:
struct softirq_action
{
void (*action)(struct softirq_action *);
};
;中断和中断处理;;工作队列:
工作队列是另一种将工作推后执行的形式,它可以把推后执行的工作交给一个内核线程来执行,也就是用这种机制实现中断下半部的是在进程上下文中执行的,工作队列可以重新调度甚至睡眠。
;表示线程的数据结构:
struct workqueue_struct {
struct cpu_workqueue_struct *cpu_wq;
struct list_head list;
const char *name;
int singlethread;
int freezeable; /* Freeze threads during suspend */
int rt;
#ifdef CONFIG_LOCKDEP
struct lockdep_map lockdep_map;
#endif
};
;使用工作队列:
一、创建推后执行的工作:
1、静态创建:DECLARE_WORK(name,void (*func) (void *),void *data);
2、动态创建:INIT_WORK(struct work_struct *work, oid (*func) (void *),void *data);
;三、对工作进行调度:
把给定工作的处理函数提交给缺省的events工作者线程:
schedule_work();
调用此函数work马上会被调度,当所在处理器上的工作队列线程被 唤醒时就会被执行;
;中断和中断处理;下半部机制的选择:首先,如果需要一个可以休眠、可以调度的实体来执行推后完成的工作,选择工作队列;否则用tasklet,还有如果专注性能的提高,可以使用软中断。
;中断和中断处理实际实现:
对于普通读写和trim命令中断处理只有上半部:
Mvumi_isr_handler?mvumi_receive_ob_list_entry ?g_complete_cmd ?raid0_end_io ?host_cmd_
您可能关注的文档
- 单片机系统开发_单片机软件设计试卷.pptx
- 安全生产法汇总.ppt
- “冷战”与“热战”教程.ppt
- 《我是怎样出生的》教程.ppt
- 3延迟焦化装置长周期生产的优化措施及讨论教程.ppt
- 《我们是怎样过母亲节的》教学教程.ppt
- 3修鞋姑娘教程.ppt
- 《我们都有温暖的家》教程.ppt
- “讲卫生我健康”主题班会_教程.ppt
- 精准检测指导下的恶性肿瘤化疗方案遴选试卷.pptx
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 保障农民工工资支付协调机制和工资预防机制.docx VIP
- (35页PPT)腾讯iOA零信任安全解决方案.pptx
- 供应链管理第章.ppt VIP
- 有机化学醇酚醚.ppt VIP
- 【真题】2025年湖北省公务员考试《申论》试题及答案解析(县乡卷).pdf VIP
- 《2025年人工智能在制造业应用》.docx VIP
- 2018年浙江省杭州市中考科学试卷含答案.docx VIP
- 东北地区自然地理概况课件市公开课一等奖省赛课微课金奖课件.pptx VIP
- Power Up3课后单元测试 - U7 - Unit Test.docx VIP
- EN755-2铝及铝合金挤压杆材,管材及型材 第2部分:机械性能.doc
原创力文档

文档评论(0)