Following up from Part 1 where I provided an overview of the new Native Device Driver architecture introduced in ESXi 5.5, we will now take a deeper look at how this new device driver model works in ESXi. A new concept of driver priority loading is introduced with the Native Device Driver model and the diagram below provides the current ordering of how device drivers are loaded.
As you can see OEM drivers will have the highest priority and by default Native Drivers will be loaded before "legacy" vmklinux drivers. On a clean installation of ESXi 5.5 you should see at least two of these directories: /etc/vmware/default.map.d/ and /etc/vmware/driver.map.d/ which contains driver map files pertaining to Native Device and "legacy" vmklinux drivers.
Here is a screenshot of the map files for both of these directories on an ESXi host:
The following inbox Native Drivers are included in default installation of ESXi 5.5:
|Device||Device Driver Name|
|Emulex 10GBe NIC||elxnet|
|vmxnet3 & graphics||vmkernel|
As I mentioned earlier, Native Drivers by default will always load before vmklinux drivers, however if you need to perform some troubleshooting, one option is to disable the specific driver in question by using ESXCLI which is applicable to both Native Drivers as well as vmklinux drivers.
To do so, run the following ESXCLI command:
esxcli system module set --enabled=false --module=[DRIVER-NAME]