I am running 4 hard drives and 1 SSD in my desktop with an i7-940 CPU. All of them are formatted with LUKS/dm-crypt with btrfs on top of them. There are 3 separate btrfs filesystems.

Running a btrfs scrub today, I noticed that the drives are only reading at about 30MB/sec. Looking into it, further, I discovered that there are multiple kworker threads running, but only one CPU core is being used for all of them, limiting the dm-crypt speed significantly.

Is there a way to have kworker utilize more than one CPU core? Or atleast different filesystems/disks per CPU?