Architecture for shielding interface difference and method and system thereof
An interface and difference technology, applied in the field of computer systems, can solve the problems of libaio and other interfaces that cannot be directly compatible, and achieve the effect of low cost, short cycle, and small changes
- Summary
- Abstract
- Description
- Claims
- Application Information
AI Technical Summary
Problems solved by technology
Method used
Image
Examples
Embodiment 1
[0041] see figure 1 , figure 1 A schematic diagram of an architecture for shielding interface differences and its method steps provided by an embodiment of the present invention is as follows:
[0042] S100, the business layer calls the spdk_io_submit interface, and internally sends the ioctx containing the business layer callback to the lock-free queue (ctx ring) inside the spdk_thread bound to the background through spdk_thread_send_mess-age;
[0043] S110, the Spdk thread obtains the requests in the ctx ring in the order of FIFO, executes the IO request submission work through spdk_nvme_ns_cmd_write / read, and the subsequent corresponding callback function will insert the ioctx corresponding to the completed IO into the lock-free completion event queue event ring ;
[0044] S120, the NVME controller consumes new IO request ioctx from the hardware submission queue;
[0045] S130, the NVME controller puts the completed IO request ioctx into the hardware completionqueue;
...
Embodiment 2
[0069] see figure 2 , figure 2 The main flow diagram of nvme_io_setup provided for the embodiment of the present invention is as follows:
[0070] The main function of the standard io_setup is that io_context_t corresponds to a structure in the kernel, which provides a context for asynchronous IO requests. It creates a handle to an io operation through a system call, and provides a destination for subsequent io_submit / io_getevents to accept requests. In order to be compatible with the libaio interface, nvme_io_setup also needs to provide the same destination for accepting requests: nvme_io_ctx_p, which includes information about the io_ctx_t number interface used for interface compatibility and the nvme hardware queue pair used to actually accept IO requests. The main contents are as follows:
[0071] Struct nvme_io_ctx_t {Io_ctx_t;
[0072] Nvme controller; Nvme name space; Nvme hardware queue;
[0073] Max_events; / / Indicates the maximum number of requests allowed on ...
Embodiment 3
[0114] see Figure 7 , Figure 7 A schematic diagram of a shielding interface difference architecture and its system modules provided by the embodiment of the present invention is as follows:
[0115] The access module 10 is used for the business layer to call the spdk_io_submit interface, and internally sends the ioctx and the submission action to the background binding spdk thread through spdk_th-read_send_message;
[0116] The execution module 20 is used for the Spdk thread to execute the IO request submission work through spdk_nvme_ns_cmd_write / read, and the subsequent corresponding callback function will insert the io ctx corresponding to the completed IO into the lock-free completion event queue event ring;
[0117] Submit request module 30, used for NVME controller to consume new I-O request ioctx from hardware submission queue;
[0118] Harvest completion request module 40, used for NVME controller to put the completed IO request ioctx into har-dware completion queue...
PUM
Abstract
Description
Claims
Application Information
- R&D Engineer
- R&D Manager
- IP Professional
- Industry Leading Data Capabilities
- Powerful AI technology
- Patent DNA Extraction
Browse by: Latest US Patents, China's latest patents, Technical Efficacy Thesaurus, Application Domain, Technology Topic, Popular Technical Reports.
© 2024 PatSnap. All rights reserved.Legal|Privacy policy|Modern Slavery Act Transparency Statement|Sitemap|About US| Contact US: help@patsnap.com