[dm-devel] DM-CRYPT: Scale to multiple CPUs v3

Alasdair G Kergon agk at redhat.com
Sun Oct 10 18:17:36 UTC 2010


On Sun, Oct 10, 2010 at 07:44:54PM +0200, Andi Kleen wrote:
> It's not broken AFAIK and it will not perform worse than the original
> single thread work queue.
 
This is the contentious code:

+       /*
+        * Since we only have a single worker per CPU in extreme
+        * cases there might be nesting (dm-crypt on another dm-crypt)
+        * To avoid deadlock run the work directly then.
+        */
+       cpu = get_cpu();   
+       if (per_cpu(io_wq_cpu, cpu) == current && !in_interrupt()) {
+               put_cpu();
+               kcryptd_io(&io->work);   
+               return;
+       }

AFAIK Nested dm-crypt is not extreme for some folk who have routine
configurations using it.  But if in_interrupt is set how does this code
work for them now compared to how it worked before?

Alasdair




More information about the dm-devel mailing list