Index: libcfa/src/concurrency/io.cfa
===================================================================
--- libcfa/src/concurrency/io.cfa	(revision 0335620c9fbbe75897c5ef0473c3475796a22d6f)
+++ libcfa/src/concurrency/io.cfa	(revision dd4e2d7a1ba13c040f8d0eb5c9b0c672b5755c3a)
@@ -20,5 +20,5 @@
 
 #if !defined(HAVE_LINUX_IO_URING_H)
-	void __kernel_io_startup( cluster &, int, bool ) {
+	void __kernel_io_startup( cluster &, unsigned, bool ) {
 		// Nothing to do without io_uring
 	}
@@ -205,5 +205,5 @@
 // I/O Startup / Shutdown logic
 //=============================================================================================
-	void __kernel_io_startup( cluster & this, int io_flags, bool main_cluster ) {
+	void __kernel_io_startup( cluster & this, unsigned io_flags, bool main_cluster ) {
 		this.io = malloc();
 
@@ -280,5 +280,5 @@
 
 		if( io_flags & CFA_CLUSTER_IO_POLLER_THREAD_SUBMITS ) {
-			sq.ready_cnt = 32;
+			sq.ready_cnt = max(io_flags >> CFA_CLUSTER_IO_BUFFLEN_OFFSET, 8);
 			sq.ready = alloc_align( 64, sq.ready_cnt );
 			for(i; sq.ready_cnt) {
@@ -753,4 +753,6 @@
 				__atomic_fetch_add( &ring.submit_q.stats.look_avg.cnt,   1,     __ATOMIC_RELAXED );
 			#endif
+
+			__cfadbg_print_safe( io, "Kernel I/O : Added %u to ready for %p\n", idx, active_thread() );
 		}
 		else {
@@ -781,8 +783,7 @@
 
 			unlock(ring.submit_q.lock);
-		}
-		// Make sure that idx was submitted
-		// Be careful to not get false positive if we cycled the entire list or that someone else submitted for us
-		__cfadbg_print_safe( io, "Kernel I/O : Performed io_submit for %p, returned %d\n", active_thread(), ret );
+
+			__cfadbg_print_safe( io, "Kernel I/O : Performed io_submit for %p, returned %d\n", active_thread(), ret );
+		}
 	}
 
Index: libcfa/src/concurrency/kernel.cfa
===================================================================
--- libcfa/src/concurrency/kernel.cfa	(revision 0335620c9fbbe75897c5ef0473c3475796a22d6f)
+++ libcfa/src/concurrency/kernel.cfa	(revision dd4e2d7a1ba13c040f8d0eb5c9b0c672b5755c3a)
@@ -256,5 +256,5 @@
 }
 
-void ?{}(cluster & this, const char name[], Duration preemption_rate, int io_flags) with( this ) {
+void ?{}(cluster & this, const char name[], Duration preemption_rate, unsigned io_flags) with( this ) {
 	this.name = name;
 	this.preemption_rate = preemption_rate;
Index: libcfa/src/concurrency/kernel.hfa
===================================================================
--- libcfa/src/concurrency/kernel.hfa	(revision 0335620c9fbbe75897c5ef0473c3475796a22d6f)
+++ libcfa/src/concurrency/kernel.hfa	(revision dd4e2d7a1ba13c040f8d0eb5c9b0c672b5755c3a)
@@ -119,4 +119,5 @@
 #define CFA_CLUSTER_IO_POLLER_THREAD_SUBMITS 1 << 1 // 0x2
 // #define CFA_CLUSTER_IO_POLLER_KERNEL_SIDE 1 << 2 // 0x4
+#define CFA_CLUSTER_IO_BUFFLEN_OFFSET        16
 
 //-----------------------------------------------------------------------------
@@ -160,13 +161,13 @@
 extern Duration default_preemption();
 
-void ?{} (cluster & this, const char name[], Duration preemption_rate, int flags);
+void ?{} (cluster & this, const char name[], Duration preemption_rate, unsigned flags);
 void ^?{}(cluster & this);
 
-static inline void ?{} (cluster & this)                                      { this{"Anonymous Cluster", default_preemption(), 0}; }
-static inline void ?{} (cluster & this, Duration preemption_rate)            { this{"Anonymous Cluster", preemption_rate, 0}; }
-static inline void ?{} (cluster & this, const char name[])                   { this{name, default_preemption(), 0}; }
-static inline void ?{} (cluster & this, int flags)                           { this{"Anonymous Cluster", default_preemption(), flags}; }
-static inline void ?{} (cluster & this, Duration preemption_rate, int flags) { this{"Anonymous Cluster", preemption_rate, flags}; }
-static inline void ?{} (cluster & this, const char name[], int flags)        { this{name, default_preemption(), flags}; }
+static inline void ?{} (cluster & this)                                           { this{"Anonymous Cluster", default_preemption(), 0}; }
+static inline void ?{} (cluster & this, Duration preemption_rate)                 { this{"Anonymous Cluster", preemption_rate, 0}; }
+static inline void ?{} (cluster & this, const char name[])                        { this{name, default_preemption(), 0}; }
+static inline void ?{} (cluster & this, unsigned flags)                           { this{"Anonymous Cluster", default_preemption(), flags}; }
+static inline void ?{} (cluster & this, Duration preemption_rate, unsigned flags) { this{"Anonymous Cluster", preemption_rate, flags}; }
+static inline void ?{} (cluster & this, const char name[], unsigned flags)        { this{name, default_preemption(), flags}; }
 
 static inline [cluster *&, cluster *& ] __get( cluster & this ) __attribute__((const)) { return this.node.[next, prev]; }
Index: libcfa/src/concurrency/kernel_private.hfa
===================================================================
--- libcfa/src/concurrency/kernel_private.hfa	(revision 0335620c9fbbe75897c5ef0473c3475796a22d6f)
+++ libcfa/src/concurrency/kernel_private.hfa	(revision dd4e2d7a1ba13c040f8d0eb5c9b0c672b5755c3a)
@@ -77,5 +77,5 @@
 //-----------------------------------------------------------------------------
 // I/O
-void __kernel_io_startup     ( cluster &, int, bool );
+void __kernel_io_startup     ( cluster &, unsigned, bool );
 void __kernel_io_finish_start( cluster & );
 void __kernel_io_prepare_stop( cluster & );
