Package io.netty.channel.uring
Class IoUringIoHandlerConfig
- java.lang.Object
-
- io.netty.channel.uring.IoUringIoHandlerConfig
-
public final class IoUringIoHandlerConfig extends Object
Configuration class for anIoUringIoHandler, managing the settings for aRingBufferand its io_uring file descriptor.Option Map
These options are used exclusively during the initialization of theIoUringIoHandlerto configure the associated io_uring instance.The
IoUringIoHandlerConfigclass provides the following configurable options:Available Configuration Options Setter Method Description setRingSize(int)Sets the size of the submission queue for the io_uring instance. setMaxBoundedWorker(int)Defines the maximum number of bounded io_uring worker threads. setMaxUnboundedWorker(int)Defines the maximum number of unbounded io_uring worker threads. setBufferRingConfig(io.netty.channel.uring.IoUringBufferRingConfig...)Adds a buffer ring configuration to the list of buffer ring configurations. It will be used to register the buffer ring for the io_uring instance.
-
-
Constructor Summary
Constructors Constructor Description IoUringIoHandlerConfig()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<IoUringBufferRingConfig>getBufferRingConfigs()Get the list of buffer ring configurations.intgetCqSize()Return the size of the io_uring cqe.intgetMaxBoundedWorker()Return the maximum number of bounded iowq worker threads.intgetMaxUnboundedWorker()Return the maximum number of unbounded iowq worker threads.intgetRingSize()Return the ring size of the io_uring instance.IoUringIoHandlerConfigsetBufferRingConfig(IoUringBufferRingConfig... ringConfig)Add a buffer ring configuration to the list of buffer ring configurations.IoUringIoHandlerConfigsetCqSize(int cqSize)Set the size of the io_uring cqe.IoUringIoHandlerConfigsetMaxBoundedWorker(int maxBoundedWorker)Set the maximum number of bounded iowq worker threads.IoUringIoHandlerConfigsetMaxUnboundedWorker(int maxUnboundedWorker)Set the maximum number of unbounded iowq worker threads.IoUringIoHandlerConfigsetRingSize(int ringSize)Set the ring size of the io_uring instance.
-
-
-
Method Detail
-
getRingSize
public int getRingSize()
Return the ring size of the io_uring instance.- Returns:
- the ring size of the io_uring instance.
-
getCqSize
public int getCqSize()
Return the size of the io_uring cqe.- Returns:
- the cq size of the io_uring.
-
getMaxBoundedWorker
public int getMaxBoundedWorker()
Return the maximum number of bounded iowq worker threads.- Returns:
- the maximum number of bounded iowq worker threads.
-
getMaxUnboundedWorker
public int getMaxUnboundedWorker()
Return the maximum number of unbounded iowq worker threads.- Returns:
- the maximum number of unbounded iowq worker threads.
-
setRingSize
public IoUringIoHandlerConfig setRingSize(int ringSize)
Set the ring size of the io_uring instance.- Parameters:
ringSize- the ring size of the io_uring instance.- Returns:
- reference to this, so the API can be used fluently
-
setCqSize
public IoUringIoHandlerConfig setCqSize(int cqSize)
Set the size of the io_uring cqe.- Parameters:
cqSize- the size of the io_uring cqe.- Returns:
- reference to this, so the API can be used fluently
- Throws:
IllegalArgumentException- if cqSize is less than ringSize, or not a power of 2
-
setMaxBoundedWorker
public IoUringIoHandlerConfig setMaxBoundedWorker(int maxBoundedWorker)
Set the maximum number of bounded iowq worker threads.- Parameters:
maxBoundedWorker- the maximum number of bounded iowq worker threads, or 0 for the Linux kernel default- Returns:
- reference to this, so the API can be used fluently
-
setMaxUnboundedWorker
public IoUringIoHandlerConfig setMaxUnboundedWorker(int maxUnboundedWorker)
Set the maximum number of unbounded iowq worker threads.- Parameters:
maxUnboundedWorker- the maximum number of unbounded iowq worker threads, of 0 for the Linux kernel default- Returns:
- reference to this, so the API can be used fluently
-
setBufferRingConfig
public IoUringIoHandlerConfig setBufferRingConfig(IoUringBufferRingConfig... ringConfig)
Add a buffer ring configuration to the list of buffer ring configurations. EachIoUringBufferRingConfigmust have a differentIoUringBufferRingConfig.bufferGroupId().- Parameters:
ringConfig- the buffer ring configuration to append.- Returns:
- reference to this, so the API can be used fluently
-
getBufferRingConfigs
public List<IoUringBufferRingConfig> getBufferRingConfigs()
Get the list of buffer ring configurations.- Returns:
- the copy of buffer ring configurations.
-
-