A non-transitory machine-readable medium storing a program for of high packet rate network processing in a system comprising a physical host and a set of physical network interface controllers (PNICs), the physical host hosting a set of data compute nodes (DCNs) for each of a set of tenants, each DCN comprising a virtual network interface controller (VNIC) for communicating with one or more PNICs to exchange packets, the program executable by at least one processing unit, the program comprising sets of instructions for:
- determining whether a predetermined number of packets have been received at a VNIC from a particular DNC;
- when the predetermined number of packets have been received at the VNIC from the particular DNC, generate an interrupt to virtualization software;
- and
- when the predetermined number of packets have not been received at the VNIC from the particular DNC:
- determining a rate of packets received from the particular DCN at the VNIC;
- and
- when the rate of packets exceeds the predetermined threshold, performing polling to determine the availability of packets received at the VNIC from the particular DCN;
- and
- when the rate of packets does not exceed the predetermined threshold, utilizing interrupts to determine the availability of packets received at the VNIC from the particular DCN.