[RFC] per-CPU cryptd thread implementation based on workqueue

2009-01-15 Thread Huang Ying
Hi, Herbert, The scalability of current cryptd implementation is not good. So a per-CPU cryptd kthread implementation is necessary. The per-CPU kthread pool implementation need to consider many issues such as CPU hotplug, so I suggest to base cryptd kthread implementation on workqueue, that is, cr

Re: [RFC] per-CPU cryptd thread implementation based on workqueue

2009-01-15 Thread Herbert Xu
On Fri, Jan 16, 2009 at 11:10:36AM +0800, Huang Ying wrote: > > The scalability of current cryptd implementation is not good. So a > per-CPU cryptd kthread implementation is necessary. The per-CPU kthread > pool implementation need to consider many issues such as CPU hotplug, so > I suggest to bas

Re: [RFC] per-CPU cryptd thread implementation based on workqueue

2009-01-21 Thread Huang Ying
On Fri, 2009-01-16 at 11:31 +0800, Herbert Xu wrote: > On Fri, Jan 16, 2009 at 11:10:36AM +0800, Huang Ying wrote: > > > > The scalability of current cryptd implementation is not good. So a > > per-CPU cryptd kthread implementation is necessary. The per-CPU kthread > > pool implementation need to

Re: [RFC] per-CPU cryptd thread implementation based on workqueue

2009-01-21 Thread Herbert Xu
On Thu, Jan 22, 2009 at 10:32:17AM +0800, Huang Ying wrote: > > This is the first attempt to use a dedicate workqueue for crypto. It is > not intended to be merged. Please feedback your comments, especially on > desgin. Thanks for the patch! > + spin_lock_init(&cpu_queue->lock); Sinc

Re: [RFC] per-CPU cryptd thread implementation based on workqueue

2009-01-21 Thread Huang Ying
On Thu, 2009-01-22 at 11:04 +0800, Herbert Xu wrote: > On Thu, Jan 22, 2009 at 10:32:17AM +0800, Huang Ying wrote: > > > > This is the first attempt to use a dedicate workqueue for crypto. It is > > not intended to be merged. Please feedback your comments, especially on > > desgin. > > Thanks for

Re: [RFC] per-CPU cryptd thread implementation based on workqueue

2009-01-21 Thread Herbert Xu
On Thu, Jan 22, 2009 at 03:15:58PM +0800, Huang Ying wrote: > > Yes. Except that, now we do not need a spin lock really. I think the > spin lock may be useful if we enqueue a request on other CPU's queue to > do load balance. And if it is possible that the work_struct to be > executed on CPU other

Re: [RFC] per-CPU cryptd thread implementation based on workqueue

2009-01-23 Thread Andrew Morton
On Thu, 22 Jan 2009 10:32:17 +0800 Huang Ying wrote: > Use dedicate workqueue for crypto > > - A dedicated workqueue named kcrypto_wq is created. > > - chainiv uses kcrypto_wq instead of keventd_wq. > > - For cryptd, struct cryptd_queue is defined to be a per-CPU queue, > which holds one str

Re: [RFC] per-CPU cryptd thread implementation based on workqueue

2009-01-27 Thread Herbert Xu
On Fri, Jan 23, 2009 at 11:07:06PM -0800, Andrew Morton wrote: > > > +int cryptd_enqueue_request(struct cryptd_queue *queue, > > + struct crypto_async_request *request) > > +{ > > + int cpu, err, queued; > > + struct cryptd_cpu_queue *cpu_queue; > > + > > + cpu = get_cpu(

Re: [RFC] per-CPU cryptd thread implementation based on workqueue

2009-02-01 Thread Huang Ying
Sorry for my late. Last week is Chinese new year holiday. On Sat, 2009-01-24 at 15:07 +0800, Andrew Morton wrote: > On Thu, 22 Jan 2009 10:32:17 +0800 Huang Ying wrote: > > > Use dedicate workqueue for crypto > > > > - A dedicated workqueue named kcrypto_wq is created. > > > > - chainiv uses k

Re: [RFC] per-CPU cryptd thread implementation based on workqueue

2009-02-01 Thread Huang Ying
I design a performance testing for cryptd with a little modified dm-crypt. The testing script is as follow: script begin --- #!/bin/sh dmc_create() { # Create a crypt device using dmsetup dmsetup create $2 --table "0 `blockdev --getsize

Re: [RFC] per-CPU cryptd thread implementation based on workqueue

2009-02-01 Thread Huang Ying
On Thu, 2009-01-22 at 15:30 +0800, Herbert Xu wrote: > On Thu, Jan 22, 2009 at 03:15:58PM +0800, Huang Ying wrote: The only needed spin lock usage is cryptd_tfm_in_queue() now, I think we can protect that via RCU, what's your opinions? > > Yes. Except that, now we do not need a spin lock really.

Re: [RFC] per-CPU cryptd thread implementation based on workqueue

2009-02-01 Thread Herbert Xu
On Mon, Feb 02, 2009 at 11:30:25AM +0800, Huang Ying wrote: > > The only needed spin lock usage is cryptd_tfm_in_queue() now, I think we > can protect that via RCU, what's your opinions? We should just get rid of cryptd_tfm_in_queue since it's only used for debugging. > But I think the simplest