libsnapshot: ublk: enable multi-queue support for Ublk
This change introduces multi-queue support for the Ublk backend in
snapuserd. This allows for parallel I/O processing, significantly
improving performance on multi-core systems.
The key changes include:
- Plumbed the number of worker threads down to the Ublk device
creation to configure the correct number of hardware queues.
- Introduced a condition variable to synchronize the initialization
of the Ublk device and its queues across multiple threads.
- Refactored the Ublk device initialization logic to ensure that
control-plane operations are performed on the main thread and
data-plane operations are performed on the worker threads. This
ensures thread-safe and correct initialization of the underlying
ublksrv library.
Bug: 414812023
Test: OTA on cuttlefish with ublk enabled
Test: vts_libsnapshot_test with and without ublk
Signed-off-by:
Sandeep Dhavale <dhavale@google.com>
Change-Id: Ide08ea770cc7edfe59e975604bc5ced1a41e3022
Loading
Please register or sign in to comment