On Fri, May 22, 2026 at 06:43:56PM +0200, Martin Wilck wrote: > Based on my previous patch set [1], which introduced the "runner" thread > handling code as an abstract implementation of the asynchronous checker > logic in the TUR checker, this set introduces a generic "async_checker" > type and converts all existing checkers except directio to this framework. > With this set applied, all checkers run asyncrhonously unless explicitly > forbidden to do so with the "force_sync" option. > > Patch 1-3 are minor preparations. Patch 4-8 introduce a general concept of a > refcounted "shared" pointer and use it to replace multiple instances > of hard-coded refcounts on objects. Patch 9 converts the current TUR code > into a generic asynchronous checker type by separating the actual TUR > code from the handling of the async runners. Patch 10 adds support for > this async checker type in the checkers code by searching for > "libcheck_async_func" with dlsym() in checker DSOs. Patch 11-15 convert > all checkers except emc_clariion to the async_checker framework. > emc_clariion is special because it needs extra context both for the checker > itself and for multipath-related information. Patch 16 and 17 add the > respective additional fields to the async_checker framework. The mpcontext > handling is rewritten, because the current apporach of handling void ** > pointers would be disastrous in scenarious with truly asynchronous checker > threads that may hang forever. Patch 18 finally converts emc_clariion, > using the concepts from patch 16 and 17. > > Comments and reviews welcome. > > Regards, > Martin >
Sorry for the late review. For the set: Reviewed-by: Benjamin Marzinski <[email protected]>
