Virtual Machine Interrupt Buffering via Dynamic Timer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current interrupt processing methods in virtual machine systems are inefficient due to high CPU usage and context switching caused by VMCall operations, leading to performance degradation with frequent interrupts, and lack of devices with interrupt closure functions.
Innovation Solution
Implementing a dynamic buffer technology that buffers data packets and uses timers to determine when to send them through the virtual machine manager, reducing VMCall calls and optimizing data transmission by shielding interrupts and converting them to polling.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the virtual machine intercepts the interrupt and waits for the GOS to check the interrupt flag bit, then the interrupt processing is completed, but the GOS performance significantly decreases when a great deal of interrupts are generated
Solution Approach 1:
The patent combines multiple interrupt flag bits into a single aggregate flag bit in the virtual CPU. Instead of having separate flag bits for each interrupt, the system merges them into one unified flag that indicates whether any interrupt is pending. This reduces the number of flag checks and VMCall operations required, thereby improving GOS performance while maintaining complete interrupt processing capability.
Solution Approach 2:
The front-end driver performs preliminary processing of interrupts by setting the aggregate flag bit in advance before the GOS checks it. This preliminary action allows the GOS to simply check a single flag bit rather than processing each interrupt individually, significantly reducing the processing overhead when multiple interrupts are generated.
2Quantity of substance
If the VMCall is called to exchange data through the shared data region of the VMM, then the data transmission is achieved, but the CPU running level and context switching consume more than two thousand clock cycles
Solution Approach 1:
The patent extracts the interrupt interception and flag setting functionality from the GOS and places it in the front-end driver. By taking out the interrupt processing logic from the virtualized environment and placing it in the physical driver layer, the system avoids the overhead of VMCall and context switching for interrupt handling, reducing CPU clock cycle consumption from over two thousand to a minimal amount.
Solution Approach 2:
The patent introduces an aggregate interrupt flag bit as an intermediary between the physical interrupt source and the GOS. This single flag bit mediates multiple interrupt conditions, allowing the GOS to check interrupt status without making multiple VMCall operations. The intermediary simplifies the communication path and eliminates the need for repeated context switching.
3Productivity
If the driver continuously reads data by closing the interrupts, then the data reading is achieved, but devices require a function to close their interrupts which currently there are few devices with
Solution Approach 1:
Instead of having the device close interrupts to enable continuous reading (which requires device support that is currently rare), the patent inverts the approach by having the front-end driver continuously monitor and set the interrupt flag without requiring the device to close interrupts. The driver polls the interrupt status and processes data continuously, achieving high reading efficiency while maintaining compatibility with existing devices that lack interrupt closure functionality.
Data Source
AI summary
A method for interrupt processing includes setting a buffer for buffering data packets received by a front-end or back-end of the virtual machine and setting a timer for timing data buffering time; determining, after receiving the data packets from the front-end or the back-end, whether the received data packets are interacting data packets and determining whether to enable or postpone the timer, and buffering the received data packets by the buffer and enabling the timer in the case that the data packets are not the interacting data packets; and sending the buffered data packets through a virtual machine manager to the back-end or the front-end of the virtual machine for processing in the case that the buffer reaches a maximum capacity limit or the timer reaches a predetermined time.


