dm vdo: add specialized request queueing functionality
authorMatthew Sakai <msakai@redhat.com>
Fri, 17 Nov 2023 00:48:41 +0000 (19:48 -0500)
committerMike Snitzer <snitzer@kernel.org>
Tue, 20 Feb 2024 18:43:13 +0000 (13:43 -0500)
commitd9e894d9b2ec9f3117f4d16400a3981c48bb0639
tree14d72ce6449373dd96af332f7ef78d8df5400f42
parent89f9b701f5b800daa76506d5bba197624e97ee44
dm vdo: add specialized request queueing functionality

This patch adds funnel_queue, a mostly lock-free multi-producer,
single-consumer queue. It also adds the request queue used by the dm-vdo
deduplication index, and the work_queue used by the dm-vdo data store. Both
of these are built on top of funnel queue and are intended to support the
dispatching of many short-running tasks. The work_queue also supports
priorities. Finally, this patch adds vdo_completion, the structure which is
enqueued on work_queues.

Co-developed-by: J. corwin Coburn <corwin@hurlbutnet.net>
Signed-off-by: J. corwin Coburn <corwin@hurlbutnet.net>
Co-developed-by: Michael Sclafani <dm-devel@lists.linux.dev>
Signed-off-by: Michael Sclafani <dm-devel@lists.linux.dev>
Co-developed-by: Sweet Tea Dorminy <sweettea-kernel@dorminy.me>
Signed-off-by: Sweet Tea Dorminy <sweettea-kernel@dorminy.me>
Co-developed-by: Ken Raeburn <raeburn@redhat.com>
Signed-off-by: Ken Raeburn <raeburn@redhat.com>
Signed-off-by: Matthew Sakai <msakai@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
drivers/md/dm-vdo/completion.c [new file with mode: 0644]
drivers/md/dm-vdo/completion.h [new file with mode: 0644]
drivers/md/dm-vdo/cpu.h [new file with mode: 0644]
drivers/md/dm-vdo/funnel-queue.c [new file with mode: 0644]
drivers/md/dm-vdo/funnel-queue.h [new file with mode: 0644]
drivers/md/dm-vdo/funnel-requestqueue.c [new file with mode: 0644]
drivers/md/dm-vdo/funnel-requestqueue.h [new file with mode: 0644]
drivers/md/dm-vdo/funnel-workqueue.c [new file with mode: 0644]
drivers/md/dm-vdo/funnel-workqueue.h [new file with mode: 0644]