Patent ID: 8166473

Claim:
A method for allocating resources to a virtual machine, the method comprising: instantiating, on a computer system, the virtual machine in a first partition and a virtual service provider (VSP) in a second partition, the VSP configured to arbitrate use of a hardware device among a plurality of virtual machines; establishing a communications channel in a region of memory accessible to both the VSP and the virtual machine; receiving, from the virtual machine via the communications channel, a request to access the hardware device; receiving, from the virtual machine via the communications channel, a request for an amount of input/output bandwidth of the hardware device; sending, by the VSP via the communications channel to the virtual machine, information that indicates a first amount of available input/output bandwidth of the hardware device; receiving, from the virtual machine via the communications channel, a message indicative of acceptance of the first amount of available input/output bandwidth; allocating, by the VSP, at least a portion of the first amount of available input/output bandwidth; determining that a change request has been generated by one of the VSP and the virtual machine, the change request indicative of a renegotiation of resource utilization; sending, by the VSP via the communications channel, an indication of a second amount of available input/output bandwidth of the hardware device, the second amount being different from the first amount; receiving, by the VSP via the communications channel, a message indicative of acceptance of the second amount of available input/output bandwidth; allocating, by the VSP, at least a portion of the second amount of available input/output bandwidth; sending, by the VSP via the communications channel to the virtual machine, a message indicative of an offer for the virtual machine to utilize a resource different from the second amount of available input /output bandwidth; receiving, by the VSP via the communications channel from the virtual machine, a message indicative of a refusal of the offer for the virtual machine to utilize the resource different from the second amount of available input/output bandwidth; and sending, by the VSP via the communications channel to the virtual machine, a message indicative of the VSP granting the virtual machine continued use of the second amount of available input/output bandwidth.