User-space parallel access channel for traditional filesystem using CAPI technology
AssigneeInternational Business Machines Corporation
InventorsKavana Bhat, Shajith Chandran
Life of this patent
Estimating the term…
Abstract
User process to directly access a file in a file system. A user process first opens a file in the file system for access. In the process of opening the file, a file handle for the file is returned to the user process by an operating system kernel. The user process then makes a read request to a special function unit for one or more blocks of the file in the file system using the file handle. In response, the special function unit, which is coupled to the processor, bypasses the operating system kernel and returns the requested data directly to the user process. A write by the user process may be refused by the computer system or allowed on a selective basis based on a flag in a file system inode corresponding to the block.
Claims20
A method for accessing blocks of a file in a file system, the method comprising:
- requesting that an operating system kernel of a computer system open the file of the file system, the file system residing in a space that includes the operating system kernel;
- in response to the request to open, receiving a file handle from the operating system kernel for accessing the file of the file system directly from a buffer residing in user space and not in the file system, by a user process;
- making a request to a special function unit of the computer system to read one or more blocks of the file contained in the file system using the file handle,
- wherein the special function unit is attached to a CPU of the computer system that runs the operating system kernel and the user process, obtains the one or more blocks from the file of the file system without making system calls to the operating system kernel, and adds the one or more blocks directly to the buffer residing in the user space;
- and
- reading data directly from the file of the file system with aid of the special function unit by reading the data in the buffer residing in the user space.
A computer system comprising:
- a special function unit;
- a processor attached to the special function unit;
- a memory coupled to the processor and the special function unit, the memory containing an operating system kernel and a user process runnable by the processor, the user process running in a user space supported by the operating system kernel, the memory including a buffer residing in the user space and not a file system and accessible to the user process;
- and
- persistent storage containing files of a file system, the file system residing in a space that includes the operating system kernel;
- wherein the user process is configured to:
- make a request that the operating system kernel open a file of the file system;
- in response to the request to open, receive a file handle from the operating system kernel for accessing the file of the file system directly from the user process;
- make a request to the special function unit to read one or more blocks of the file of the file system using the file handle without making system calls to the operating system kernel and to add the one or more blocks directly to the buffer residing in the user space;
- and
- read data directly from the file of the file system with aid of the special function unit by reading the buffer residing in the user space.
A computer program product for accessing blocks of a file in a file system, the computer program product comprising:
- a computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code executable by one or more computer processors to:
- request that an operating system kernel of a computer system open the file of the file system, the file system residing in a space that includes the operating system kernel;
- in response to the request to open, receive a file handle from the operating system kernel for accessing the file of the file system directly from a buffer residing in user space and not in the file system, by a user process;
- make a request to a special function unit of the computer system to read one or more blocks of the file contained in the file system using the file handle,
- wherein the special function unit is attached to a CPU of the computer system that runs the operating system kernel and the user process, obtains the one or more blocks from the file of the file system without making system calls to the operating system kernel, and adds the one or more blocks directly to the user space buffer;
- and
- read data directly from the file of the file system with aid of the special function unit by reading the data from the buffer residing in the user space.
Dependencies are inferred from the claim text.