IP Library Granted Patent US 7,457,887
Granted Patent B1
US 7,457,887 · App. 11/502,282 · Granted Nov 25, 2008

Method and system for processing asynchronous event notifications

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,457,887
App. No.
11/502,282
Granted
Nov 25, 2008
Kind
B1
Abstract

Method and system for managing asynchronous event notifications (AENs) including comparing an AEN sequence number at a shared memory location with an AEN sequence number at a local memory location controlled by a application; acquiring an AEN from the shared memory, if the sequence number of the AEN in the local memory is different from the sequence number of the AEN in shared memory; determining if a version number of the AEN is current; and generating an AEN if the version number is not current, wherein the generated AEN allows other applications to update AEN version numbers. The system includes firmware code executed in an adapter; an adapter driver executed on a host computing system stores the AENs in a memory buffer; and a plurality of applications that use a shared memory where AENs and a version number associated with the AENs are stored.

Claims (38)

1. A method for managing asynchronous event notifications (AENs) for a plurality of applications, comprising:

providing a plurality of applications, all of the plurality of applications polling a shared memory and each application accessing a local memory;

comparing by an application, an AEN sequence number stored at a shared memory location of the shared memory with an AEN sequence number at a local memory location of the local memory of the application;

acquiring by the application, an AEN from the shared memory, if the sequence number of the AEN in the local memory is different from the sequence number of the AEN in shared memory;

determining by the application if a version number of the acquired AEN is current; and if the version number is not current, the application generating an AEN instructing other applications to perform an AEN version number update.

2. The method of claim 1 , further comprising increasing an AEN sequence number after the AEN is generated by the application.

3. The method of claim 1 , further comprising acquiring by the application, an AEN from a memory buffer controlled by an adapter driver if the sequence number of the AEN in shared memory and the sequence number for the AEN in local memory is the same.

4. The method of claim 3 , further comprising increasing an AEN sequence number after the AEN is acquired.

5. The method of claim 4 , wherein the AEN is stored in shared memory.

6. The method of claim 1 , wherein AENs and AEN version number are stored in shared memory.

7. The method of claim 1 , wherein the applications are executed by a host system.

8. The method of claim 1 , further comprising generating AENs in response to certain pre-programmed events using an HBA.

9. The method of claim 1 , further comprising generating AENs in response to certain pre-defined events using a network adapter.

10. A system for managing asynchronous event notifications (AENs) for a plurality of applications, comprising:

a host computing system;

an adapter;

firmware code executed in the adapter, for generating AENs after detecting certain events;

an adapter driver executed on the host computing system to store the generated AENs in a memory buffer; and

a plurality of applications that poll a shared memory where AENs and a version number associated with the AENs are stored; each of the plurality of applications using a local memory; and

wherein one of the plurality of the applications (i) compares an AEN sequence number at a shared memory location of the shared memory with an AEN sequence number at a local memory location of the local memory used by the application; (ii) acquires an AEN from the shared memory, if the sequence number of the AEN in the local memory is different from the sequence number of the AEN in shared memory; (iii) determines if a version number of the AEN is current, the version number indicative of the data structure of the AEN; and (iv) generates an AEN if the version number is not current, wherein the generated AEN allows other applications to update AEN version numbers.

11. The system of claim 10 , wherein an AEN sequence number is increased by the application, after the AEN is generated.

12. The system of claim 10 , wherein if sequence number of the AEN in shared memory and the sequence number for the AEN in local memory is same, then the application acquires the AEN stored in the memory buffer by the adapter driver.

13. The system of claim 12 , wherein the application increases an AEN sequence number after the AEN is acquired.

14. The system of claim 13 , wherein the AEN is stored in the shared memory.

15. The system of claim 10 , wherein the shared memory is used to store AENs and AEN version number.

16. The system of claim 10 , wherein the plurality of applications are executed by a host system.

17. The system of claim 10 , wherein a host bus adapter generates AENs in response to certain pre-defined events.

18. The system of claim 10 , wherein a network adapter generates AENs in response to certain pre-programmed events.

19. A system for sharing asynchronous event notifications (AENs) amongst a pluralitv of applications, comprising:

an adapter that generates AENs after detecting certain events, the AENs including a version number indicative of the data structure of the AENs;

an adapter device driver to receive the generated AENs and store the generated AENs in a memory buffer;

a plurality of applications that are configured to selectively access the memory buffer and a shared memory where AENs are stored, each of the applications having a local memory to store an AEN sequence number;

one of the plurality of applications:

(i) compares the AEN sequence number of the AEN stored in the shared memory with the AEN sequence number stored in the local memory of the application;

(ii) acquires the AEN from the shared memory, if the sequence number of the AEN in the local memory is different from the sequence number of the AEN in the shared memory;

(iii) determines if a version number of the AEN is current; and

(iv) generates an AEN if the version number is not current and stores the generated AEN in the shared memory, wherein the generated AEN indicates to other applications to update AEN version numbers.

20. The system of claim 19 , wherein if the sequence number of the AEN in shared memory and the sequence number for the AEN in local memory is same, then, the application acquires the AEN stored in the memory buffer.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Oct 8, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047205/0953 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
MERGER Recorded Oct 18, 2017
From: QLOGIC CORPORATION
To: CAVIUM, INC.
Reel/Frame 044812/0504 →
SECURITY AGREEMENT Recorded Mar 1, 2017
From: QLOGIC CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 041854/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2006
From: WINKLER, CHRISTOPHER G.; JOHNSON, ROBERT E.
To: QLOGIC CORPORATION
Reel/Frame 018167/0797 →