1. A computer-implemented method for processing a virtual interrupt, comprising: for each of a plurality of virtual processors, invoking a routine that returns a value indicative of a predetermined set of criteria that has been satisfied for a respective virtual processor; selecting one of the plurality of virtual processors for processing the virtual interrupt, based on values returned for the virtual processors that indicate the selected virtual processor may process the virtual interrupt with less delay than another one of the virtual processors; and presenting the virtual interrupt to the selected virtual processor.