上回我们讲了Linux程序分为用户态和内核态,我们日常使用的,比如用户界面,命令行等等,都是用户态,大部分驱动程序都是在内核态。本文来探讨为什么PCIe SSD开始使用Pooling模式来响应硬件,而不是传统的中断方式。
内核态NVMe驱动三大缺点
- 内核的通用性。为了照顾各种各样的硬件驱[……]
上回我们讲了Linux程序分为用户态和内核态,我们日常使用的,比如用户界面,命令行等等,都是用户态,大部分驱动程序都是在内核态。本文来探讨为什么PCIe SSD开始使用Pooling模式来响应硬件,而不是传统的中断方式。
内核态NVMe驱动三大缺点
我们知道,从Linux内核版本3.3开始,内核代码自带NVMe SSD驱动程序,运行在内核态。但是,用户的应用程序又都是在用户态运行,所以驱动跑在内核态会有些不便。哪些不便呢?不急,我们先来科普一下Linux的用户态和内核态区别。
在CPU的所有指令中,有一些指令是非常危险的,如果错用,[……]
PMC已经被MicroSemi收购了,说PMC是因为顺嘴 (反正Microsemi也不给稿费) J
PMC管自己的PCIe SSD主控叫Flashtec NVMe Controllers,一共有4款 PM8602 NVMe1016, PM8604 NVMe1032, PM8607[……]
上回说到要想在NUMA架构提升块设备层性能,就得减少跨CPU的内存访问。当然你可以绑定CPU,唐杰在他之前SSD测试的文章中讲过这些技巧,比如SSD插在CPU 0上,那么就只通过CPU 0发命令,中断也只发到CPU 0上。但这些都是块设备层的公公婆婆、儿子儿媳干的活,不是它能够操心的事。从块设备[……]
上面这个可爱的小伙子名字叫Jens Axboe,他是丹麦哥本哈根大学计算机系没毕业的学生,他还有一个有名的同乡叫Linus,没想到老乡后来也成了他的领导。Jens今年39岁,16岁开始就接触Linux,后来也成了Linux开发者,现在是Linux Kernel大拿了,负责块设备层的维护。这个块[……]