linux ahci 内核模块,ubuntu16.04下内核模块解析

一.环境如下:

1.1内核版本:

jello@jello:~$ uname -a

Linux jello 4.4.0-89-generic #112-Ubuntu SMP Mon Jul 31 19:38:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

1.2发行版:

jello@jello:~$ lsb_release -a

No LSB modules are available.

Distributor ID:Ubuntu

Description:Ubuntu 16.04.3 LTS

Release:16.04

Codename:xenial

二.列出启用的模块:

jello@jello:~$ lsmod

Module Size Used by

ipt_MASQUERADE 16384 1   (数据包伪装)

nf_nat_masquerade_ipv4 16384 1 ipt_MASQUERADE  (This is the kernel functionality to provide NAT in the masquerade flavour (automatic source address selection).这是提供NAT的内核功能)

nf_conntrack_netlink 40960 0 (Connection tracking netlink interface 追踪网络链接接口的连接)

nfnetlink 16384 2 nf_conntrack_netlink (new netfilter netlink interface 新的网络过滤链接接口)

xfrm_user 32768 1  (Transformation user configuration interface转变用户配置的接口)

xfrm_algo 16384 1 xfrm_user ()

iptable_nat 16384 1  (nat相关)

nf_conntrack_ipv4 16384 2  (IPv4 connection tracking support (required for NAT)ipv4连接追踪支持(NAT需要此支持))

nf_defrag_ipv4 16384 1 nf_conntrack_ipv4

nf_nat_ipv4 16384 1 iptable_nat

xt_addrtype 16384 2

iptable_filter 16384 1

ip_tables 24576 2 iptable_filter,iptable_nat

xt_conntrack 16384 1

x_tables 36864 5 ip_tables,ipt_MASQUERADE,xt_conntrack,iptable_filter,xt_addrtype

nf_nat 24576 2 nf_nat_ipv4,nf_nat_masquerade_ipv4

nf_conntrack 106496 6 nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_netlink,nf_conntrack_ipv4

br_netfilter 24576 0

bridge 126976 1 br_netfilter

stp 16384 1 bridge

llc 16384 2 stp,bridge

aufs 217088 0

psmouse 131072 0

pci_stub 16384 1

vboxpci 24576 0

vboxnetadp 28672 0

vboxnetflt 28672 0

vboxdrv 454656 3 vboxnetadp,vboxnetflt,vboxpci

binfmt_misc 20480 1

dell_wmi 16384 0

sparse_keymap 16384 1 dell_wmi

uvcvideo 90112 0

videobuf2_vmalloc 16384 1 uvcvideo

videobuf2_memops 16384 1 videobuf2_vmalloc

videobuf2_v4l2 28672 1 uvcvideo

videobuf2_core 36864 2 uvcvideo,videobuf2_v4l2

v4l2_common 16384 1 videobuf2_v4l2

videodev 176128 4 uvcvideo,v4l2_common,videobuf2_core,videobuf2_v4l2

media 24576 2 uvcvideo,videodev

intel_rapl 20480 0

dell_laptop 20480 0

x86_pkg_temp_thermal 16384 0

dcdbas 16384 1 dell_laptop

intel_powerclamp 16384 0

dell_smm_hwmon 16384 0

coretemp 16384 0

kvm_intel 172032 0

kvm 544768 1 kvm_intel

irqbypass 16384 1 kvm

crct10dif_pclmul 16384 0

crc32_pclmul 16384 0

ghash_clmulni_intel 16384 0

wl 6447104 0

snd_hda_codec_hdmi 53248 1

cryptd 20480 1 ghash_clmulni_intel

snd_hda_codec_idt 57344 1

snd_hda_codec_generic 77824 1 snd_hda_codec_idt

snd_hda_intel 40960 6

snd_hda_codec 135168 4 snd_hda_codec_hdmi,snd_hda_codec_idt,snd_hda_codec_generic,snd_hda_intel

snd_hda_core 73728 5 snd_hda_codec_hdmi,snd_hda_codec_idt,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel

snd_hwdep 16384 1 snd_hda_codec

snd_pcm 106496 4 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_core

snd_seq_midi 16384 0

snd_seq_midi_event 16384 1 snd_seq_midi

snd_rawmidi 32768 1 snd_seq_midi

snd_seq 69632 2 snd_seq_midi_event,snd_seq_midi

snd_seq_device 16384 3 snd_seq,snd_rawmidi,snd_seq_midi

snd_timer 32768 2 snd_pcm,snd_seq

cfg80211 565248 1 wl

input_leds 16384 0

joydev 20480 0

serio_raw 16384 0

snd 81920 23 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_idt,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device

soundcore 16384 1 snd

mei_me 36864 0

