Package io.netty.channel.uring
Class IoUringIoHandlerConfig
- java.lang.Object
-
- io.netty.channel.uring.IoUringIoHandlerConfig
-
public final class IoUringIoHandlerConfig extends java.lang.Object
Configuration class for anIoUringIoHandler
, managing the settings for aRingBuffer
and its io_uring file descriptor.Option Map
These options are used exclusively during the initialization of theIoUringIoHandler
to configure the associated io_uring instance.The
IoUringIoHandlerConfig
class 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 java.util.List<IoUringBufferRingConfig>
getBufferRingConfigs()
Get the list of buffer ring configurations.int
getCqSize()
Return the size of the io_uring cqe.int
getMaxBoundedWorker()
Return the maximum number of bounded iowq worker threads.int
getMaxUnboundedWorker()
Return the maximum number of unbounded iowq worker threads.int
getRingSize()
Return the ring size of the io_uring instance.IoUringIoHandlerConfig
setBufferRingConfig(IoUringBufferRingConfig... ringConfig)
Add a buffer ring configuration to the list of buffer ring configurations.IoUringIoHandlerConfig
setCqSize(int cqSize)
Set the size of the io_uring cqe.IoUringIoHandlerConfig
setMaxBoundedWorker(int maxBoundedWorker)
Set the maximum number of bounded iowq worker threads.IoUringIoHandlerConfig
setMaxUnboundedWorker(int maxUnboundedWorker)
Set the maximum number of unbounded iowq worker threads.IoUringIoHandlerConfig
setRingSize(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:
java.lang.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. EachIoUringBufferRingConfig
must 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 java.util.List<IoUringBufferRingConfig> getBufferRingConfigs()
Get the list of buffer ring configurations.- Returns:
- the copy of buffer ring configurations.
-
-