You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a hard time keeping up with all the new features added to io_uring...
the latest that I have looked into is using the IORING_SETUP_NO_MMAP.
Here are my questions:
Do you have any benchmarks or does it make any performance difference in using IORING_SETUP_NO_MMAP is it just a matter to better use the system memory resources?
I have 3 rings in my app.
all 3 are configured to have 256 sq entries.
One of them, the default cqe number is overriden to 8192 with IORING_SETUP_CQSIZE.
That ring do use IORING_RECV_MULTISHOT to manager 25 sockets and without that much cqes, it is constantly overflowing.
I am currently calculating the memory usage to see if I could cram all 3 in a single huge page...
Where does the MAP_SHARED requirement comes from?
If it is a bit of mystery to me considering that io_uring is fine with memory coming from a private anonymous mapping for the provided buffers.
Where does the 2MB huge page size come from?
There is a fix me comment in the setup.c file above the 2MB value. I will go read Documentation/mm/...
but in the Michael Kerrisk book, they mention that on x86, the size is 4MB... and I am pretty sure that the huge page size is configurable on the kernel command line param... I am pretty sure to have already seen a 3GB huge page sizes...
So please comment on the huge page size setting because this is something that is confusing me...
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
I have a hard time keeping up with all the new features added to io_uring...
the latest that I have looked into is using the IORING_SETUP_NO_MMAP.
Here are my questions:
I have 3 rings in my app.
all 3 are configured to have 256 sq entries.
One of them, the default cqe number is overriden to 8192 with IORING_SETUP_CQSIZE.
That ring do use IORING_RECV_MULTISHOT to manager 25 sockets and without that much cqes, it is constantly overflowing.
I am currently calculating the memory usage to see if I could cram all 3 in a single huge page...
If it is a bit of mystery to me considering that io_uring is fine with memory coming from a private anonymous mapping for the provided buffers.
There is a fix me comment in the setup.c file above the 2MB value. I will go read Documentation/mm/...
but in the Michael Kerrisk book, they mention that on x86, the size is 4MB... and I am pretty sure that the huge page size is configurable on the kernel command line param... I am pretty sure to have already seen a 3GB huge page sizes...
So please comment on the huge page size setting because this is something that is confusing me...
thx!
Beta Was this translation helpful? Give feedback.
All reactions