table of contents
RPC_MALLOC(9) | Linux Networking | RPC_MALLOC(9) |
NAME¶
rpc_malloc - allocate RPC buffer resources
SYNOPSIS¶
int rpc_malloc(struct rpc_task * task);
ARGUMENTS¶
task
DESCRIPTION¶
A single memory region is allocated, which is split between the RPC call and RPC reply that this task is being used for. When this RPC is retired, the memory is released by calling rpc_free.
To prevent rpciod from hanging, this allocator never sleeps, returning -ENOMEM and suppressing warning if the request cannot be serviced immediately. The caller can arrange to sleep in a way that is safe for rpciod.
Most requests are 'small' (under 2KiB) and can be serviced from a mempool, ensuring that NFS reads and writes can always proceed, and that there is good locality of reference for these buffers.
In order to avoid memory starvation triggering more writebacks of NFS requests, we avoid using GFP_KERNEL.
COPYRIGHT¶
June 2024 | Kernel Hackers Manual 3.10 |