Interrupt management
First Claim
1. A method for use in a data processing system connected to a network in accordance with a data transfer protocol, the data processing system having one or more event queues for holding notifications of network events, and being configured for responding to interrupts issued in response to the presence of a network event in the data processing system by invoking a stack to cause processing in accordance with the data transfer protocol of the network events, each network event associated with an event notification held on an event queue, the method comprising:
- the data processing system deciding whether to permit the interrupts to be enabled, in dependence on the result of a determination as to the presence of current indications that the stack will be invoked by an application in the data processing system to cause processing in accordance with the data transfer protocol of network events, each network event associated with an event notification on an event queue, wherein;
access to at least a part of the stack, by a thread of execution responsive to an application system call, is restricted by means of a lock, such that only one thread of execution may access the restricted part of the stack concurrently;
said determination comprises checking the status of the lock to determine whether an application is currently accessing or attempting to access the restricted part of the stack; and
whereinwhen said checking the status of the lock results in an indication that an application is currently accessing or attempting to access the restricted part of the stack, said deciding results in interrupts being disabled, andwhen said checking the status of the lock results in an indication that an application is not currently accessing or attempting to access the restricted part of the stack, said deciding results in interrupts being enabled.
7 Assignments
0 Petitions
Accused Products
Abstract
A method for use in a data processing system connected to a network in accordance with a data transfer protocol, the data processing system having one or more event queues for holding network events, and being capable of responding to interrupts issued in response to the presence of a network event in the data processing system by invoking a stack to cause processing in accordance with the data transfer protocol of network events on the event queues; the method comprising: deciding whether to permit the interrupts to be enabled, in dependence on the result of a determination as to the presence of current indications that the stack will be invoked by an entity in the data processing system to cause processing in accordance with the data transfer protocol of network events on the event queues.
-
Citations
16 Claims
-
1. A method for use in a data processing system connected to a network in accordance with a data transfer protocol, the data processing system having one or more event queues for holding notifications of network events, and being configured for responding to interrupts issued in response to the presence of a network event in the data processing system by invoking a stack to cause processing in accordance with the data transfer protocol of the network events, each network event associated with an event notification held on an event queue, the method comprising:
-
the data processing system deciding whether to permit the interrupts to be enabled, in dependence on the result of a determination as to the presence of current indications that the stack will be invoked by an application in the data processing system to cause processing in accordance with the data transfer protocol of network events, each network event associated with an event notification on an event queue, wherein; access to at least a part of the stack, by a thread of execution responsive to an application system call, is restricted by means of a lock, such that only one thread of execution may access the restricted part of the stack concurrently; said determination comprises checking the status of the lock to determine whether an application is currently accessing or attempting to access the restricted part of the stack; and
whereinwhen said checking the status of the lock results in an indication that an application is currently accessing or attempting to access the restricted part of the stack, said deciding results in interrupts being disabled, and when said checking the status of the lock results in an indication that an application is not currently accessing or attempting to access the restricted part of the stack, said deciding results in interrupts being enabled. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A data processing system comprising a processor coupled to a memory storing instructions that when executed by the processor cause the processor to perform:
-
connecting to a network in accordance with a data transfer protocol, the data processing system having one or more event queues for holding notifications of network events, and responding to interrupts issued in response to the presence of a network event in the data processing system by invoking a stack to cause processing in accordance with the data transfer protocol of network events, each network event associated with an event notification on an event queue; the data processing system storing instructions that when executed by the processor decide whether to permit the interrupts to be enabled, in dependence on the result of a determination as to the presence of current indications that the stack will be invoked by an application in the data processing system to cause processing in accordance with the data transfer protocol of network events, each network event associated with an event notification on an event queue, wherein; access to at least a part of the stack, by a thread of execution responsive to an application system call, is restricted by means of a lock, such that only one thread of execution may access the restricted part of the stack concurrently; said determination comprises checking status of the lock to determine whether an application is currently accessing or attempting to access the restricted part of the stack; and
whereinwhen said checking the status of the lock results in an indication that an application is currently accessing or attempting to access the restricted part of the stack, said deciding results in interrupts being disabled, and when said checking the status of the lock results in an indication that an application is not currently accessing or attempting to access the restricted part of the stack, said deciding results in interrupts being enabled.
-
-
7. A non-transitory computer readable storage medium having stored thereon a plurality of software code portions for execution by a data processing system connected to a network in accordance with a data transfer, the data processing system having one or more event queues for holding notifications of network events, and being configured for responding to interrupts issued in response to the presence of a network event in the data processing system by invoking a stack to cause processing in accordance with the data transfer protocol of the network events, each network event associated with an event notification held on an event queue;
-
wherein the code portions, when executed by the data processing system, decide whether to permit the interrupts to be enabled, in dependence on the result of a determination as to the presence of current indications that the stack will be invoked by an application in the data processing system to cause processing in accordance with the data transfer protocol of network events, each network event associated with an event notification on an event queue, wherein; access to at least a part of the stack, by a thread of execution responsive to an application system call, is restricted by means of a lock, such that only one thread of execution may access the restricted part of the stack concurrently; said determination comprises checking the status of the lock to determine whether an application is currently accessing or attempting to access the restricted part of the stack; and
whereinwhen said checking the status of the lock results in an indication that an application is currently accessing or attempting to access the restricted part of the stack, said deciding results in interrupts being disabled, and when said checking the status of the lock results in an indication that an application is not currently accessing or attempting to access the restricted part of the stack, said deciding results in interrupts being enabled.
-
-
8. A method for use in a data processing system connected by means of one or more sockets to a network in accordance with a data transfer protocol, the data processing system having one or more event queues for holding notifications of network events, each network event being associated with at least one of the sockets, and the data processing system being configured for responding to interrupts issued in response to the presence of a network event in the data processing system by invoking a stack to cause processing in accordance with the data transfer protocol of the network events, each network event associated with an event notification held on an event queue, wherein such processing can cause a change in a status of one or more of the sockets, wherein access to at least a part of the stack, by a thread of execution responsive to an application system call, is restricted by means of a lock, such that only one thread of execution may access the restricted part of the stack concurrently, the method comprising the steps of:
-
receiving an enquiry from an application supported by the data processing system as to the status of at least one of the sockets, wherein said status is an indicator of whether at least one of the at least one of the sockets is ready to receive data for transmission over the network or ready to provide to an application data received over the network; in response to receiving the enquiry, determining whether the interrupts are enabled in the data processing system; checking the status of the lock to determine whether an application is currently accessing or attempting to access the restricted part of the stack; and in dependence on the result of the determination, deciding whether to perform processing in accordance with the data transfer protocol of network events, each network event associated with an event notification on an event queue, wherein; when the result of the determination is that the interrupts are enabled, said processing is not performed; and when the result of the determination is that the interrupts are disabled and when the step of checking the status of the lock results in an indication that an application is not currently accessing or attempting to access the restricted part of the stack, said processing is performed. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A data processing system comprising a processor coupled to a memory storing instructions that when executed by the processor cause the processor to perform:
-
connecting by means of one or more sockets to a network in accordance with a data transfer protocol, the data processing system having one or more event queues for holding notifications of network events, each network event being associated with at least one of the sockets, and the data processing system being configured for responding to interrupts issued in response to the presence of a network event in the data processing system by invoking a stack to cause processing in accordance with the data transfer protocol of network events, each network event associated with an event notification on an event queue, wherein such processing can cause a change in a status of one or more of the sockets, wherein access to at least a part of the stack, by a thread of execution responsive to an application system call, is restricted by means of a lock, such that only one thread of execution may access the restricted part of the stack concurrently, the data processing system further storing instructions to; receive an enquiry from an application supported by the data processing system as to the status of at least one of the sockets, wherein said status is an indicator of whether at least one of the at least one of the sockets is ready to receive data for transmission over the network or ready to provide to an application data received over the network; in response to receiving the enquiry, determine whether the interrupts are enabled in the data processing system; checking the status of the lock to determine whether an application is currently accessing or attempting to access the restricted part of the stack; and in dependence on the result of the determination, decide whether to perform processing in accordance with the data transfer protocol of network events, each network event associated with an event notification on an event queue, wherein; when the result of the determination is that the interrupts are enabled, said processing is not performed; and when the result of the determination is that the interrupts are disabled and when the step of checking the status of the lock results in an indication that an application is not currently accessing or attempting to access the restricted part of the stack, said processing is performed.
-
-
15. A non-transitory computer readable storage medium having stored thereon a plurality of software code portions for execution by a data processing system connected by means of one or more sockets to a network in accordance with a data transfer protocol, the data processing system having one or more event queues for holding notifications of network events, each network event being associated with at least one of the sockets, and the data processing system being configured for responding to interrupts issued in response to the presence of a network event in the data processing system by invoking a stack to cause processing in accordance with the data transfer protocol of the network events, each network event associated with an event notification held on an event queue, wherein such processing can cause a change in a status of one or more of the sockets, wherein access to at least a part of the stack, by a thread of execution responsive to an application system call, is restricted by means of a lock, such that only one thread of execution may access the restricted part of the stack concurrently, the data processing system being further capable of receiving an enquiry from an application supported by the data processing system as to the status of at least one of the sockets, wherein said status is an indicator of whether at least one of the at least one of the sockets is ready to receive data for transmission over the network or ready to provide to an application data received over the network;
- wherein the code portions, when executed by the data processing system, perform the steps of;
in response to receipt of the enquiry at the data processing system, determining whether the interrupts are enabled in the data processing system; checking the status of the lock to determine whether an application is currently accessing or attempting to access the restricted part of the stack; and in dependence on the result of the determination, deciding whether to perform processing in accordance with the data transfer protocol of network events, each network event associated with an event notification on an event queue, wherein; when the result of the determination is that the interrupts are enabled, said processing is not performed; and when the result of the determination is that the interrupts are disabled and when the step of checking the status of the lock results in an indication that an application is not currently accessing or attempting to access the restricted part of the stack, said processing is performed.
- wherein the code portions, when executed by the data processing system, perform the steps of;
-
16. A method for processing network events on event queues in a data processing system connected to a network in accordance with a data transfer protocol, the method comprising:
-
causing enablement or disablement of interrupts that are issued in response to the presence of a network event, by; providing a lock that permits no more than a single thread of execution to concurrently access a restricted portion of a stack that processes network events in accordance with the data transfer protocol, each of the network events being associated with an event notification held on an event queue of one or more event queues in the data processing system, determining based on the status of the lock whether or not a thread of execution is currently accessing the restricted portion of the stack or waiting to access the restricted portion of the stack; responsive to determining that a thread of execution is accessing the restricted portion of the stack or is waiting to access the restricted portion of the stack, causing interrupts to be disabled, wherein at least one of the threads of execution accessing or waiting to access the restricted portion of the stack has invoked the stack responsive to an application system call; responsive to determining that no thread is accessing the restricted portion of the stack or waiting to access the restricted portion of the stack, causing interrupts to be enabled.
-
Specification