Patents by Inventor Darrin P. Johnson

Darrin P. Johnson has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7668175
    Abstract: Methods and apparatus for managing a pool of I/O interfaces associated with one or more I/O devices are disclosed. The I/O bandwidth utilization of the I/O devices is ascertained and compared with an upper threshold and a lower threshold. When the I/O bandwidth utilization is greater than the upper threshold, the resources provided by the pool of I/O interfaces are increased. When the I/O bandwidth utilization is less than the lower threshold, the resources provided by the pool of I/O interfaces are decreased.
    Type: Grant
    Filed: November 22, 2005
    Date of Patent: February 23, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Darrin P. Johnson, Sunay Tripathi, Randall S. Fishel
  • Patent number: 7649902
    Abstract: One embodiment of the present invention provides a system that facilitates buffering data at a kernel in a computer system, wherein the data is buffered based on the structure of a message contained in the data. The system operates by receiving data at a computer system from an external source. Next, the system buffers the data at a kernel on the computer system. As the system buffers the data, the system also determines if the buffered data constitutes a complete message as defined by a communication protocol. If so, the system forwards the buffered data to an application on the computer system.
    Type: Grant
    Filed: November 22, 2006
    Date of Patent: January 19, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Bruce W. Curtis, Darrin P. Johnson, Bart Smaalders
  • Publication number: 20090323691
    Abstract: A method for processing packets. The method includes receiving a first packet by a first socket on a host, determining by the first socket to process the first packet using a first virtual Transmission Control Protocol offload engine (VTOE), transmitting the first packet to the first VTOE, wherein transmitting the first packet to the first VTOE bypasses a first virtual network stack interposed between the first socket and first VTOE, transmitting the first packet to a HW TOE operatively connected to the host, processing the first packet, using the HW TOE, to obtain a first processed packet; and transmitting the first processed packet to a network operatively connected to the HW TOE, where the HW TOE is associated with the first VTOE and a second VTOE in the host.
    Type: Application
    Filed: June 30, 2008
    Publication date: December 31, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Darrin P. Johnson, Kais Belgaied
  • Publication number: 20090327602
    Abstract: 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.
    Type: Application
    Filed: June 30, 2008
    Publication date: December 31, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: William H. Moore, Darrin P. Johnson, Eric C. Saxe
  • Publication number: 20090320000
    Abstract: 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.
    Type: Application
    Filed: June 19, 2008
    Publication date: December 24, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Eric C. Saxe, Darrin P. Johnson, Jonathan J. Chew
  • Patent number: 7633864
    Abstract: A method for routing a packet. The method includes receiving the packet from a first network into a network interface card (NIC), where the NIC is operatively connected to a host and the host includes a first virtual network stack and a second virtual network stack. The method further includes sending the packet to a first virtual network stack, where the first virtual network stack includes a first filter, a first network layer, and a first transport layer. In addition, the first filter, the first network layer, and the first transport layer are isolated from the second virtual network stack. If the packet is permitted through the first filter in the first virtual network stack, then the packet is sent to a first virtual NIC.
    Type: Grant
    Filed: December 20, 2006
    Date of Patent: December 15, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Darrin P. Johnson, Darren J. Reed, Erik Nordmark
  • Publication number: 20090300299
    Abstract: 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.
    Type: Application
    Filed: May 30, 2008
    Publication date: December 3, 2009
    Inventors: Eric C. Saxe, Sherry Q. Moore, Darrin P. Johnson
  • Publication number: 20090268611
    Abstract: 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.
    Type: Application
    Filed: April 28, 2008
    Publication date: October 29, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Anders D. Persson, Cesar A. C. Marcondes, Darrin P. Johnson, Kais Belgaied
  • Publication number: 20090265519
    Abstract: 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.
    Type: Application
    Filed: April 18, 2008
    Publication date: October 22, 2009
    Applicant: Sun Microsystems, Inc.
    Inventors: William H. Moore, Darrin P. Johnson, George R. Wilson
  • Patent number: 7584229
    Abstract: A method for priority-based allocation in a storage pool involves receiving a request to write a data item in the storage pool, where the storage pool includes multiple metaslabs, and where each of the metaslabs includes a contiguous region of data. The method further involves determining a target metaslab selected from the multiple metaslabs by comparing multiple allocation priorities, where each of the allocation priorities is associated with one of the metaslabs, allocating a block to the target metaslab, and writing the block to the target metaslab, where the block includes a portion of the data item.
    Type: Grant
    Filed: October 31, 2006
    Date of Patent: September 1, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: William H. Moore, Darrin P. Johnson, Jeffrey S. Bonwick, Tabriz I. Holtz
  • Publication number: 20090097480
    Abstract: One embodiment of the present invention provides a system that parallelizes the TCP-related actions of a network connection between two computer systems during a data transfer between the two computer systems. During operation, the first computer system partitions the data into two or more data segments, and assigns the data segments to multiple processing elements. These multiple processing elements subsequently prepare and send their assigned data segments to the second computer system in parallel using TCP.
    Type: Application
    Filed: October 10, 2007
    Publication date: April 16, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Bruce W. Curtis, Darrin P. Johnson, James P. Hughes
  • Publication number: 20090086650
    Abstract: 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.
    Type: Application
    Filed: September 27, 2007
    Publication date: April 2, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: William H. Moore, Darrin P. Johnson, Randall S. Fishel
  • Publication number: 20090089531
    Abstract: 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.
    Type: Application
    Filed: September 27, 2007
    Publication date: April 2, 2009
    Applicant: Sun Microsystems, Inc.
    Inventors: Darrin P. Johnson, Eric C. Saxe, Sherry Q. Moore
  • Publication number: 20090089780
    Abstract: 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.
    Type: Application
    Filed: September 27, 2007
    Publication date: April 2, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Darrin P. Johnson, Eric C. Saxe, Jonathan J. Chew
  • Publication number: 20090089351
    Abstract: 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.
    Type: Application
    Filed: September 27, 2007
    Publication date: April 2, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Kais Belgaied, Darrin P. Johnson
  • Publication number: 20090089745
    Abstract: 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.
    Type: Application
    Filed: September 27, 2007
    Publication date: April 2, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Darrin P. Johnson, Damien Farnham, Fintan Ryan, Sean A. McGrath
  • Publication number: 20090089755
    Abstract: 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.
    Type: Application
    Filed: September 27, 2007
    Publication date: April 2, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Darrin P. Johnson, Damien Farnham, Fintan Ryan, Sean A. McGrath
  • Publication number: 20090089343
    Abstract: 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.
    Type: Application
    Filed: September 27, 2007
    Publication date: April 2, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: William H. Moore, Darrin P. Johnson, George R. Wilson
  • Publication number: 20090089792
    Abstract: 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.
    Type: Application
    Filed: September 27, 2007
    Publication date: April 2, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Darrin P. Johnson, Eric C. Saxe, Bart Smaalders
  • Publication number: 20090089782
    Abstract: 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.
    Type: Application
    Filed: September 27, 2007
    Publication date: April 2, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Darrin P. Johnson, Eric C. Saxe, Bart Smaalders