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: 9921960
    Abstract: A method for performing a deferred system dump includes storing a preservation list referencing physical memory addresses allocated to pages by an initial operating system executing on a computer system. The method further includes identifying a subset of the pages that are at least partially allocated below a first physical memory address, relocating the subset to new physical memory addresses above the first physical memory address, and updating the preservation list with the new physical memory addresses. The method further includes transferring control of the computer system from the initial operating system to a subsequent operating system. The subsequent operating system accesses the preservation list to identify preserved pages. The method further includes assigning each of the preserved pages to an address segment in an address space of the subsequent operating system, storing a subset of the preserved pages, and freeing the preserved pages.
    Type: Grant
    Filed: July 22, 2014
    Date of Patent: March 20, 2018
    Assignee: Oracle International Corporation
    Inventors: Darrin P. Johnson, Vladimir Kotal, Brian Ruthven, Christopher Beal
  • Patent number: 9280388
    Abstract: 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.
    Type: Grant
    Filed: April 30, 2013
    Date of Patent: March 8, 2016
    Assignee: Oracle International Corporation
    Inventors: Darrin P. Johnson, Kishore Kumar Pusukuri, Eric C. Saxe
  • Publication number: 20160026545
    Abstract: A method for performing a deferred system dump includes storing a preservation list referencing physical memory addresses allocated to pages by an initial operating system executing on a computer system. The method further includes identifying a subset of the pages that are at least partially allocated below a first physical memory address, relocating the subset to new physical memory addresses above the first physical memory address, and updating the preservation list with the new physical memory addresses. The method further includes transferring control of the computer system from the initial operating system to a subsequent operating system. The subsequent operating system accesses the preservation list to identify preserved pages. The method further includes assigning each of the preserved pages to an address segment in an address space of the subsequent operating system, storing a subset of the preserved pages, and freeing the preserved pages.
    Type: Application
    Filed: July 22, 2014
    Publication date: January 28, 2016
    Inventors: Darrin P. Johnson, Vladimir Kotal, Brian Ruthven, Christopher Beal
  • Publication number: 20140208330
    Abstract: 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.
    Type: Application
    Filed: April 30, 2013
    Publication date: July 24, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Kishore Kumar Pusukuri, Eric C. Saxe, Darrin P. Johnson
  • Patent number: 8762999
    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: Grant
    Filed: September 27, 2007
    Date of Patent: June 24, 2014
    Assignee: Oracle America, Inc.
    Inventors: Darrin P. Johnson, Eric C. Saxe, Jonathan J. Chew
  • Patent number: 8705545
    Abstract: 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.
    Type: Grant
    Filed: August 18, 2011
    Date of Patent: April 22, 2014
    Assignee: Oracle International Corporation
    Inventors: Darren J. Reed, Darrin P. Johnson
  • Patent number: 8683476
    Abstract: 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.
    Type: Grant
    Filed: June 30, 2009
    Date of Patent: March 25, 2014
    Assignee: Oracle America, Inc.
    Inventors: Eric C. Saxe, Darrin P. Johnson, William D. Holler
  • Patent number: 8516237
    Abstract: 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.
    Type: Grant
    Filed: January 12, 2010
    Date of Patent: August 20, 2013
    Assignee: Oracle America, Inc.
    Inventors: Sherry Qianhong Moore, Konstantin Ananyev, Darrin P. Johnson
  • Patent number: 8516503
    Abstract: 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.
    Type: Grant
    Filed: January 15, 2010
    Date of Patent: August 20, 2013
    Assignee: Oracle America, Inc.
    Inventors: Eric C. Saxe, Darrin P. Johnson
  • Patent number: 8467390
    Abstract: In general, the invention relates to a method for sending a packet from an application to a destination. The method includes opening a network connection between the application and the destination, tuning at least one layer in a network stack, based on application information associated with the application, to obtain a tuned network stack, wherein the network stack is associated with the network connection, receiving the packet from the application, processing the packet using the tuned network stack to obtain a processed packet, and sending the processed packet to the destination, wherein the processed packet is received by the destination.
    Type: Grant
    Filed: December 14, 2006
    Date of Patent: June 18, 2013
    Assignee: Oracle America, Inc.
    Inventors: Anders D. Persson, Cesar A. C. Marcondes, Darrin P. Johnson
  • Patent number: 8458366
    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: Grant
    Filed: September 27, 2007
    Date of Patent: June 4, 2013
    Assignee: Oracle America, Inc.
    Inventors: Kais Belgaied, Darrin P. Johnson
  • Patent number: 8447880
    Abstract: A method for configuring a network on a host includes obtaining a first virtual network stack and a second virtual network stack on the host, configuring a first transport layer implementation on the first virtual network stack, configuring a second transport layer implementation on the second virtual network stack, receiving a packet by the host, sending a packet to the first virtual network stack, and processing the packet using the first transport layer implementation.
    Type: Grant
    Filed: December 20, 2006
    Date of Patent: May 21, 2013
    Assignee: Oracle America, Inc.
    Inventors: Darrin P. Johnson, Erik Nordmark, Kais Belgaied
  • Publication number: 20130044759
    Abstract: 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.
    Type: Application
    Filed: August 18, 2011
    Publication date: February 21, 2013
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Darren J. Reed, Darrin P. Johnson
  • Patent number: 8381215
    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: Grant
    Filed: September 27, 2007
    Date of Patent: February 19, 2013
    Assignee: Oracle America, Inc.
    Inventors: Darrin P. Johnson, Eric C. Saxe, Bart Smaalders
  • Patent number: 8285692
    Abstract: 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.
    Type: Grant
    Filed: January 15, 2010
    Date of Patent: October 9, 2012
    Assignee: Oracle America, Inc.
    Inventors: Darrin P. Johnson, William H. Moore, Eric C. Saxe
  • Patent number: 8276126
    Abstract: Techniques for isolating software regressions are provided. In one approach, QTrace is used to generate DTrace scripts to gather timing information of one or more portions of source code during a test of particular version of a program. Based on results of one or more tests of multiple versions of a program, a regression is identified with respect to a particular portion of source code. It is determined that the particular portion of source code was changed during an intermediate version of the program (i.e., between two tests). The intermediate version and/or the particular portion of source code are identified as being a potential source of the regression.
    Type: Grant
    Filed: November 8, 2006
    Date of Patent: September 25, 2012
    Assignee: Oracle America, Inc.
    Inventors: Damien Farnham, Darrin P. Johnson, Sean McGrath, Bart Smaalders
  • Patent number: 8261274
    Abstract: 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.
    Type: Grant
    Filed: June 29, 2009
    Date of Patent: September 4, 2012
    Assignee: Oracle America, Inc.
    Inventors: Darrin P. Johnson, Eric C. Saxe
  • Patent number: 8261275
    Abstract: 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.
    Type: Grant
    Filed: June 29, 2009
    Date of Patent: September 4, 2012
    Assignee: Oracle America, Inc.
    Inventors: Darrin P. Johnson, Eric C. Saxe
  • Patent number: 8205100
    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: Grant
    Filed: June 19, 2008
    Date of Patent: June 19, 2012
    Assignee: Oracle America, Inc.
    Inventors: Eric C. Saxe, Darrin P. Johnson, Jonathan J. Chew
  • Patent number: 8200960
    Abstract: A computer system that communicates cryptographic resource utilization information while processing data packets is described. During operation, the system receives a first data packet and generates a second data packet by performing a cryptographic transformation on the first data packet. Next, the system appends auxiliary information to the second data packet. This auxiliary information includes information associated with cryptographic resource utilization during the cryptographic transformation. Then, the system provides the second data packet including the auxiliary information.
    Type: Grant
    Filed: October 20, 2006
    Date of Patent: June 12, 2012
    Assignee: Oracle America, Inc.
    Inventors: Kais Belgaied, Mark C. Powers, Bhargava K. Yenduri, Darrin P. Johnson