DPFS
DPFS copied to clipboard
Virtio-fs Linux driver does not support multi-queue
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)