Data processing system
AssigneeXilinx, Inc.
InventorsSteven L. Pope, Kieran Mansley, Maciej Aleksander Jablonski
Life of this patent
Estimating the term…
Abstract
A data processing system has a poll mode driver and a library supporting protocol processing. The poll mode driver and the library are non-operating system functionalities. An application is provided. An operation system is configured while executing in kernel mode and in response to the application being determined to be unresponsive, use a helper process being an operating system functionality executing at user-mode to cause a receive or transmit mode of the application to continue.
Claims28
A method for transmitting data comprising:
- forming, by means of an application, data to be transmitted;
- writing the data to a data buffer;
- using (i) a first non-operating system functionality, provided at a user level, configured to support a network interface device, and (ii) a second non-operating-system functionality, provided at the user level, configured to perform protocol processing, to cause the data to be transmitted over a network via the network interface device, wherein the first non-operating system functionality comprises a data plane development kit (DPDK) functionality;
- in response to the application being determined to be unresponsive, accessing by an operating system the data buffer and its corresponding connection state and requesting transmission of the data in said data buffer utilizing a first data plane development kit helper process, said first data plane development kit helper process being an operating system functionality executing at user-mode;
- and
- after polling data plane development kit queues, using said first data plane development kit helper process to cause descriptors from said data plane development kit functionality of the first non-operating system functionality to be written to a pseudo virtual interface to provide a communication path, while the application is unresponsive, between the operating system and the network interface device, to cause the data to be transmitted over the network via the network interface device while the application is unresponsive.
A data processing system comprising:
- a processor subsystem having access to a memory and a network interface device capable of supporting a communication link;
- a first non-operating system functionality, provided at a user level, configured to support the network interface device, wherein the first non-operating system functionality comprises a data plane development kit (DPDK) functionality;
- a second non-operating system functionality, provided at the user level, configured to perform protocol processing;
- an application configured in a transmit mode to, while executing on the processor subsystem, form data to be transmitted and cause the data to be written to a data buffer, said first and second non-operating system functionalities of the data processing system causing the data to be transmitted over a network via the network interface device;
- and
- an operating system configured to, while executing on the processor subsystem in kernel mode and in response to the application being determined to be unresponsive, access the data buffer and its corresponding connection state and request transmission of the data in said data buffer utilizing a first data plane development kit helper process, said first data plane development kit helper process being an operating system functionality executing at user-mode,
- wherein said first data plane development kit helper process is configured to cause descriptors after polling data plane development kit queues from said data plane development kit functionality in the first non-operating system functionality to be written to a pseudo virtual interface to provide a communication path, while the application is unresponsive, between the operating system and the network interface device, to cause the data to be transmitted over the network via the network interface device while the application is unresponsive.
A non-transitory computer readable medium encoded with instructions for controlling a data processing system, in which the instructions when executed enable the execution of the steps of:
- forming, by means of an application, data to be transmitted;
- writing the data to a data buffer;
- using (i) a first non-operating system functionality, provided at a user level, configured to support a network interface device, and (ii) a second non-operating-system functionality, provided at the user level, configured to perform protocol processing, to cause the data to be transmitted over a network via the network interface device, wherein the first non-operating system functionality comprises a data plane development kit functionality;
- in response to the application being determined to be unresponsive, accessing by an operating system the data buffer and its corresponding connection state and requesting transmission of the data in said data buffer utilizing a first data plane development kit helper process, said first data plane development kit helper process being an operating system functionality executing at user-mode;
- and
- after polling data plane development kit queues, using said first data plane development kit helper process to cause descriptors from said data plane development kit functionality of the first non-operating system functionality to be written to a pseudo virtual interface to provide a communication path, while the application is unresponsive, between the operating system and the network interface device, to cause the data to be transmitted over the network via the network interface device while the application is unresponsive.
Dependencies are inferred from the claim text.