Patents by Inventor Haakon Ording Bugge

Haakon Ording Bugge 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: 9336158
    Abstract: A method for optimized address pre-translation for a host channel adapter (HCA) static memory structure is disclosed. The method involves determining whether the HCA static memory structure spans a contiguous block of physical address space, when the HCA static memory structure spans the contiguous block of physical address space, requesting a translation from a guest physical address (GPA) to a machine physical address (MPA) of the HCA static memory structure, storing a received MPA corresponding to the HCA static memory structure in an address control and status register (CSR) associated with the HCA static memory structure, marking the received MPA stored in the address CSR as a pre-translated address, and using the pre-translated MPA stored in the address CSR when a request to access the static memory structure is received.
    Type: Grant
    Filed: February 26, 2013
    Date of Patent: May 10, 2016
    Assignee: Oracle International Corporation
    Inventors: Brian Edward Manula, Haakon Ording Bugge
  • Patent number: 9256555
    Abstract: A method for managing a queue descriptor cache of a host channel adaptor (HCA) includes obtaining a queue descriptor from memory. The queue descriptor includes data describing a queue and the memory is located in a host system. The method further includes storing a copy of the queue descriptor in the queue descriptor cache of the HCA. The HCA accesses the copy of the queue descriptor to obtain the plurality of data, accesses the queue using the data, and updates the data to reflect the access to the queue. The method further includes calculating, using the data, a value corresponding to utilization of the queue, comparing the value against a threshold, fetching, if the value exceeds the threshold, a new copy of the queue descriptor from memory, and replacing the copy of the queue descriptor in the queue descriptor cache with the new copy obtained from the memory.
    Type: Grant
    Filed: December 20, 2012
    Date of Patent: February 9, 2016
    Assignee: Oracle International Corporation
    Inventors: Brian Edward Manula, Haakon Ording Bugge, Frederick Luther Gotwald
  • Patent number: 9244829
    Abstract: A method for deallocation of a memory region involving transmitting, by a host channel adapter (HCA), a first invalidation command for invalidating at least one key associated with the memory region, transmitting, by the HCA, a second invalidation command for invalidating a translation lookaside buffer (TLB) entry for the memory region, invalidate the at least one key associated with the memory region, determining whether all memory access requests to the memory region have been processed by the HCA, stalling processing of the second invalidation command when outstanding memory access requests to the memory region are present, and processing the outstanding memory access requests for the memory region by the HCA before executing the second invalidation command invalidating the TLB entry for the memory region.
    Type: Grant
    Filed: December 20, 2012
    Date of Patent: January 26, 2016
    Assignee: Oracle International Corporation
    Inventors: Brian Edward Manula, Haakon Ording Bugge, Robert W. Wittosch
  • Patent number: 9191452
    Abstract: A method for optimizing completion building is disclosed. The method involves receiving a work request by a host channel adapter (HCA), caching a portion of the work request in a completion cache in the HCA, wherein the cached portion of the work request includes information for building a completion for the work request, receiving, by the HCA, a response to the work request, querying the completion cache upon receiving the response to the work request to obtain the cached portion of the work request, and building the completion for the work request using the cached portion of the work request, wherein the completion informs a software application of at least a status of the work request as executed by the HCA.
    Type: Grant
    Filed: December 20, 2012
    Date of Patent: November 17, 2015
    Assignee: Oracle International Corporation
    Inventors: Brian Edward Manula, Magne Vigulf Sandven, Haakon Ording Bugge
  • Patent number: 9118597
    Abstract: A method for transmitting a message includes a communication adapter receiving, from a transmitting device, a request to send the message. The method further includes modifying a maximum transfer unit (MTU) to obtain a modified MTU, transmitting, from the communication adapter to a receiving system, a first sub-unit of the message using the modified MTU, iteratively increasing the MTU for transmitting intermediate sub-units of the message until an MTU limit is reached, and transmitting, to the receiving system, the intermediate sub-units of the message. The intermediate sub-units are transmitted after the first sub-unit and before a second sub-unit. The method further includes transmitting, from the communication adapter to the receiving system, the second sub-unit to the receiving system using a full path MTU.
    Type: Grant
    Filed: July 31, 2014
    Date of Patent: August 25, 2015
    Assignee: Oracle International Corporation
    Inventors: Haakon Ording Bugge, Lars Paul Huse, Ola Toerudbakken
  • Patent number: 9069633
    Abstract: A method for offloading includes a host channel adapter (HCA) receiving a first work request identifying a queue pair (QP), making a first determination that the QP is a proxy QP, and offloading the first work request to a proxy central processing unit (CPU) based on the first determination and based on the first work request satisfying a filter criterion. The HCA further receives a second work request identifying the QP, processes the second work request without offloading based on the QP being a proxy QP and based on the first work request failing to satisfy the filter criterion. The HCA redirects a first completion for the first work request and a second completion for the second work request to the proxy CPU based on the first determination. The proxy CPU processes the first completion and the second completion in order.
    Type: Grant
    Filed: December 20, 2012
    Date of Patent: June 30, 2015
    Assignee: Oracle America, Inc.
    Inventors: Brian Edward Manula, Haakon Ording Bugge, Magne Vigulf Sandven
  • Patent number: 9069485
    Abstract: A method for processing commands includes receiving, for multiple commands, doorbells for writing to a send queue scheduler buffer on a host channel adapter (HCA). The send queue scheduler buffer is associated with a send queue scheduler. The method further includes detecting a potential deadlock of the send queue scheduler from processing a portion of the doorbells, writing a subset of the doorbells to a doorbell overflow buffer on a host, operatively connected to the HCA, based on detecting the potential deadlock, and discarding the subset by the send queue scheduler without processing the subset of the plurality of doorbells before discarding.
    Type: Grant
    Filed: December 20, 2012
    Date of Patent: June 30, 2015
    Assignee: Oracle International Corporation
    Inventors: Brian Edward Manula, Haakon Ording Bugge, Benny Sum
  • Patent number: 9021123
    Abstract: A method for receiving a single message includes a receiving communication adapter receiving a first sub-unit in a single message. A transmitting communication adapter partitions the single message into sub-units. The method further includes storing the first payload in the memory of a receiving device, appending a first completion code into the first sub-unit, and sending a first notification to a receiving entity of the first completion code. The receiving entity processes the first payload based on the first determination. The receiving communication adapter receives a second sub-unit of the multiple sub-units after the first payload is processed by the receiving entity. The method further includes storing the second payload in the memory of the receiving device. The receiving entity determines that the first sub-unit is completely stored based on the first completion code, and that the second sub-unit is completely stored based on a second completion code.
    Type: Grant
    Filed: August 23, 2011
    Date of Patent: April 28, 2015
    Assignee: Oracle International Corporation
    Inventors: Haakon Ording Bugge, Hans Westgaard Ry
  • Publication number: 20140341229
    Abstract: A method for transmitting a message includes a communication adapter receiving, from a transmitting device, a request to send the message. The method further includes modifying a maximum transfer unit (MTU) to obtain a modified MTU, transmitting, from the communication adapter to a receiving system, a first sub-unit of the message using the modified MTU, iteratively increasing the MTU for transmitting intermediate sub-units of the message until an MTU limit is reached, and transmitting, to the receiving system, the intermediate sub-units of the message. The intermediate sub-units are transmitted after the first sub-unit and before a second sub-unit. The method further includes transmitting, from the communication adapter to the receiving system, the second sub-unit to the receiving system using a full path MTU.
    Type: Application
    Filed: July 31, 2014
    Publication date: November 20, 2014
    Inventors: Haakon Ording Bugge, Lars Paul Huse, Ola Toerudbakken
  • Patent number: 8879579
    Abstract: A method for transmitting a message includes a communication adapter receiving, from a transmitting device, a request to send the message. The method further includes modifying a maximum transfer unit (MTU) to obtain a modified MTU, transmitting, from the communication adapter to a receiving system, a first sub-unit of the message using the modified MTU, iteratively increasing the MTU for transmitting intermediate sub-units of the message until an MTU limit is reached, and transmitting, to the receiving system, the intermediate sub-units of the message. The intermediate sub-units are transmitted after the first sub-unit and before a second sub-unit. The method further includes transmitting, from the communication adapter to the receiving system, the second sub-unit to the receiving system using a full path MTU.
    Type: Grant
    Filed: August 23, 2011
    Date of Patent: November 4, 2014
    Assignee: Oracle International Corporation
    Inventors: Haakon Ording Bugge, Lars Paul Huse, Ola Toerudbakken
  • Patent number: 8850085
    Abstract: A method for managing bandwidth of a bus connecting a peripheral device to a host system includes sending, over the bus, a first read request to the host system, incrementing a pending read counter by an amount corresponding to the requested data, receiving, in response to sending the first read request, at least a portion of the requested data from the host system, decrementing the pending read counter by an amount corresponding to the at least the portion of the requested data, and comparing the counter and a threshold to obtain a result. Based on the result, a scheme is selected for managing the bandwidth of the bus. The scheme specifies a ratio of read requests and write requests to be sent on the bus. The method further includes sending, based on the scheme, a second request that is a write request or a second read request.
    Type: Grant
    Filed: February 26, 2013
    Date of Patent: September 30, 2014
    Assignee: Oracle International Corporation
    Inventors: Brian Edward Manula, Haakon Ording Bugge
  • Patent number: 8832216
    Abstract: A method for conditional execution of a remote direct memory access (RDMA) write includes a host channel adapter receiving at least one message that includes an atomic operation and the RDMA write. The host channel adapter obtains a descriptor corresponding to the RDMA write, and determines, from the descriptor, that the RDMA write is a conditional RDMA write conditioned on a successful execution of the atomic operation. Based on determining that the RDMA write is the conditional RDMA write, the conditional RDMA write is queued to be conditionally executed based on a success indicator of the atomic operation. After queuing the RDMA write, the atomic operation is executed successfully. In response to the successful execution, the host channel adapter executes the conditional RDMA write to write to the memory location on the host.
    Type: Grant
    Filed: August 31, 2011
    Date of Patent: September 9, 2014
    Assignee: Oracle International Corporation
    Inventor: Haakon Ording Bugge
  • Publication number: 20140244866
    Abstract: A method for managing bandwidth of a bus connecting a peripheral device to a host system includes sending, over the bus, a first read request to the host system, incrementing a pending read counter by an amount corresponding to the requested data, receiving, in response to sending the first read request, at least a portion of the requested data from the host system, decrementing the pending read counter by an amount corresponding to the at least the portion of the requested data, and comparing the counter and a threshold to obtain a result. Based on the result, a scheme is selected for managing the bandwidth of the bus. The scheme specifies a ratio of read requests and write requests to be sent on the bus. The method further includes sending, based on the scheme, a second request that is a write request or a second read request.
    Type: Application
    Filed: February 26, 2013
    Publication date: August 28, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Brian Edward Manula, Haakon Ording Bugge
  • Publication number: 20140244965
    Abstract: A method for optimized address pre-translation for a host channel adapter (HCA) static memory structure is disclosed. The method involves determining whether the HCA static memory structure spans a contiguous block of physical address space, when the HCA static memory structure spans the contiguous block of physical address space, requesting a translation from a guest physical address (GPA) to a machine physical address (MPA) of the HCA static memory structure, storing a received MPA corresponding to the HCA static memory structure in an address control and status register (CSR) associated with the HCA static memory structure, marking the received MPA stored in the address CSR as a pre-translated address, and using the pre-translated MPA stored in the address CSR when a request to access the static memory structure is received.
    Type: Application
    Filed: February 26, 2013
    Publication date: August 28, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Brian Edward Manula, Haakon Ording Bugge
  • Patent number: 8804752
    Abstract: A method for temporary storage of data units including receiving a first data unit to store in a hardware linked list queue on a communications adapter, reading a first index value from the first data unit, determining that the first index value does match an existing index value of a first linked list, and storing the first data unit in the hardware linked list queue as a member of the first linked list. The method further includes receiving a second data unit, reading a second index value from the second data unit, determining that the second index value does not match any existing index value, allocating space in the hardware linked list queue for a second linked list, and storing the second data unit in the second linked list.
    Type: Grant
    Filed: May 31, 2011
    Date of Patent: August 12, 2014
    Assignee: Oracle International Corporation
    Inventors: Brian Edward Manula, Magne Vigulf Sandven, Haakon Ording Bugge
  • Publication number: 20140181823
    Abstract: A method for offloading includes a host channel adapter (HCA) receiving a first work request identifying a queue pair (QP), making a first determination that the QP is a proxy QP, and offloading the first work request to a proxy central processing unit (CPU) based on the first determination and based on the first work request satisfying a filter criterion. The HCA further receives a second work request identifying the QP, processes the second work request without offloading based on the QP being a proxy QP and based on the first work request failing to satisfy the filter criterion. The HCA redirects a first completion for the first work request and a second completion for the second work request to the proxy CPU based on the first determination. The proxy CPU processes the first completion and the second completion in order.
    Type: Application
    Filed: December 20, 2012
    Publication date: June 26, 2014
    Applicant: Oracle International Corporation
    Inventors: Brian Edward Manula, Haakon Ording Bugge, Magne Vigulf Sandven
  • Publication number: 20140181323
    Abstract: A method for processing commands includes receiving, for multiple commands, doorbells for writing to a send queue scheduler buffer on a host channel adapter (HCA). The send queue scheduler buffer is associated with a send queue scheduler. The method further includes detecting a potential deadlock of the send queue scheduler from processing a portion of the doorbells, writing a subset of the doorbells to a doorbell overflow buffer on a host, operatively connected to the HCA, based on detecting the potential deadlock, and discarding the subset by the send queue scheduler without processing the subset of the plurality of doorbells before discarding.
    Type: Application
    Filed: December 20, 2012
    Publication date: June 26, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Brian Edward Manula, Haakon Ording Bugge, Benny Sum
  • Publication number: 20140181454
    Abstract: A method for deallocation of a memory region involving transmitting, by a host channel adapter (HCA), a first invalidation command for invalidating at least one key associated with the memory region, transmitting, by the HCA, a second invalidation command for invalidating a translation lookaside buffer (TLB) entry for the memory region, invalidate the at least one key associated with the memory region, determining whether all memory access requests to the memory region have been processed by the HCA, stalling processing of the second invalidation command when outstanding memory access requests to the memory region are present, and processing the outstanding memory access requests for the memory region by the HCA before executing the second invalidation command invalidating the TLB entry for the memory region.
    Type: Application
    Filed: December 20, 2012
    Publication date: June 26, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Brian Edward Manula, Haakon Ording Bugge, Robert W. Wittosch
  • Publication number: 20140181241
    Abstract: A method for optimizing completion building is disclosed. The method involves receiving a work request by a host channel adapter (HCA), caching a portion of the work request in a completion cache in the HCA, wherein the cached portion of the work request includes information for building a completion for the work request, receiving, by the HCA, a response to the work request, querying the completion cache upon receiving the response to the work request to obtain the cached portion of the work request, and building the completion for the work request using the cached portion of the work request, wherein the completion informs a software application of at least a status of the work request as executed by the HCA.
    Type: Application
    Filed: December 20, 2012
    Publication date: June 26, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Brian Edward Manula, Magne Vigulf Sandven, Haakon Ording Bugge
  • Publication number: 20140181409
    Abstract: A method for managing a queue descriptor cache of a host channel adaptor (HCA) includes obtaining a queue descriptor from memory. The queue descriptor includes data describing a queue and the memory is located in a host system. The method further includes storing a copy of the queue descriptor in the queue descriptor cache of the HCA. The HCA accesses the copy of the queue descriptor to obtain the plurality of data, accesses the queue using the data, and updates the data to reflect the access to the queue. The method further includes calculating, using the data, a value corresponding to utilization of the queue, comparing the value against a threshold, fetching, if the value exceeds the threshold, a new copy of the queue descriptor from memory, and replacing the copy of the queue descriptor in the queue descriptor cache with the new copy obtained from the memory.
    Type: Application
    Filed: December 20, 2012
    Publication date: June 26, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Brian Edward Manula, Haakon Ording Bugge, Frederick Luther Gotwald