mei 98304 1 mei_me   (Intel Management Engine Interface:

The Intel Management Engine (Intel ME) is an isolated and

protected computing resources (Coprocessor) residing inside

Intel chipsets. The Intel ME provides support for computer/IT

management features.

The Feature set depends on Intel chipset SKU.(摘自https://lwn.net/Articles/440292/)

因特尔管理引擎是一个被分离和被保护的属于因特尔芯片组里面的计算资源(协处理器),这个因特尔管理引擎为computer/IT提供管理特性,这种特性集取决于因特尔芯片组SKU,更多资料请看:https://cateee.net/lkddb/web-lkddb/INTEL_MEI.html

)

shpchp 36864 0

mac_hid 16384 0

lpc_ich 24576 0

nfsd 319488 13

auth_rpcgss 61440 1 nfsd

nfs_acl 16384 1 nfsd

lockd 94208 1 nfsd

grace 16384 2 nfsd,lockd

parport_pc 32768 0

sunrpc 335872 18 nfsd,auth_rpcgss,lockd,nfs_acl

ppdev 20480 0

lp 20480 0

parport 49152 3 lp,ppdev,parport_pc

autofs4 40960 2

ums_realtek 20480 0

uas 24576 0

usb_storage 69632 2 uas,ums_realtek

amdkfd 131072 1

amd_iommu_v2 20480 1 amdkfd

radeon 1515520 2

i915 1208320 6

ttm 98304 1 radeon

i2c_algo_bit 16384 2 i915,radeon

drm_kms_helper 155648 2 i915,radeon

syscopyarea 16384 1 drm_kms_helper

ahci 36864 3

sysfillrect 16384 1 drm_kms_helper

libahci 32768 1 ahci

sysimgblt 16384 1 drm_kms_helper

fb_sys_fops 16384 1 drm_kms_helper

r8169 81920 0

drm 364544 12 ttm,i915,drm_kms_helper,radeon

mii 16384 1 r8169

wmi 20480 1 dell_wmi

video 40960 3 i915,dell_wmi,dell_laptop

fjes 28672 0

未完待续...

<think>好的,我需要回答用户关于Ubuntu 20.04 LTS中磁盘I/O相关内核模块的问题。首先,我得确认用户的需求,他们可能想了解哪些内核模块负责处理磁盘的输入输出操作,或者在进行性能调优时需要调整相关模块。 根据已有的引用内容,用户提供的参考资料提到了Ubuntu 20.04 LTS使用的是Linux内核5.4[^2]。因此,我需要基于这个版本的内核来查找相关的模块。一般来说,磁盘I/O相关的内核模块可能包括块设备驱动、文件系统模块、I/O调度器等。 接下来,我应该考虑常见的磁盘I/O模块。例如,SCSI子系统在Linux中非常重要,尤其是对于现代存储设备来说。模块如scsi_mod、sd_mod(SCSI磁盘驱动)可能相关。另外,对于不同的硬盘类型,比如SATA,可能会有ahci模块。NVMe设备则会使用nvme和nvme_core模块。 文件系统方面,用户可能使用ext4、XFS或者Btrfs,对应的模块是ext4、xfs、btrfs。这些模块负责文件系统的I/O操作。此外,I/O调度器如mq-deadline、kyber、bfq可能被使用,不过调度器通常内置于内核中,而不是作为可加载模块,需要确认。 RAID和LVM相关的模块如dm_mod(设备映射器,用于LVM和RAID)、md_mod(软件RAID)也可能影响磁盘I/O。还有缓存机制如bcache、dm-cache,可能涉及相应的模块。 用户可能需要通过命令来查看已加载的模块,比如lsmod,或者检查配置文件。例如,lsmod | grep -E 'scsi|sd|ahci|nvme|ext4|xfs|btrfs|dm|md' 可以过滤出相关的模块。此外,检查/sys/block/下的设备信息也能帮助确定使用的驱动和调度器。 需要注意,不同的硬件配置可能导致加载的模块不同。例如,使用NVMe SSD和SATA硬盘的系统会有不同的模块加载。用户如果需要更详细的信息,可能需要结合具体硬件和系统配置来分析。 最后,确保回答中提到参考的内核版本和引用来源,比如引用[2]提到的Ubuntu 20.04 LTS使用Linux 5.4内核,以及引用[4]中关于文件系统的结构,虽然引用4主要讲文件目录结构,但可以辅助说明模块与文件系统的关系。</think>Ubuntu 20.04 LTS使用的Linux内核版本为5.4,其磁盘I/O相关的内核模块主要包括以下几类: ### 一、存储设备驱动模块 1. **SCSI子系统**:现代磁盘设备大多通过SCSI协议交互 - `scsi_mod`:SCSI协议核心模块 - `sd_mod`:SCSI磁盘驱动,负责块设备访问 - `sg`:SCSI通用驱动(用于低级设备访问) 2. **SATA/AHCI驱动** - `ahci`:支持SATA接口的AHCI控制器 - `libahci`:AHCI控制器支持库 3. **NVMe驱动** - `nvme`:NVMe协议核心模块 - `nvme_core`:NVMe设备通用支持 - `nvme-fabrics`:远程NVMe设备支持 ### 二、文件系统模块 - `ext4`:默认文件系统驱动 - `xfs`:XFS文件系统驱动 - `btrfs`:Btrfs文件系统驱动 - `overlay`:联合文件系统(用于容器存储) ### 三、I/O调度与优化 1. **I/O调度器**(通过`/sys/block/<dev>/queue/scheduler`查看) - `mq-deadline`:多队列机械硬盘优化调度器 - `kyber`:SSD优化调度器 - `bfq`:桌面交互优化调度器 2. **缓存与加速** - `bcache`:块设备缓存系统 - `dm-cache`:设备映射器缓存模块 ### 四、存储虚拟化 - `dm_mod`:设备映射器(LVM/RAID基础) - `md_mod`:软件RAID支持模块 - `loop`:loop设备驱动(ISO挂载等场景) ### 查看方法 1. 列出所有加载模块: ```bash lsmod | grep -E 'scsi|sd|ahci|nvme|ext4|xfs|btrfs|dm|md' ``` 2. 查看特定设备驱动: ```bash ls -l /sys/block/sda/device/driver ``` 3. 检查I/O调度器配置: ```bash cat /sys/block/sda/queue/scheduler ``` 不同硬件配置会加载不同模块,例如NVMe SSD系统会加载`nvme`相关模块,而使用LVM时会激活`dm_mod`[^4]。建议通过`dmesg | grep -i storage`查看启动时加载的存储相关驱动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值