Patent application number | Description | Published |
20080267177 | Method and system for virtualization of packet encryption offload and onload - A method for processing a packet includes receiving the packet in a network interface card (NIC), obtaining a first classification for the packet, placing the packet in one of a first plurality of receive rings based on the first classification, obtaining a security association (SA) from one of a plurality of security association database (SADB) partitions, decrypting the packet using the SA, obtaining a security policy (SP) from one of a plurality of security policy database (SPD) partitions, determining an admittance of the packet based on the SP, obtaining a second classification for the packet based on the admittance, placing the packet in one of a second plurality of receive rings based on the second classification, and sending the packet to a host operatively connected to the NIC, wherein the packet is further processed by the host. | 10-30-2008 |
20080271134 | Method and system for combined security protocol and packet filter offload and onload - A network interface card (NIC) includes a security association database (SADB) comprising a plurality of security associations (SAs), a cryptographic offload engine configured to decrypt a packet using one of the plurality of SAs, a security policy database (SPD) comprising a plurality of security policies (SPs) and a plurality of filter policies, and a policy engine configured to determine an admittance of the packet using one of the plurality of SPs from the SPD and apply one of the plurality of filter policies to the packet. | 10-30-2008 |
20090006620 | Method and system for securing a commercial grid network over non-trusted routes - A method for securing a commercial grid network over non-trusted routes involves receiving, by an administrative node in the commercial grid network, a lease request from a client to lease one of multiple resource nodes in the commercial grid network, wherein the client is separated from the resource node by a non-trusted route. The method further involves transmitting, by the administrative node, a network security key associated with the client to the resource node, storing, by the resource node, the network security key in a network security key repository specific to the resource node, establishing, by the resource node, a secure network tunnel over the non-trusted route using the network security key, transmitting a network packet securely between the client and the resource node over the secure network tunnel, and destroying, by the resource node, the secure network tunnel when a lease term associated with the client and the resource node expires. | 01-01-2009 |
20090086650 | METHOD AND SYSTEM FOR CONSERVING POWER BY DEGRADING NETWORK CONNECTION SPEED - In general, in one aspect, the invention relates to a method for conserving power. The method includes determining a first network connection speed for a network interface card (NIC), configuring the NIC to operate at the first network connection speed, processing, after the configuration, packets received by the NIC, obtaining a bandwidth utilization of the NIC, determining, using a power management policy, a second network connection speed for the NIC based on the bandwidth utilization when the bandwidth utilization is outside a threshold range, and configuring the NIC to operate at the second network connection speed. | 04-02-2009 |
20090089343 | METHOD AND SYSTEM FOR BLOCK ALLOCATION FOR HYBRID DRIVES - A method for priority-based allocation in a storage pool, involving receiving a first request to write a first data item in the storage pool, wherein the storage pool includes a first hybrid drive including a first plurality of metaslabs associated with a first storage type and a second plurality of metaslabs associated with a second storage type, selecting a first target metaslab from the first and second plurality of metaslabs based on a first plurality of allocation priorities, wherein the first plurality of allocation priorities are determined using a storage and power management policy, a storage characteristic, and a power characteristic associated with the first storage type and the second storage type in the first hybrid drive, allocating a first block to the first target metaslab, and writing the first block to the first target metaslab, wherein the first block includes a first portion of the first data item. | 04-02-2009 |
20090089351 | METHOD AND SYSTEM FOR ONLOADING NETWORK SERVICES - In general, the invention relates to a method for processing packets. The method includes receiving a first packet by a network interface card (NIC) connected to a host, classifying the first packet using a classifier, sending the first packet to a receive ring based on a classification of the first packet by the classifier, and sending the first packet from the receive ring to a first virtual network interface card (VNIC) located on the host. The method further includes determining, using a first policy associated with the first VNIC, whether to process the first packet using offload hardware. When the first packet is to be processed using the offload hardware, the method includes sending the first packet to the offload hardware, receiving a first processed packet from the offload hardware by the first VNIC and sending the first processed packet from the first VNIC to a first packet destination. | 04-02-2009 |
20090089531 | METHOD AND SYSTEM FOR MEMORY MANAGEMENT - A method for memory management that includes receiving a request for memory space, identifying a first memory module from a plurality of memory modules based on a first memory power management policy, wherein the first memory power management policy specifies how to allocate memory space in the plurality of memory modules to satisfy a power consumption criteria, and allocating the memory space on the first memory module. | 04-02-2009 |
20090089745 | METHOD AND APPARATUS TO AUTOMATICALLY IDENTIFY SPECIFIC CODE CHANGES TO PROBABILISTICALLY EXCLUDE FROM REGRESSION - Techniques for efficiently isolating software regressions are provided. In one embodiment, it is determined that a particular regression is present in a particular build of a software system. A set of candidate code components that may have caused the particular regression is identified. In accordance with an order established based on historical data for the software system, one or more intermediate builds each involving some subsets of the candidate code components may be tested to identify a set of suspect code components that caused the particular regression. For each candidate code component that is not in the set of suspect code component, a likelihood factor associated with that candidate code component is decremented. | 04-02-2009 |
20090089755 | Method and Apparatus to Increase Efficiency of Automatic Regression In "Two Dimensions" - Techniques for efficiently isolating software regressions are provided. A system test tool determines that a particular regression is present in a particular build of a software system, but not in a baseline build. Using historical data, the tool determines, for each of a plurality of intermediate builds between these two builds, a likelihood that that intermediate build introduced the particular regression. A particular intermediate build can be identified as a build to be tested. Here, the particular intermediate build comprises a plurality of layered putbacks, each of which putbacks comprises one or more code changes in the software system. The tool determines, for each putback, a likelihood that that putback introduced the particular regression. A particular putback in the plurality of putbacks may be selected as a putback to be tested. In some embodiments, the particular putback is the putback that has the greatest likelihood of introducing the particular regression. | 04-02-2009 |
20090089780 | METHOD AND APPARATUS TO CONVEY PHYSICAL RESOURCE RELATIONSHIPS - In general, embodiments of the invention relates to a method for conveying hardware resources from a host (OS) executing on a computer system. The method includes obtaining host hardware information by the host OS, wherein the host hardware information specifies a plurality of physical hardware components of the computer system, sending the host hardware information to a guest OS executing within the host OS, generating, by the guest OS, a resource request using the host hardware information, sending, by the guest OS, the resource request to the host OS, and in response to receiving the resource request, allocating, by the host OS, guest hardware resources, where the guest hardware resources include at least one of the physical hardware components in the resource request. | 04-02-2009 |
20090089782 | METHOD AND SYSTEM FOR POWER-MANAGEMENT AWARE DISPATCHER - In general the invention relates to a system. The system includes processors each having a processing state. The system further includes a dispatcher operatively connected to the plurality of processors and configured to: receive a first thread to dispatch, select one of the processors to dispatch the thread to based on the processing state the processors and a power management policy, and dispatch the thread to the selected one of the plurality of processors. | 04-02-2009 |
20090089792 | METHOD AND SYSTEM FOR MANAGING THERMAL ASYMMETRIES IN A MULTI-CORE PROCESSOR - In general, the invention relates to a system that includes a multi-core processor and a dispatcher operatively connected to the multi-core processor. The dispatcher is configured to receive a first plurality of threads during a first period of time, dispatch the first plurality of threads only to a first core of the plurality of cores, receive a second plurality of threads during a second period of time, dispatch the second plurality of threads only to a second core of the plurality of cores, migrate to the second core any of the first plurality of threads that are still executing on the first after the first period of time has elapsed. The duration of the first period of time and the duration of the second period of time are determined using a thread migration schedule, and thread migration schedule is determined using at least one thermal characteristic of the multi-core processor. | 04-02-2009 |
20090265519 | METHOD AND SYSTEM FOR POWER AWARE I/O SCHEDULING - A method for retrieving a logical block, including receiving a request to read the logical block, and obtaining metadata associated with the logical block, wherein the metadata includes a replication type used to store the logical block and physical block locations in a storage pool for each physical block associated with the logical block. The method further includes obtaining power state information including a power state for the storage devices specified in the physical block locations, selecting a first set of physical block locations using the metadata, the power state information, and a power-usage selection policy, and generating I/O requests, where each I/O request specifies one of the first set of physical block locations. The method further includes issuing the I/O requests, receiving physical blocks in response to the I/O requests, and constructing the logical block using the physical blocks. | 10-22-2009 |
20090268611 | METHOD AND SYSTEM FOR BANDWIDTH CONTROL ON A NETWORK INTERFACE CARD - A method for bandwidth control on a network interface card (NIC), the method that includes initiating a current time period, receiving a plurality of incoming packets for a receive ring, populating, by a NIC, the receive ring with the plurality of incoming packets according to a size of the receive ring during the current time period, wherein the size of the receive ring is based on an allocated bandwidth for the receive ring, and sending, by the NIC, the plurality of incoming packets to a host when a duration of the current time period elapses, wherein the duration is based on the allocated bandwidth for the receive ring. | 10-29-2009 |
20090300299 | Dynamic Interleaving - Methods and apparatus provide for a Dynamic Interleaver to modify the interleaving distribution spanning physical memory modules. Specifically, dynamic interleaving provides the ability to increase the number of interleaved physical memory modules when a current interleaved group of memory locations is experiencing heavy use. By increasing the number of interleaved memory locations, a system can make optimal use of memory by allowing more parallel accesses to physical memory during the period of heavy utilization. However, if the current interleaved group of memory locations experience low use, the Dynamic Interleaver can choose to interleave across fewer physical memory modules and apply power management techniques to those memory locations that are no longer being accessed. Prior to “re-interleaving” interleaved memory locations, the Dynamic Interleaver migrates data out of the current interleaved memory locations. After re-interleaving, the Dynamic Interleaver maps the data back into the re-interleaved memory locations. | 12-03-2009 |
20090320000 | METHOD AND SYSTEM FOR POWER MANAGEMENT USING TRACING DATA - A method for power managing hardware. The method includes determining hardware to power manage, sending a tracing request from a power management control to a tracing framework to obtain usage data of the hardware, and identifying a first probe to obtain first tracing data corresponding to the usage data in a first hardware control software component, where the first hardware control software is configured to interact with the hardware. The method further includes enabling the first probe, obtaining the first tracing data from the first probe, where the first tracing data is obtained when the first probe is encountered during execution of the first hardware control software, and modifying operation of the hardware using the first tracing data. | 12-24-2009 |
20090327602 | METHOD AND SYSTEM FOR MANAGING WEAR-LEVEL AWARE FILE SYSTEMS - A method for wear level-based allocation in a storage pool. The method includes receiving a first request to write a first data item in a storage pool, where the storage pool includes a number of physical locations associated with the storage devices, and where each of the storage devices includes metadata regarding a level of wear of the storage device. The method further includes determining a first target physical location selected from the plurality of physical locations by using a wear-level selection policy and a wear cost for each of the storage devices, where the wear cost is determined based on a type of the storage device. The method further includes allocating a first data block to the first target physical location writing the first data block to the first target physical locations, wherein the first data block comprises a first portion of the first data item. | 12-31-2009 |
20100332883 | METHOD AND SYSTEM FOR EVENT-BASED MANAGEMENT OF RESOURCES - A system for dispatching a thread to a resource obtains a thread and utilization data for all resources. The system determines if there is a thread-resource affinity. The system uses thread-resource affinity to identify a resource and a timestamp for when the thread last completed executing on the resource. The system determines if the resource qualifies under a dispatch policy. The system uses utilization data to determine a timestamp for when the resource last transitioned to a not powered state. When the second timestamp precedes the first timestamp, the system dispatches the thread to the resource and generates a power management event. The system determines if the power management event satisfies a throttle policy. The system discards the power management event when throttle policy is unsatisfied and determines whether to adjust the current power state of the resource based on the power management event when throttle policy is satisfied. | 12-30-2010 |
20100333097 | METHOD AND SYSTEM FOR MANAGING A TASK - A computer readable storage medium including executable instructions for managing a task. Instructions include receiving a request. Instructions further include determining a task corresponding with the request using a request-to-task mapping. Instructions include obtaining a task entry corresponding with the task from a task store, where the task entry associates the task with an action and a predicate for performing the action. Instructions further include creating a task object in a task pool using the task entry. Instructions further include receiving an event notification at the task engine, where the event notification is associated with an event. Instructions further include determining whether the predicate for performing the action is satisfied by the event. Instructions further placing the task object in a task queue when the predicate for performing the action is satisfied by the event. | 12-30-2010 |
20100333113 | METHOD AND SYSTEM FOR HEURISTICS-BASED TASK SCHEDULING - A computer readable storage medium including executable instructions for heuristics-based task scheduling. Instructions include receiving a first event notification associated with a first event, where the first event is determined from the first event notification. Instructions further include determining whether a predicate for an action is satisfied by the first event, where the action predicate, the action, and an action parameter are associated with a task object in a task pool. Instructions further include obtaining the action parameter when the action predicate is satisfied by the first event, where a priority is assigned using a heuristics policy to the task object based on the action parameter. Instructions further include inserting the task object into a task queue using the assigned priority. The action associated with the task object is performed by an execution thread. The performance of the action is a second event associated with a second event notification. | 12-30-2010 |
20110173426 | METHOD AND SYSTEM FOR PROVIDING INFORMATION TO A SUBSEQUENT OPERATING SYSTEM - A method for transferring execution to a subsequent operating system. The method includes rebooting a computer system. Rebooting the computer system includes initializing an in-kernel boot loader. The in-kernel boot loader executes in a kernel of an initial operating system. Rebooting the computer system further includes populating, by the in-kernel boot loader, an initialization data structure using system data gathered during the execution of the initial operating system, loading, by the in-kernel boot loader, the subsequent operating system, and transferring control of the computer system from the initial operating system to the subsequent operating system. The subsequent operating system accesses the initialization data structure to identify available hardware. The method further includes executing the subsequent operating system on the available hardware of the computer system. | 07-14-2011 |
20110178997 | METHOD AND SYSTEM FOR ATTRIBUTE ENCAPSULATED DATA RESOLUTION AND TRANSCODING - A computer readable medium having software instructions that, when executed, perform a method for preserving data stored in a file system with a plurality of files. The method involves determining whether storage capacity of the file system has reached a threshold level, wherein the threshold level is stored in at least one of a plurality of size-reducing policies, obtaining a criterion from the at least one size-reducing policy, identifying a subset of the plurality of files that match the criterion, accessing metadata of each of the identified subset of files, wherein the metadata of each of the identified subset of files comprises at least one option for reducing a size of the file, and performing a size-reducing action to reduce a size of each of the identified subset of files based on the option for reducing the size of each of the identified subset of files and the criterion. | 07-21-2011 |
20110179424 | METHOD AND SYSTEM FOR SELF-TUNING OF HARDWARE RESOURCES - A system for self-tuning hardware resources includes a processor, a hardware resource, an operating system (OS), a metric monitoring unit (MMU), and a configuration engine (CE). The OS determines: the hardware resource; a metric for monitoring the hardware resource; a hardware resource management policy for the hardware resource; and a primary and secondary sub-ranges for the metric. The OS sends a hardware resource management policy directive to the CE. The MMU monitors the hardware resource to obtain data for the metric. The CE receives the hardware resource management policy directive, determines the primary and secondary sub-ranges from the hardware resource management policy directive, obtains data for the metric from the MMU. When data is outside the primary sub-range and inside the secondary sub-range, the CE determines and executes a hardware resource optimization routine to bring hardware resource utilization into compliance with the primary sub-range. | 07-21-2011 |
20130044759 | N-WAY ROUTING PACKETS ACROSS AN INTERMEDIATE NETWORK - A system and method for routing packets. The method includes receiving a first packet from an intermediate network by a first network interface card (NIC) operatively connected to a host, where the first packet originates from a first remote network, where the first NIC is operatively connected to the intermediate network, and where the first packet, the intermediate network, and the first NIC use a first network protocol. The method further includes classifying, by the first NIC, the first packet based on the first remote network, sending the first packet to a first receive ring in the first NIC, sending the first packet from the first receive ring to a first non-global container, and converting the first packet, using a first converter located in the first non-global container, to obtain a first converted packet, where the first converted packet and the first remote network use a second network protocol. | 02-21-2013 |
20140208330 | METHOD AND APPARATUS FOR EFFICIENT SCHEDULING OF MULTITHREADED PROGRAMS - In general, the invention relates to a non-transitory computer readable medium comprising instructions, which when executed by a processor perform a method. The method includes obtaining lock overhead times for a plurality of threads, generating a set of thread groups, wherein each of the plurality of threads is assigned to one of the plurality of thread groups based on the lock overhead times, allocating at least one core of a multi-core system to each of the plurality of thread groups, and assigning a time-quantum for each of the plurality of thread groups, wherein the time-quantum for each of the plurality of thread groups corresponds to an amount of time that threads in each of the plurality of thread groups can execute on the at least one allocated core. | 07-24-2014 |