A system and method for configuring components added to a network is disclosed. The method includes determining, by a host, that network identifying information of a plurality of networks to which the host is connected is unknown, listening for messages on the plurality of networks to obtain network identifying information for respective networks, receiving a message on a network of the plurality of networks, the message including a network identifier and a set of configuration settings, and configuring a network connection of the host for the network in view of the network identifier and the set of configuration settings from the message.
Aspects of the disclosure provide for mechanisms for securing virtual machines in a computer system. A request for a resource is received by a processing device. The request is initiated by a guest application. A determination is made by the processing device of whether an initialization of the guest application is completed. In response to a determination that the initialization of the guest application is completed, at least one system call associated with the request initiated by the guest application is blocked to reject execution of the request for the resource.
Systems and methods for identifying memory devices for swapping virtual machine memory pages. An example method may comprise: identifying, by a processing device, a workload type associated with a workload being executed by a computer system; identifying a memory device associated with the workload type; evaluating a memory pressure metric reflecting a period of time during which an application being executed by the computer system has been blocked by a memory allocation operation; and responsive to determining that the memory pressure metric exceeds a threshold value, allocating a memory block on the identified memory device.
Technology for configuring and executing a shallow virtual machine to enhance memory protection between different portions of user space memory of a particular computing process. An example method involves: receiving, by a processor of a host, a request to create a computing process comprising a first and second executable code, wherein the computing process comprises an instruction to cause the processor to switch between first and second page table structures; loading the first and second executable code into memory of the host, wherein the first page table structure comprises mapping data for the first executable code and for the second executable code and wherein the second executable code comprises driver code of a device; updating the second page table structure to disable execution of the first executable code and to provide the second executable code with access to the device; and restricting the first executable code from accessing the device.
Systems and methods for managing interrupts generated by network interface controllers. An example method may comprise: responsive to determining that a memory pressure metric in a computer system does not exceed a threshold value, disabling interrupts that signal completion of a packet transmission by a network interface controller; transmitting a plurality of data packets by the network interface controller; and responsive to detecting that the memory pressure metric exceeds the threshold value, releasing a memory buffer allocated to a data packet of the plurality of data packets.
A system and method of adjusting a refresh rate to match a given remote desktop stream frame rate is described. The system may include a processing device to transmit, as a media stream, a portion of a remote desktop image with a frame rate that matches a refresh rate to a remote desktop client.
Updating inactive compute instances is disclosed. It is determined that a first compute instance that boots from an operating system image on a first storage device is in an inactive state. It is determined that updates to the operating system image on the first storage device exist. The operating system image is copied from the first storage device to a second storage device. The operating system image on the second storage device is updated with the updates to generate an updated operating system image on the second storage device. The updated operating system image is copied form the second storage device to the first storage device in place of the operating system image.
A method includes identifying a set of tests for a source code, analyzing the set of tests to identify overlapping blocks of the source code that are to be tested by each of the set of tests, merging a subset of the tests that include the overlapping blocks of the source code to create a merged test, and causing the merged test to be executed to test the source code. In an implementation, code coverage results are used when analyzing the set of tests to identify overlapping blocks of the source code.
Systems and methods are disclosed for derivation of executable tasks for synchronizing configuration parameters. An example method may comprise: obtaining a first set of configuration parameters of a first computer system corresponding to a first time value; obtaining a second set of configuration parameters of the first computer system corresponding to a second time value; performing a comparison between the first set of configuration parameters and the second set of configuration parameters to determine one or more differences; deriving in view of the comparison, one or more executable tasks to convert the first set of configuration parameters to the second set of configuration parameters; and providing, to a second computer system, the one or more executable tasks for execution by the second computer system to synchronize configuration parameters of the second computer system to configuration parameters of the first computer system corresponding to the second time value.
A method of dynamically tuning a hypervisor includes detecting that a high-performance virtual machine was launched on the hypervisor. The method further includes, in response to the detecting, modifying, by a processing device, a configuration of the hypervisor to increase performance of the high-performance virtual machine on the hypervisor.
Proxy-less power management using an automation engine is disclosed. An entity manager executing on a computing device determines that a first entity requires a power management function to be performed against the first entity. The entity manager generates power management execution information that identifies a power device address of a power management device that controls the first entity. An automation engine is initiated on the computing device with the power management execution information to cause the power management function to be performed against the first entity via the power management device based on the power management execution information.
Methods and systems are provided for comparing and identifying job definition files that are hard copies and soft copies of one another. In one embodiment, a method is provided that includes receiving and splitting a first job definition file into a first plurality of stages. The method further comprises comparing the first plurality of stages with a second plurality of stages from a second job definition file. Corresponding stages may be identified and used to determine whether the first and second job definition files are hard or soft copies of one another. If the first and second job definition files are hard copies, one of the job definition files may be deleted from a continuous integration environment. If the first and second job definition files are soft copies, a generic job definition file may be generated based on the first and second job definition files.
A method and system for integrating business intelligence data into a continuous integration system are provided. In one embodiment, a method is provided comprising receiving business intelligence data regarding utilized product features and job data regarding tested product features. The method may further include converting the business intelligence data and the job data into unified business intelligence data and unified job data in a unified format. The method may also include generating a feature map based on the unified business intelligence data and unified job data, determining an insufficient mapping based on the feature map, and identifying a job flag based on the insufficient mapping.
A system includes a memory and a processor in communication with the memory. The processor builds a preliminary history list of a plurality of commits including intermediary commits and a target commit, instantiates a target file list of files modified by the target commit, and instantiates an intermediary file list for each intermediary commit. Additionally, the processor classifies each intermediary commit as an intersecting commit or an empty commit. Responsive to classifying a respective intermediary commit as an empty commit, the processor removes the respective intermediary commit from the preliminary history list to create a candidate history list. Responsive to classifying a respective intermediary commit as an intersecting commit, the processor retains the respective intermediary commit in the candidate history list. Additionally, the processor joins the respective intermediary file list with the target file list and creates a finalized history list.
G06F 11/36 - Preventing errors by testing or debugging of software
G06F 11/14 - Error detection or correction of the data by redundancy in operation, e.g. by using different operation sequences leading to the same result
Implementing multiple load balancer drivers for a single load balancer is disclosed. A first request directed to a load balancer to load balance requests based on a first request selection instruction is received. A first particular load balancer driver is selected from a plurality of load balancer drivers based on a load balancer table that correlates request selection instructions to corresponding load balancer drivers of the plurality of load balancer drivers. Subsequent requests that are encompassed by the first request selection instruction directed to the load balancer are caused to be load balanced by the first particular load balancer driver.
Computing resource coverage is disclosed. In an example, a computing resource (CR) pool includes a plurality of CR types hosted on a plurality of hosts, where the plurality of CR types are routinely updated. A test repository stores a plurality of test cases (TC). A processor is configured to execute a testing service to compile, from a plurality of test daemons, a CR manifest of the CR types included in the CR pool. A TC manifest is compiled, including CR types tested by the plurality of TCs. The CR types included in the CR manifest are compared with the CR types included in the TC manifest. A test coverage report of tested and untested CR types is generated. A TC is added to the test repository based on the test coverage report.
Technology for configuring and executing a shallow virtual machine to enhance memory protection between different portions of user space memory of a particular computing process. An example method may involve: associating a computing process with a virtual machine data structure, wherein the computing process initiates an update to the virtual machine data structure to cause a processor to switch between a page table structures; loading first and second executable code into user space memory of the computing process, wherein a first page table structure comprises mapping data for the first and second executable code and wherein the second executable code comprises driver code of a device; updating the second page table structure to disable execution of the first executable code and to map a portion of the user space memory to the device; and restricting the first executable code from accessing the memory mapped device.
A method of adjusting a virtual machine GPU refresh rate to match a given remote desktop stream frame rate is described. The GPU refresh rate of a virtual machine in a virtual machine server environment can be adjusted to a value stored either in the virtual machine GPU or a graphics driver of the virtual machine. The value represents a desired refresh rate or desired frame rate and can be determine by a plurality of parameters that characterized a remote desktop client or a hypervisor in the virtual machine server environment based on network conditions and/or other factors. A guest operating system of the virtual machine receives the frame rate information, and adjusts a refresh rate of a virtual machine GPU, which uses the adjusted refresh rate to draw framebuffers to create a portion of a remote desktop image for transmission to the remote desktop client.
An example method of providing a notification includes comparing a first code segment stored in a first page with a second code segment stored in a second page, before deployment of the second page in a production environment. The first page may be deployed in the production environment, and the second page may be a different version of the first page. The method also includes detecting a user interface (UI) modification based on comparing the first code segment with the second code segment. The method further includes providing a notification of the UI modification.
A network switch may be debugged by creating a virtual instance of the switch. Configuration data of the network switch may be retrieved, the configuration data including lists of the rules and groups configured on the switch. An isolated virtual environment may be created, and a virtual switch may be provisioned on the isolated virtual environment. The virtual switch may be configured with the configuration data of the network switch, including the rules and groups configured thereon. Diagnostic data corresponding to the switch may be obtained from the virtual switch.
A system and method for configuring components added to a network is disclosed. The method includes detecting, by a first hypervisor of a first host machine, that a second host machine having a second hypervisor is being added to a cluster of host machines comprising the first host machine, and identifying a plurality of network connections of the first hypervisor, each network connection being associated with one of a plurality of networks connecting hypervisors on host machines in the cluster, each network connection of the first hypervisor having a set of configuration settings. The method also includes generating, for each network connection, a message including a set of configuration settings of a corresponding network connection of the first hypervisor, and transmitting the message on a respective network to a second hypervisor to facilitate configuration of a corresponding network connection of the second hypervisor.
Systems and methods for implementing guest-initiated announcement of virtual machine migration. An example method may comprise: receiving, by an origin hypervisor running on an origin computer system, a migration announcement of a virtual machine; copying at least a part of a state of the virtual machine to a destination computer system; and responsive to stopping the virtual machine on the origin computer system, causing a destination hypervisor running on the destination computer system to broadcast the migration announcement over a network associated with the destination computer system.
Continuous debugging is disclosed. For example, a source code repository stores a first project. A processor is configured to execute a job scheduler, which includes a debugger. The job scheduler receives a request to execute a job, which includes executing a first executable code. A guest is instantiated. The first project is copied as a second project. The second project is compiled into the first executable code. The guest is instructed to execute the job including the first executable code. The debugger intercepts an error caused by executing the first executable code. The debugger updates the second project by inserting a breakpoint into the second project based on the error. The updated second project is compiled into a second executable code. The guest is instructed to re-execute the job including executing the second executable code. Execution of the second executable code is paused at the breakpoint.
A task may be executed using a domain specific language (DSL) debugger, the task including one or more modules. A module debugger associated with a module of the one or more modules of the task may be identified. Task debugging data associated with the execution of the task using the DSL debugger may be transmitted to the identified module debugger. Module debugging data may be received from the identified module debugger. Multi-level debugging data including the task debugging data and the received module debugging data may be generated.
Updating inactive compute instances is disclosed. It is determined that a first compute instance that boots from an operating system image on a first storage device is in an inactive state. It is determined that updates to the operating system image on the first storage device exist. The operating system image is copied from the first storage device to a second storage device. The operating system image on the second storage device is updated with the updates to generate an updated operating system image on the second storage device. The updated operating system image is copied form the second storage device to the first storage device in place of the operating system image.
Aspects of the disclosure provide for mechanisms for securing virtual machines in a computer system. A method of the disclosure includes: receiving a first resource request initiated by an application running on a virtual machine during initialization of the application; allocating, by a hypervisor, a resource to the application in view of the first resource; and in response to receiving a message indicating completion of the initialization of the application, blocking, by the hypervisor, at least one hypercall initiated by the virtual machine. The completion of the initialization of the application may correspond to initiation of execution of the application using the allocated resource.
A method of adjusting a virtual machine GPU refresh rate to match a given remote desktop stream frame rate is described. The GPU refresh rate of a virtual machine in a virtual machine server environment can be adjusted to a value stored either in the virtual machine GPU or a graphics driver of the virtual machine. The value represents a desired refresh rate or desired frame rate and can be determine by a plurality of parameters that characterized a remote desktop client or a hypervisor in the virtual machine server environment based on network conditions and/or other factors. A guest operating system of the virtual machine receives the frame rate information, and adjusts a refresh rate of a virtual machine GPU, which uses the adjusted refresh rate to draw framebuffers to create a portion of a remote desktop image for transmission to the remote desktop client.
Virtualized computing resources can be managed in a cloud computing environment. For example, a system can receive input indicating that a cloud computing environment is to be reverted back to a prior state prior to an event occurring. Based on the input, the system can determine actions that were performed in the cloud computing environment in response to the event. Each action can involve a creation, a modification, or a deletion of a virtualized computing resource in the cloud computing environment. The system can determine a particular order in which the actions were performed by analyzing timestamps corresponding to the actions. The system can then revert the cloud computing environment back to the prior state by performing an inverse of each action in the plurality of actions in a reverse order to the particular order.
A system and method for efficient virtual machine memory monitoring with hyper-threading includes executing, by a hypervisor executing on a plurality of physical processors, a virtual central processor unit (VCPU) of a virtual machine on a first hyper-thread. The plurality of physical processors include a first physical processor having the first hyper-thread and a second hyper-thread. The virtual machine executes on the first hyper-thread. Then, the second hyper-thread executes a memory monitoring instruction on a designated range of a shared memory to cause the second hyper-thread to stop executing. Then, a guest in the virtual machine updates the designated range of the shared memory by storing a first request in the designated range of the shared memory to wake up the second hyper-thread.
A method includes identifying, by a host computing device hosting a virtual machine, a plurality of disk volumes of a virtual disk stored on a first storage device, wherein the disk volumes are arranged in a hierarchical order. The method further includes determining, by the host computing device, a block that is present in a first disk volume and a second disk volume of the plurality of disk volumes, wherein the second disk volume is at a higher level in the hierarchical order than the first disk volume. The method also includes copying, by the host computing device, data from the block stored on the first storage device to a backup disk volume residing on a second storage device and removing the block on the first storage device.
Dynamically revising an in-process build is disclosed. A build system receives a build configuration comprising information that defines a plurality of successive stages. Each stage includes at least one step, and one or more of the stages include a plurality of successive steps. The build configuration defines a build process that, when completed, alters a state of a storage device. The build system initiates a build process sequence on the build configuration. The build system, after initiating the build process sequence, receives notification of a desire to add a revision to a particular stage of the plurality of stages defined in the build configuration. A determination is made that performance of the particular stage has or has not begun. In response to the determination, a subsequent build process action is performed.
Implementations of the disclosure provide for secret keys management in a virtualized data-center. In one implementation, a system is provided. The system comprises a memory to store secret key data and a processing device coupled to the memory. The processing device is to identify authentication information provided by a user, the authentication information comprising access information associated with a data storage domain, receive a secret key to access the data storage domain in view of the authentication information, wherein the secret key comprises a universally unique identifier (UUID), and register the secret key, wherein to register the secret key, the processing device to store a data structure in volatile memory indicating an association between the UUID of the secret key and the hypervisor.
H04L 29/06 - Communication control; Communication processing characterised by a protocol
G06F 9/455 - Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
G06F 21/50 - Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
G06F 21/53 - Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity, buffer overflow or preventing unwanted data erasure by executing in a restricted environment, e.g. sandbox or secure virtual machine
G06F 21/62 - Protecting access to data via a platform, e.g. using keys or access control rules
33.
Asynchronous mapping of hot-plugged device associated with virtual machine
Systems and methods for asynchronous mapping of a hot-plugged I/O device associated with a virtual machine. An example method comprises: executing, by a host computer system, a virtual machine managed by a hypervisor, wherein the virtual machine is associated with a hot-pluggable input/output (I/O) device; responsive to detecting removal of the I/O device, unpin a memory buffer associated with the I/O device; and responsive to receiving a signal indicating completion of unpinning the memory buffer, release the I/O device from the hypervisor.
An apparatus includes a storage device of a host computing device. The storage device is to store a virtualization manager. The apparatus also includes a processing device of the host computing device and operatively coupled to the storage device. The processing device is to determine that a first instance of a virtual machine on a first host computing device is paused based on an error associated with a connection to a storage device of the first host computing device, determine whether the second host computing device has access to the storage device of the first host computing device, instantiate a second instance of the virtual machine on the second host computing device when the second host computing device is determined to have access to the storage device of the first host computing device, and to stop the first instance of the virtual machine on the first host computing device.
G06F 11/20 - Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
G06F 9/455 - Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
G06F 11/14 - Error detection or correction of the data by redundancy in operation, e.g. by using different operation sequences leading to the same result
35.
Supporting quality-of-service for virtual machines based on operational events
An implementation of the disclosure provides identifying an amount of a resource associated with a virtual machine (VM) hosted by a first host machine of a plurality of host machines that are coupled to and are managed by a host controller, wherein a part of a quality manager is executed at the first host machine and another part of the quality manager is executed in the host controller. A requirement of an additional amount of resource by the VM is determined in view of an occurrence of an event associated with the VM. The VM may be migrated to a second host machine of the plurality of host machines for a duration of the event in view of the additional amount of the resource.
A processing device in a system can allocate builds to execute jobs across servers in a distributed server environment such as a continuous integration (CI) or continuous deployment (CD) server environment, determine workload patterns, and store a workload pattern vector including a resource usage pattern for the builds and the servers. The processing device can provide an interface that allows a user to switch priorities of user-owned builds in server environments, even after execution of the jobs has begun. The user's ability to prioritize or reprioritize builds is limited to user-prioritizable builds as determined based on the resource usage patterns of the builds running the jobs. The user can thus prioritize some user-owned builds without adversely affecting builds of other users.
Log record analysis based on reverse engineering of log record formats is disclosed. A computing device receives log record template data associated with a log record template comprising a plurality of field identifiers for a log record. The log record template data is analyzed to identify the plurality of field identifiers. Based on the log record template data and the plurality of field identifiers, a log record analysis function is automatically generated that is configured to receive a log record that was generated based on the log record template, extract a plurality of log data items from the log record, each log data item corresponding to one of the plurality of field identifiers, and output information that identifies the plurality of field identifiers and the plurality of log data items.
Implementations of the disclosure provide for hot-plugging of virtual functions in a virtualized environment. In one implementation, a computer system determines that virtual functions associated with a logical network for a virtual machine hosted on a first host system are unavailable on the first host system, identifies a logical network device on a second host system that is communicably accessible from the first host system, and determines that the logical network device on the second host system has a number of available virtual functions associated with the logical network. The computer system then migrates the virtual machine from the first host computer system to the second host computer system to allow the virtual machine to access the number of available virtual functions associated with the logical network on the second host system and associates a virtual device of the virtual machine with the number of available virtual functions.
Methods, systems, and computer program products are provided to identify a set of functions within a first service module that calls a second service module. Both the first service module and the second service module are associated with an application that is structure with a plurality of interworking service modules. The first service module is executed to send requests to the second service module when the set of functions is called. The responses to the requests are captured, and stored in a snapshot data structure. A modified first service module is created, in which the set of functions are modified to return a response from the snapshot data structure in place of the second service module. A unit test is performed on the modified first service module.
An example method of reproducing a test case in a continuous integration environment includes detecting a test failure in a continuous integration environment. The continuous integration environment includes a plurality of stages for running a test on an application. The method also includes in response to detecting the failure, generating a snapshot while the test is running. The snapshot specifies a stage of the plurality of stages and a state of the application at which the failure occurred. The method further includes uploading the snapshot to a repository. At a later point in time, the snapshot may be restored to a computing device.
A method includes identifying a cloud and virtualization management system application programming interface (API), and identifying a software defined networking (SDN) API. The method further includes determining, by a processing device, one or more resources, relationships, or fields corresponding to the cloud and virtualization management system API and the SDN API. The method further includes generating, by the processing device, a skeleton model representing mappings between the one or more resources, relationships, or fields corresponding to the cloud and virtualization management system API and the SDN API. The method further includes and providing the skeleton model to a client device for display.
Methods, systems, and computer program products are provided to identify a testing function corresponding to a tested function and associate the identity of the testing function with identifiers of one or more lines of source code corresponding to the tested function. A testing function is queued for execution in an execution stack. The testing function calls a function corresponding to one or more lines of a source code, wherein the source code includes instrumentation code corresponds to the function, and wherein the function is queued for execution in the execution stack by the call. The function is executed, and identifiers are retrieved during the execution. The retrieved identifiers correspond to the testing function and to the one or more lines of source code. The identifier corresponding to the testing function is retrieved from the execution stack, and the identifiers corresponding to the one or more lines of source code are retrieved by a code coverage module from one or more hooks corresponding to the instrumentation code. Based on the retrieving during the execution, the identifier of the testing function is associated with the identifiers of the one or more lines of source code. The identifier of the testing function and the identifiers of the one or more lines of source code are stored in a data structure.
An apparatus includes a memory of a host computing device. The memory is to store at least one hypervisor. The apparatus also includes a processing device of the host computing device and operatively coupled to the memory. The processing device is to receive a request to connect the hypervisor to a virtual network, and to determine whether the hypervisor is connectable to the virtual network utilizing at least one connectivity check service. The at least one connectivity check service indicates whether one or more connectivity requirements are satisfied. The processing device is to further connect the hypervisor to the virtual network when the one or more connectivity requirements are indicated as being satisfied, and to perform a periodic connectivity check of the connection between the hypervisor and the virtual network.
Methods, systems, and computer program products are included for the intelligent garbage collection of containers. An example method includes providing a garbage collection data structure, the garbage collection data structure including metadata and one or more resource consumption parameters corresponding to the container. The one or more resource consumption parameters are analyzed by a machine-learning function. Based on the analyzing, the container is classified into one or more classes, the one or more classes including at least one of a suspicious container class, a malicious container class, or a normal container class. Based on the classifying, one or more garbage collection actions are performed on the container, including at least one of generating an alert corresponding to the container or reducing the resource consumption of the container.
Methods, systems, and computer program products are included for incorporating functionalities of a version control system into a package manager. An example method includes providing to a package manager a source file path corresponding to a source. A software version control system corresponding to the source is determined from the source file path. A command translation driver corresponding to the software version control system of the source is loaded by the package manager. The loaded command translation driver translates a package manager command to a corresponding command of the software version control system. The translated package manager command is executed by the package manager.
An example method of reproducing a test case in a continuous integration environment includes detecting a test failure in a continuous integration environment. The continuous integration environment includes a plurality of stages for running a test on an application. The method also includes in response to detecting the failure, generating a snapshot while the test is running. The snapshot specifies a stage of the plurality of stages and a state of the application at which the failure occurred. The method further includes uploading the snapshot to a repository. At a later point in time, the snapshot may be restored to a computing device.
Systems and methods for announcing virtual machine migration. An example method may comprise: receiving, by a first hypervisor running on a first computer system, a migration announcement from a virtual machine that is undergoing live migration from the first computer system to a second computer system; and transmitting a message comprising the migration announcement to a second hypervisor running on the second computer system.
A method of predicting a format of a file includes calculating a quotient vector storing a list of values in slots. Each slot of the quotient vector and binary vector correspond to a character of a set of distinct characters based on an order. Each value in the quotient vector indicates a frequency with which the corresponding distinct character is found relative to the set of distinct characters found in a file. The method also includes calculating, based on comparing each value in the quotient vector to a threshold, a binary vector storing a list of values in slots. The method further includes predicting, based on the binary vector, a format of the file.
An occurrence of an event associated with a computing device is identified. A script associated with the identified event is identified. A property of a component that is associated with the computing device is received, wherein the property includes an operating status of the component associated with the computing device. The script is executed for the computing device in view of the operating status of the component.
Methods, systems, and computer program products are included for de-duplicating one or more memory pages. A method includes receiving, by a hypervisor, a list of read-only memory page hints from a guest running on a virtual machine. The list of read-only memory page hints specifies a first memory page marked as writeable. The method also includes determining whether the first memory page matches a second memory page. In response to a determination that the first memory page matches the second memory page, the hypervisor may deduplicate the first and second memory pages.
G06F 9/455 - Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
G06F 11/14 - Error detection or correction of the data by redundancy in operation, e.g. by using different operation sequences leading to the same result
H03M 7/30 - Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
51.
Application memory protection using an extended page table switching virtual machine function
A hypervisor generates first and second page views, where a guest physical address points to a first page of the first page view and a second page of the second page view. A first pointer value is written to the first page and a second pointer value is written to the second page. A guest operating system executes a first task and if a determination to switch to the second task is made, the guest operating system reads a current pointer value and determines what the current page view is. If the guest operating system determines that the current page view is the first page view, the guest operating system saves the first pointer value in a first memory of the first task, loads the second pointer value from a second memory of the second task, and executes a virtual machine function to switch to the second page view.
G06F 9/455 - Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
G06F 21/78 - Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
Systems and methods are disclosed for derivation of executable tasks for synchronizing configuration parameters. An example method may comprise: obtaining a first set of configuration parameters of a first computer system corresponding to a first time value; obtaining a second set of configuration parameters of the first computer system corresponding to a second time value; performing a comparison between the first set of configuration parameters and the second set of configuration parameters to determine one or more differences; deriving in view of the comparison, one or more executable tasks to convert the first set of configuration parameters to the second set of configuration parameters; and providing, to a second computer system, the one or more executable tasks for execution by the second computer system to synchronize configuration parameters of the second computer system to configuration parameters of the first computer system corresponding to the second time value.
Methods, systems, and computer program products are included for processing one or more buffers in a networking queue. An example method includes receiving one or more transmit requests or receive requests from a guest running on a virtual machine. The method also includes detecting that a networking backend has stopped processing buffers from a networking queue, each queued buffer corresponding to a transmit request or receive request. The method further includes in response to detecting that the networking backend has stopped processing buffers from the networking queue, flushing one or more buffers stored in the networking queue. A buffer corresponding to a receive request may be flushed by storing a set of dummy packets into the buffer. In contrast, a buffer corresponding to a transmit request may be flushed by discarding the buffer.
Systems and methods for virtual machine memory migration by storage are provided. A method includes receiving a request to migrate a virtual machine from a source host to a destination host. The method further includes mapping, by the source host, a memory of the virtual machine to a storage device accessible over a network by the source host and by the destination host. The method further includes caching, by the source host, a portion of a state of the virtual machine. The method further includes issuing a synchronization command to synchronize the portion of the state of the virtual machine with the storage device. Responsive to determining that a time period to complete the synchronization command is below a threshold time period, the method further includes stopping the virtual machine on the source host. The method further includes starting the virtual machine on the destination host.
A request to provide a virtual machine with a virtual hardware component may be received. A network that the virtual hardware component is configured to operate on may be identified. A determination may be made as to whether a hypervisor supports or does not support the network that the virtual hardware component is configured to operate on. In response to determining that the hypervisor does not support the network that the virtual hardware component is configured to operate on, the virtual machine with the virtual hardware component may be provided to a second hypervisor that supports the network.
A request may be received from a second client device to connect to a running virtual machine instance of a virtual machine while a first client device is connected to the running virtual machine instance. The second client device may be connected to the running virtual machine instance in response to receiving the request from the second client device. Furthermore, a connection between the first client device and the running virtual machine instance of the virtual machine may be converted from a primary mode to a secondary mode.
G06F 15/16 - Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
G06F 9/48 - Program initiating; Program switching, e.g. by interrupt
H04L 29/06 - Communication control; Communication processing characterised by a protocol
H04L 29/08 - Transmission control procedure, e.g. data link level control procedure
A second client device may be connected to a running virtual machine instance of a virtual machine while a first client device is connected to the running virtual machine instance. A first input data may be received from the first client device and a second input data may be received from the second client device. A determination may be made as to whether the second input data includes a great number of commands than the first input data in the time period. An output data associated with the running virtual machine instance may be generated by using the second input data in response determining that the second input data includes a greater number of commands than the first input data in the time period.
Proxy-less power management using an automation engine is disclosed. An entity manager executing on a computing device determines that a first entity requires a power management function to be performed against the first entity. The entity manager generates power management execution information that identifies a power device address of a power management device that controls the first entity. An automation engine is initiated on the computing device with the power management execution information to cause the power management function to be performed against the first entity via the power management device based on the power management execution information.
A hypervisor associates a combined register space with a virtual device to be presented to a guest operating system of a virtual machine, the combined register space comprising a default register space and an additional register space. Responsive to detecting an access of the additional register space by the guest operating system of the virtual machine, the hypervisor performs an operation on behalf of the virtual machine, the operation pertaining to the access of the additional register space.
Deployment state based configuration generation is disclosed. For example, a first node is in a first deployment state, with a state daemon executing on the first node. A configuration generator may be associated with one or more processors. The state daemon records a first configuration instruction associated with a first modification to the first deployment state, where the first node is in a second deployment state after the first modification. The configuration generator generates a first configuration based on the second deployment state including the first configuration instruction. The first configuration is stored to a configuration repository, where the first configuration is deployed to a second node converting the second node to the second deployment state.
An example method for the gradual creation process of server virtual machines includes a virtualization manager locking a virtual machine template, saving a configuration of a virtual machine, locking the virtual machine, and directing a worker host to create a volume. The worker host creates the volume, and the virtualization manager unlocks the virtual machine. A destination host executes the virtual machine, and the worker host merges the volume with a disk of the virtual machine template.
Some examples can enable virtual bridges to be hot plugged into a virtual Peripheral Component Interconnect (vPCI) system. For example, a number of subordinate buses that are connected to a vPCI bridge in the vPCI system can be determined. The vPCI system can be for a virtual machine. A parameter value can then be generated by adding an integer to the number of subordinate buses that are connected to the vPCI bridge. The integer can be a predefined number of additional subordinate buses to enable to be connected to the vPCI bridge. The parameter value can then be assigned to the vPCI bridge. This may enable additional virtual bridges to be hot plugged into the vPCI system at a later time. For example, a new virtual bridge can be added to the vPCI system using the parameter value for the vPCI bridge.
A method for fast evacuation of a cloned disk to a storage device includes a source storage device generating a first write volume, where new written data is stored in the first write volume. A destination storage device generates a second write volume, where the new written data is also stored. The destination storage device generates a delta volume in a cloned disk, which is also located in the destination storage device. Differences between a template volume and a modified template volume are stored to the delta volume. The destination storage device merges the template volume and the delta volume, creating a second modified template volume.
G06F 9/455 - Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
G06F 3/06 - Digital input from, or digital output to, record carriers
G06F 11/14 - Error detection or correction of the data by redundancy in operation, e.g. by using different operation sequences leading to the same result
G06F 11/20 - Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
A method performed by a physical computing system includes, with a first virtual entity manager of a first host machine, detecting an Address Resolution Protocol (ARP) request from a first virtual entity supported by the first virtual entity manager to a second virtual entity having a first logical address within a fan network. The method further includes, with the first virtual entity manager, translating the first logical address to a second logical address and transmitting the ARP request to a second host machine using a physical address resolved from the second logical address, the second host machine supporting the second virtual entity. The method further includes receiving a response to the ARP request, the response including a virtualized physical address of the second virtual entity. The method further includes with the first virtual entity manager, forwarding a data packet from the first virtual entity to the virtualized physical address.
H04L 29/12 - Arrangements, apparatus, circuits or systems, not covered by a single one of groups characterised by the data terminal
H04L 61/103 - Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
H04L 41/00 - Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
G06F 9/455 - Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
H04L 101/622 - Layer-2 addresses, e.g. medium access control [MAC] addresses
A hypervisor receives, from a guest virtual machine, a request to disable access to a memory range. The hypervisor disables access to the memory range. The hypervisor detects a prohibited access attempt. The prohibited access attempt is an access attempt to the memory range. Responsive to detecting the prohibited access attempt, the hypervisor stops the guest virtual machine. The hypervisor receives a request to reboot the guest virtual machine. The hypervisor reboots the guest virtual machine. Responsive to rebooting the guest virtual machine, the hypervisor enables access to the memory range.
A system and method for programming a timer in a virtualized system are disclosed. In accordance with one embodiment, a virtual machine executed by a processing device detects a need to request an interrupt at a first time and reads, from the first memory location, a second time that is associated with a next interrupt of the physical host machine scheduled by a hypervisor executed by the processing device. The virtual machine determines whether the first time is less than the second time. Responsive to the first time being less than the second time, the virtual machine transfers execution control to the hypervisor. Responsive to the first time not being less than the second time, the virtual machine stores the first time in a second memory location that is writeable by the virtual machine.
A mechanism for provisioning a composite web application using secure parameter transfer is disclosed. The composite web application includes a component that resides on a virtual machine (VM). A request is received from the component for a configuration parameter that is to enable periodic reconfiguration of the VM. An access condition is identified for accessing the configuration parameter and responsive to determining the access condition is satisfied, the requested configuration parameter is provided to the component. The VM is reconfigured using the requested configuration parameter.
G06F 11/14 - Error detection or correction of the data by redundancy in operation, e.g. by using different operation sequences leading to the same result
In an example, a method includes copying a base state of a virtual machine from a source volume to a destination volume, the destination volume having a physical capacity and a virtual capacity, the virtual capacity being larger than the physical capacity, and including a plurality of storage blocks. The method further includes, in response to an instruction to write data to the destination volume, writing the data to at least a first storage block in the plurality of storage blocks and setting a primary flag included in metadata stored on the destination volume from a first state to a second state, where the primary flag is associated with the first storage block. The method further includes subsequently reading a state of the primary flag to determine that data in the first storage block no longer form part of the base state of the virtual machine.
G06F 9/455 - Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
G06F 5/14 - Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
69.
Avoiding errors while directly communicatively coupling a virtual machine to a host system
A mechanism for managing virtual machines in a virtualization system is disclosed. A method of implementation of the disclosure includes a virtual manager determining that there is a requirement to provide direct communicative coupling between a virtual machine executed by a first host system and one of a plurality of host systems. A second host system from the plurality of host systems is selected responsive to configuration information for the second host system at least partially matching configuration information for the first host system and a network entity associated with the second host system being free of network traffic for a threshold period of time. The virtualization manager provides direct communicative coupling between the second host system and the virtual machine via the network entity.
Implementations of the disclosure describe manageable external wake of virtual machines. In one implementation, a method of the disclosure includes receiving, by a processor of a computer system, a message generated by a hardware device of the computer system while a virtual machine that is hosted by the computer system is asleep. The method further includes determining, by the processor, whether to wake the virtual machine in view of a hardware event of the hardware device that generated the message.
A system and method of discovering and mitigating out-of-sync network parameters. The method may include receiving, via a graphical user interface (GUI), a confirmation of validity of a value for a parameter of a set of parameters of a logical network associated with a host computing system. The method may also include setting, by a processing device, a validity attribute of the logical network responsive to ascertaining validity of remaining parameters of the set of parameters.
Systems and methods for implementing guest-initiated announcement of virtual machine migration. An example method may comprise: receiving, by an origin hypervisor running on an origin computer system, a migration announcement of a virtual machine; copying at least a part of a state of the virtual machine to a destination computer system; and responsive to stopping the virtual machine on the origin computer system, causing a destination hypervisor running on the destination computer system to broadcast the migration announcement over a network associated with the destination computer system.
A method includes receiving, by a processing device of a monitoring node, an indication over a network that a virtual machine successfully migrated from a first host to a second host. The indication includes a virtual machine address of the virtual machine executing on the second host. The method also includes, responsive to the indication that the virtual machine successfully migrated from the first host to the second host, starting to monitor incoming packets of the monitoring node for an incoming packet that includes a source address field having the virtual machine address, and, upon determining, after a threshold period of time, that none of the incoming packets include the source address field having the virtual machine address, notifying a reporting node that the incoming packet was not received to facilitate performance of an action to reduce downtime of communication with the virtual machine over the network.
Mechanisms for detaching a thin-provisioned virtual machine (VM) from a VM template are disclosed. A request to detach a thin-provisioned VM from a VM template is received. The thin-provisioned VM is linked to the VM template and has at least one delta volume that is linked to a volume of the VM template. For each delta volume of the thin-provisioned VM, a corresponding merged volume is caused to be generated that is not linked to the VM template and that comprises contents of the delta volume and contents of the volume of the VM template to which the delta volume is linked. VM configuration data is altered to indicate that the thin-provisioned VM is an independent VM that is no longer linked to the VM template.
A hypervisor may identify that a virtual machine has been migrated to the hypervisor from another hypervisor. In response to identifying that the virtual machine has been migrated, the hypervisor may provide a notification message including one or more network addresses associated with the migrated virtual machine. The hypervisor may receive network traffic data and determine that the received network traffic data corresponds to a response message for at least one of the one or more network addresses associated with the migrated virtual machine. The hypervisor may determine that each of the one or more network addresses has not received the response message and provide a subsequent notification message.
An indication that a virtual machine has been migrated may be received. In response to receiving the indication, one or more network addresses associated with the virtual machine may be identified. A notification message corresponding to the one or more network addresses may be generated. The notification message may be transmitted on networks for the one or more network addresses. The virtual machine may determine whether a response message has been received for each of the one or more network addresses. The virtual machine may transmit a subsequent notification message in view of determining that at least one response message has not been received for at least one of the one or more network addresses.
G06F 15/16 - Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
H04L 29/08 - Transmission control procedure, e.g. data link level control procedure
H04L 29/12 - Arrangements, apparatus, circuits or systems, not covered by a single one of groups characterised by the data terminal
G06F 9/455 - Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
A host system executing multiple virtual machines that is associated with multiple storage domains may be identified. Storage domain data may be received that includes utilization of each of the multiple storage domains by the multiple virtual machines. It may be determined that the utilization of a first storage domain of the multiple storage domains by the virtual machines satisfies a threshold utilization. In response to determining that the utilization of the first storage domain satisfies the threshold utilization, a second storage domain may be identified in view of a storage domain rank. An instruction may be provided to cause a storage migration of a virtual machine from the first storage domain to the identified second storage domain.
Systems and methods for discovering and provisioning computing devices within a computing environment. An example method may comprise: loading a first kernel from a removable storage, wherein the first kernel identifies device information of the computing device when executed; transmitting a provisioning request comprising the device information to a provisioning device over a network; receiving provisioning data and a second kernel over a network, the second kernel comprising an operating system installer; and overwriting the first kernel with the second kernel.
G06F 21/57 - Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
H04L 29/06 - Communication control; Communication processing characterised by a protocol
A system and method for enabling hot-plugging of devices in virtualized systems. A hypervisor obtains respective values representing respective quantities of a resource for a plurality of virtual root buses of a virtual machine (VM). The hypervisor determines a first set of address ranges of the resource that are allocated for one or more virtual devices attached to at least one of the plurality of virtual root buses. The hypervisor determines, in view of the first set of allocated address ranges, a second set of address ranges of the resource available for attaching one or more additional virtual devices to at least one of the plurality of virtual root buses. The hypervisor assigns to the plurality of virtual root buses non-overlapping respective address ranges of the resource within the second set.
Methods, systems, and computer program products are included for loading a code module. A method includes verifying, by a guest, a digital signature of a code module stored in an initial guest memory buffer. The guest copies the verified code module stored at the initial guest memory buffer into a target guest memory buffer and applies, using one or more symbol entries, one or more relocations to the verified code module stored at the target guest memory buffer. The guest sends a request to a hypervisor to set the target guest memory buffer to a write-protect mode. In response to a determination that first content stored in the initial guest memory buffer corresponds to second content stored in the target guest memory buffer, the guest sends a request to the hypervisor to set the target guest memory buffer to an executable mode.
G06F 21/00 - Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
H04L 9/32 - Arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system
G06F 9/455 - Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
A method includes receiving a request to perform a virtual machine (VM) copy operation that copies the VM from a source to a target location. The VM includes a hierarchy of storage components in levels. The operation includes a first and second sub-operation for each storage component at a lowest level in the hierarchy. The method includes transmitting a VM copy instruction, identifying a weight assigned to each storage component in the hierarchy, the weight based on a property of a storage component. The weight of the storage component at the lowest level is divided into first and second weight portions. The method also includes receiving a completion percentage for the sub-operations, determining an overall completion progress percentage of the operation using the sub-operation completion percentages and the weight portions for each storage component at the lowest level, and transmitting the overall completion percentage.
Implementations are described for guest controlled virtual device packet filtering. A method of the disclosure includes receiving, at a guest operating system (OS) of a virtual machine executed by a processing device of a host machine, a notification of a host configuration change from a hypervisor of the host machine, the host configuration change affecting routing of networking packets corresponding to the virtual machine over a network, implementing, by the guest OS, configuration changes to a guest OS environment, the configuration changes corresponding to the host configuration change, and in response to implementing the configuration changes, notifying, by the virtual machine, the hypervisor that network packet filtering of the networking packets can be disabled.
A method includes identifying a set of tests for a source code, analyzing the set of tests to identify overlapping blocks of the source code that are to be tested by each of the set of tests, merging a subset of the tests that include the overlapping blocks of the source code to create a merged test, and causing the merged test to be executed to test the source code. In an implementation, code coverage results are used when analyzing the set of tests to identify overlapping blocks of the source code.
Systems and methods for disabling in-memory caching of a virtual machine during migration are disclosed. An example method may include receiving, at a migration agent of a source host machine, a request to migrate a virtual machine (VM) hosted by the source host machine to a destination host machine, determining that a migration caching attribute of the VM is enabled, instructing a VM agent executing on the VM to disable caching of the VM in view of determining that the migration caching attribute of the VM is enabled, receiving acknowledgment of successful disablement of caching on the VM, and responsive to receiving the acknowledgment, initiating migration of the VM from the source host machine to the destination host machine.
A request to install a virtual hardware component on a virtual machine that is executed by a first hypervisor may be received. A network that the virtual hardware component is to operate on may be identified and a determination may be made that the first hypervisor does not support the network that the virtual hardware component is to operate on. Furthermore, a second hypervisor that supports the network that the virtual hardware component is to operate on may be identified. In response to identifying the second hypervisor that supports the network, the virtual machine may be migrated from the first hypervisor to the second hypervisor for execution by the second hypervisor.
A system and method for configuring components added to a network is disclosed. The method includes receiving, by a device associated with a network in a cluster including a plurality of host machines, a set of configuration settings for the network, and configuring a network connection of the device using the set of configuration settings for the network. The method further includes generating a message including the set of configuration settings for the network and periodically broadcasting the message on the network to provide the set of configuration settings to a hypervisor that is configuring a corresponding network connection on a host machine from the cluster.
A system and method for copy based IOMMU emulation for out-of-process emulated device includes a memory, one or more physical processors, a virtual machine having a guest and a guest memory, and a hypervisor executing on the physical processors. In an example, the hypervisor receives a request from the guest to grant access of a virtual device to a guest memory page when the guest memory is mapped to a private memory. The virtual device is mapped to a shared memory. The virtual device has access to the guest memory while the guest memory is mapped to the shared memory. The hypervisor copies data in a private memory page to a shared memory page in response to receiving the request. Then, the hypervisor maps the guest memory page to the shared memory page, which grants the virtual device access to the guest memory page.
An example method of providing a crash dump file upon a crash of a guest OS includes receiving, by a hypervisor, a notification that a guest OS running on a virtual machine has crashed. The notification is from the guest OS, and the virtual machine and the hypervisor run on a host machine. The method also includes in response to receiving the notification, writing, by the hypervisor, a crash dump file associated with the guest OS crash to a host file system of the host machine.
Inter-process data transfer on a host computing device is disclosed. A kernel module executing on the host computing device receives, from a first process, buffer registration information that identifies a virtual address of a receive buffer and a length of the receive buffer. The kernel module determines a first physical memory address that corresponds to the virtual address of the receive buffer. The kernel module receives, from a second process, a send request to send data to the first process, the send request including a virtual address of a send buffer, a length of the data, and a destination identifier that is associated with the receive buffer. The kernel module determines a second physical memory address that corresponds to the virtual address of the send buffer and transfers the data directly from the second physical memory address to the first physical memory address.
An example method of sharing message-signaled interrupt vectors in multi-processor computer systems comprises: associating an interrupt vector with a first device component, by creating a first interrupt mapping entry of an interrupt mapping table, wherein the first interrupt mapping entry references a first processor and the interrupt vector; associating the interrupt vector with a second device component, by creating a second interrupt mapping entry of the interrupt mapping table, wherein the second interrupt mapping entry references a second processor and the interrupt vector; and creating, in an interrupt descriptor table (IDT) associated with the first processor and the second processor, an interrupt descriptor for the interrupt vector.
A method and system for suspending operation of a virtual machine executed by a processing device of a host computing system. The method and system include storing state information of the virtual machine to a memory of the guest operating system. A notification is sent to an application of the virtual machine to enable the application to flush data prior to suspension of the operation of the virtual machine. Upon receipt of a confirmation that the state information is stored in the memory of the guest operating system, the state information is migrated to storage of the host computing system.
Responsive to receiving a first request from an application to create a thread for the application, a guest operating system sends a first notification to a hypervisor to create a dedicated virtual processor for the thread. Responsive to receiving an identifier associated with the dedicated virtual processor from the hypervisor, the guest operating system starts the thread using the dedicated virtual processor, and pins the thread to the dedicated virtual processor.
A method includes, with a hypervisor, receiving a first request from a guest to write a first piece of data to a first memory location within a kernel code page. The method further includes determining that the first request triggers a violation based on a kernel protection mechanism, and in response to determining that the first request triggers the violation, determining that the first piece of data includes a breakpoint. The method further includes, in response to determining that the first piece of data includes the breakpoint, copying a second piece of data currently stored at the first memory location to a second memory location within non-guest writeable memory and overwriting the first memory location with the first piece of data.
A vehicle navigation system may receive, from an external computer system, a first route to a destination from a current position of the vehicle navigation system. A current speed of the vehicle navigation system as the vehicle navigation system travels on the first route may be provided to the external computer system. The vehicle navigation system may receive, from the external computer system, other routes to the destination that begin from a starting point that corresponds to an anticipated deviation from the first route located at least a defined distance from the vehicle navigation system. A graphical user interface of the vehicle navigation system may be caused to display a second route of the other routes based on a current deviation of the vehicle navigation system from the first route.
Systems and methods for asynchronous mapping of a hot-plugged I/O device associated with a virtual machine. An example method comprises: executing, by a host computer system, a virtual machine managed by a hypervisor; responsive to detecting hot-plugging of an input/output (I/O) device, pinning a memory buffer associated with the I/O device; and responsive to receiving a signal indicating completion of pinning the memory buffer, notifying the virtual machine of the I/O device being hot-plugged.
Systems and methods for hypervisor cloning. An example method may comprise: receiving a request to install and configure cloned hypervisors on host systems, wherein, for each of the cloned hypervisors, the request comprises identification information for each of the cloned hypervisors; identifying, via the virtualization manager, an existing hypervisor installed on another host system, the existing hypervisor operating in a satisfactory state and having a set of configuration parameters; and transmitting one or more clone commands to the host systems in view of the identification information for each of the cloned hypervisors, wherein each of the clone commands causes a respective host system to install and configure one of the cloned hypervisors according to the set of configuration parameters of the existing hypervisor.
Various examples are directed to systems and methods for utilizing a memory-mapped I/O channel. A first application may request that a message be sent to a channel counterparty. A message driver may receive from the first application the request to send the message, where the request comprises payload data from the message. The message driver may write a work request to a send queue of a first queue pair at the first memory location. An emulated channel adapter may poll a physical address at a memory device corresponding to the first memory location; determine that the work request is present at the send queue, and send the payload data to the channel counterparty.
A system and method for lightweight thread synchronization using a shared memory state includes exposing, by an operating system executing on one or more processors, a memory mapping interface. The one or more processors may execute a first thread and a second thread. A supervisor in the operating system may map a memory page storing an execution state of the first thread to a memory location accessible by the second thread. The first thread may be configured to store at least one request in a shared memory. The second thread may be configured to poll the shared memory to execute the at least one request stored in the shared memory. Then, the supervisor may update the execution state of the first thread stored in the memory page. The execution state may be either a working state or a not-working state.
A system and method for efficient virtual machine memory monitoring with hyper-threading includes executing, by a hypervisor executing on a plurality of physical processors, a virtual central processor unit (VCPU) of a virtual machine on a first hyper-thread. The plurality of physical processors include a first physical processor having the first hyper-thread and a second hyper-thread. The virtual machine executes on the first hyper-thread. Then, the second hyper-thread executes a memory monitoring instruction on a designated range of a shared memory to cause the second hyper-thread to stop executing. Then, a guest in the virtual machine updates the designated range of the shared memory by storing a first request in the designated range of the shared memory to wake up the second hyper-thread.
A hypervisor detects a virtual device configured by a virtual machine, generates a para-virtualized networking interface between the virtual device and a memory space within hypervisor memory, maps the memory space to a peripheral component interconnect (PCI) memory space of the virtual machine, and configures the memory space to be accessible to a physical device via direct memory access (DMA), where the physical device is associated with the virtual device of the virtual machine. The hypervisor then transfer packets between the virtual machine and the physical device using the para-virtualized networking interface.
G06F 12/1081 - Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
G06F 13/28 - Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access, cycle steal
G06F 13/42 - Bus transfer protocol, e.g. handshake; Synchronisation
G06F 9/455 - Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
G06F 12/109 - Address translation for multiple virtual address spaces, e.g. segmentation
G06F 13/10 - Program control for peripheral devices