On Donnerstag, 21. November 2019 00:37:36 CET Christian Schoenebeck wrote:
> If so, I haven't understood how precisely v9fs_co_run_in_worker() works. I
> mean I understand now how QEMU coroutines are working, and the idea of
> v9fs_co_run_in_worker() is dispatching the passed code block to the worker
> thread, but immediately returning back to main thread and continueing there
> on main thread with other coroutines while the worker thread's dispatched
> coroutine finished. But how that happens there precisely in
> v9fs_co_run_in_worker() is not yet clear to me.
> 
> Also where are the worker threads spawned actually?

Never mind about these questions; I figured them out by myself in the 
meantime.

Another question though: I see that you introduced those readdir mutex locks 
with commit 7cde47d4a89. Do you remember the scenario where this concurrency 
issue happened? 

V9fsDir exists per file ID. So I think concurrency should only happen there if 
the same file ID (of a directory) was shared and used concurrently on guest 
side. Because otherwise if the file ID was used by only one thread on guest 
side, then all 9p requests on that fid should end up being completely 
serialized end to end.

Best regards,
Christian Schoenebeck



Reply via email to