DPFS icon indicating copy to clipboard operation
DPFS copied to clipboard

Virtio-fs Linux driver does not support multi-queue

Open Peter-JanGootzen opened this issue 2 years ago • 0 comments

Problem https://elixir.bootlin.com/linux/latest/C/ident/virtio_fs_wake_pending_and_unlock

In the virtio_fs_wake_pending_and_unlock function the queue on which the request will be put, is hardcoded to a single virtio-fs request queue.

Execution Development is happening here: https://github.com/Peter-JanGootzen/linux

TODO:

  • [x] Select queue depending on CPU id
  • [ ] Fix needing to use get_cpu (smp_processor_id seems not to be allowed in tasks, but get_cpu disables preemption)
  • [x] Set interrupt affinity
  • [x] Simple cat test (only runs cat on a single core)
  • [ ] Big Ubuntu fio test (multi-core, check whether it actually goes into different queues with debugfs)
  • [ ] CPU Hotplugging (see virtio-net)
  • [ ] Implement round-robin queue scheduling (using atomics) in virtio-fs for comparison
  • [ ] Send it in as a formal patch (not a priority, but would be good for the paper)

Peter-JanGootzen avatar Dec 18 '22 15:12 Peter-JanGootzen