> -----Original Messages----- > From: "Stephen John Smoogen" <smooge@xxxxxxxxx> > Sent Time: 2019-04-28 21:54:13 (Sunday) > To: "CentOS mailing list" <centos@xxxxxxxxxx> > Cc: > Subject: Re: Who is responsible to load NIC driver when boot up > > On Sun, 28 Apr 2019 at 01:22, wuzhouhui <wuzhouhui14@xxxxxxxxxxxxxxxx> > wrote: > > > > -----Original Messages----- > > > From: "Steven Tardy" <sjt5atra@xxxxxxxxx> > > > Sent Time: 2019-04-28 13:02:18 (Sunday) > > > To: "CentOS mailing list" <centos@xxxxxxxxxx> > > > Cc: > > > Subject: Re: Who is responsible to load NIC driver when boot up > > > > > > On Sat, Apr 27, 2019 at 11:44 PM wuzhouhui <wuzhouhui14@xxxxxxxxxxxxxxxx > > > > > > wrote: > > > > > > > I have a small question about NIC driver (e.g. i40e) loading. Who is > > > > responsible to load i40e driver? And how does he knows we should load > > > > i40e, instead of ixgbe? > > > > > > > > > `depmod` may put hardware/driver lists into initramfs when `mkinitrd` is > > > called when a new kernel is installed. > > > Also check file: /lib/modules/`uname-r`/modules.alias > > > The modules.alias contains PCI vendor/device IDs which can be found via > > > `lspci -n`. > > > > > > Also you can `modinfo i40e` and `modinfo ixgbe` to see a list of PCI > > > vendor/device IDs which each driver supports. > > > > > > Most of the time “it just works” be can be confusing tracking down > > exactly > > > why one driver loads instead of another. > > > > Thanks for you explanation. But who loads (modprobe) drivers, udev, kernel, > > or others? > > > > > During the initial boot on EL7, the initial ramdisk which uses dracut to > set up that. After the initial boot, I believe udev is what is doing the > work. There are a ton of pretty good manual pages for all the different I think you are right. I add a dump_stack() and printk() in virtio_net driver, and following infos printed when boot up: kernel: Pid: 737, comm: modprobe Not tainted 2.6.32-279.22.1.el6.local.x86_64 #1 kernel: Call Trace: kernel: [<ffffffff81096ea5>] ? __blocking_notifier_call_chain+0x65/0x80 kernel: [<ffffffffa0044009>] ? init+0x9/0x3c [virtio_net] kernel: [<ffffffff8100204c>] ? do_one_initcall+0x3c/0x1d0 kernel: [<ffffffff810af701>] ? sys_init_module+0xe1/0x250 kernel: [<ffffffff8100b072>] ? system_call_fastpath+0x16/0x1b kernel: parent: udevd > parts of dracut which explain how it is loading things, what order and how > to add/remove things. > > -- > Stephen J Smoogen. > _______________________________________________ > CentOS mailing list > CentOS@xxxxxxxxxx > https://lists.centos.org/mailman/listinfo/centos _______________________________________________ CentOS mailing list CentOS@xxxxxxxxxx https://lists.centos.org/mailman/listinfo/centos