- @modres_mutex: For synchronizing any @mods_info updates
Is this mutex really necessary? Can you please elaborate under what circumstances your will have parallel module updates?
Yes, we believe modres_mutex is necessary. All information regarding
modules exposed by the firmware are stored within ->mods_info cache.
That's just a snapshot though. When a new library gets loaded, new
modules may be available for use and so the driver updates the
->mods_info cache to have the latest snapshot. As information found
there is used when streaming (e.g.: instantiating modules), we enter a
scenario when multiple threads could be reading/updating the ->mods_info
at once. To prevent any unwanted behavior, mutex has been added.
This is the part that's hard to follow without seeing the actual code where this new library is loaded. When does a libray get loaded? When you start streaming and you realize that the stream requires a module that is not built into the base FW? Can this be done during topology loading instead?
Thanks, Rnajani