On Fri, 23 Jan 2026 12:13:43 +0200, Zhi Wang wrote:
Thanks so much for the work and the discussion. It is super important
efforts for me to move on for the vGPU work. :)
Great!
As we discussed, the concurrency matters most when booting multiple vGPUs.
At that time, the concurrency happens at:
1) Allocating GPU memory chunks
2) Reserving GPU channels
3) Mapping GPU memory to BAR1 page table
Yes all these are already covered from a concurrency PoV by the v6.
I can see you are thinking of fine-granularity locking scheme, which I
think is the right direction to go. I agreed with the above two locks.
Cool!
However for 3), We need to have one there as well beside the above two
locks. Have you already had one in the GPU VA allocator?
Currently for mapping Bar pages, you need a mutable reference to BarUser.
For the future, when we have multiple channels sharing the same va space,
it will still be protected because the va space allocator (virt_buddy)
already has internal locking. And for each map_page, it is protected as
well. So I believe that should also be covered. Thanks for checking.
If yes, the above two locks should be good enough so far. IMO.
Ok, thanks for checking.
--
Joel Fernandes