发明名称 User space function execution from a kernel context for input/output filtering from a thread executing in the user space
摘要 The approaches described herein implement execution of a user space operation from a kernel context. A thread, executing on a computing device, initializes a second kernel stack based on a first kernel stack. The computing device executes an operating system having a user space and a kernel space. The thread, executing in kernel space, performs a non-blocking call (e.g., an upcall) to execute an upcall function in user space, such as filtering input/output (I/O) requests. The upcall function may further call other user space functions or system calls. The system calls are performed using the second kernel stack. Upon termination of the upcall function, the thread continues execution on the first kernel stack in kernel space. For example, the thread handles the filtered I/O commands.
申请公布号 US9542224(B2) 申请公布日期 2017.01.10
申请号 US201414304477 申请日期 2014.06.13
申请人 VMware, Inc. 发明人 Klee Christoph;Gunti Mukund;Drzewiecki Adrian
分类号 G06F3/00;G06F9/50;G06F9/52;G06F3/06;G06F9/54 主分类号 G06F3/00
代理机构 代理人
主权项 1. A system for synchronous execution of a user space operation without a thread switch from a kernel context, the system comprising: a memory area storing an operating system having a kernel space and a user space; and a processor programmed to: initialize, from a thread executing in the user space, an upcall mode into the kernel space; perform, by the same thread from the kernel space via the initialized upcall mode, a function in the user space, wherein performing the function comprises filtering one or more input/output (I/O) requests from the thread in the user space; and upon completion of the function in the user space, return to the kernel space to perform another function from the same thread, wherein performing the another function comprises issuing the filtered one or more I/O requests further down storage layers in the kernel space, and wherein filtered I/O completions are completed further up the storage layers in the kernel space.
地址 Palo Alto CA US