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]>


Reply via email to