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

From: Alasdair G Kergon
Date: Sun Oct 10 2010 - 14:18:19 EST


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/