wuzhouhui
2019-Apr-28 05:22 UTC
[CentOS] Who is responsible to load NIC driver when boot up
> -----Original Messages----- > From: "Steven Tardy" <sjt5atra at gmail.com> > Sent Time: 2019-04-28 13:02:18 (Sunday) > To: "CentOS mailing list" <centos at centos.org> > Cc: > Subject: Re: [CentOS] Who is responsible to load NIC driver when boot up > > On Sat, Apr 27, 2019 at 11:44 PM wuzhouhui <wuzhouhui14 at mails.ucas.ac.cn> > 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?> > > > _______________________________________________ > CentOS mailing list > CentOS at centos.org > https://lists.centos.org/mailman/listinfo/centos
Stephen John Smoogen
2019-Apr-28 13:54 UTC
[CentOS] Who is responsible to load NIC driver when boot up
On Sun, 28 Apr 2019 at 01:22, wuzhouhui <wuzhouhui14 at mails.ucas.ac.cn> wrote:> > -----Original Messages----- > > From: "Steven Tardy" <sjt5atra at gmail.com> > > Sent Time: 2019-04-28 13:02:18 (Sunday) > > To: "CentOS mailing list" <centos at centos.org> > > Cc: > > Subject: Re: [CentOS] Who is responsible to load NIC driver when boot up > > > > On Sat, Apr 27, 2019 at 11:44 PM wuzhouhui <wuzhouhui14 at mails.ucas.ac.cn > > > > 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 parts of dracut which explain how it is loading things, what order and how to add/remove things. -- Stephen J Smoogen.
wuzhouhui
2019-Apr-29 01:05 UTC
[CentOS] Who is responsible to load NIC driver when boot up
> -----Original Messages----- > From: "Stephen John Smoogen" <smooge at gmail.com> > Sent Time: 2019-04-28 21:54:13 (Sunday) > To: "CentOS mailing list" <centos at centos.org> > Cc: > Subject: Re: [CentOS] Who is responsible to load NIC driver when boot up > > On Sun, 28 Apr 2019 at 01:22, wuzhouhui <wuzhouhui14 at mails.ucas.ac.cn> > wrote: > > > > -----Original Messages----- > > > From: "Steven Tardy" <sjt5atra at gmail.com> > > > Sent Time: 2019-04-28 13:02:18 (Sunday) > > > To: "CentOS mailing list" <centos at centos.org> > > > Cc: > > > Subject: Re: [CentOS] Who is responsible to load NIC driver when boot up > > > > > > On Sat, Apr 27, 2019 at 11:44 PM wuzhouhui <wuzhouhui14 at mails.ucas.ac.cn > > > > > > 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 differentI 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 at centos.org > https://lists.centos.org/mailman/listinfo/centos