[dm-devel] [PATCH RFCv2 03/10] dm-dedup: hash computation
Vivek Goyal
vgoyal at redhat.com
Fri Feb 6 21:42:07 UTC 2015
On Thu, Aug 28, 2014 at 06:04:55PM -0400, Vasily Tarasov wrote:
[..]
> +#include "dm-dedup-target.h"
> +#include "dm-dedup-hash.h"
> +#include <linux/atomic.h>
> +#include <linux/blk_types.h>
> +
> +/*
> + * We are declaring and initalizaing global hash_desc, because
> + * we need to do hash computation in endio function, and this
> + * function is called in softirq context. Hence we are not
> + * allowed to perform any operation on that path which can sleep.
> + * And tfm allocation in hash_desc, at one point, tries to take
> + * semaphore and hence tries to sleep. And because of this we get
> + * BUG, which complains "Scheduling while atomic". Hence to avoid
> + * this scenario, we moved the declaration and initialization out
> + * of critical path.
> + */
Hi,
Is this comment still valid? We calculate hash when bio is submitted
from the worker thread context. So where is the softirq context here?
do_work()
process_bio()
handle_write()
compute_hash_bio()
This all is happening in worker worker thread context and not softirq
context?
Thanks
Vivek
More information about the dm-devel
mailing list