[QUESTION] How is the backlog supposed to be used?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all!

I have a question regarding the use of the backlog in a driver
using the crypto API.
In my driver ("crypto: sahara - SHA support") I had a problem with
using the backlog when I am using more than one thread to enqueue
the requests and have a queue depth of 1. What happens is, that I
run into the backlog and then complete the request twice, if I do
it like all the other drivers. Random example:

	backlog = crypto_get_backlog(&sdcp->queue[chan]);
	arq = crypto_dequeue_request(&sdcp->queue[chan]);

	if (backlog)
		backlog->complete(backlog, -EINPROGRESS);

Everything works fine if I do not complete the request from the
backlog, but instead complete the request when it is due.
Alternative: make the queue deeper like some drivers have it.
If the queue is deeper than I have threads, it works, because
the requests never get onto the backlog.
So, how is the queue intended to be used? What is a correct max_depth?
Do I need to complete the requests from the backlog or not?

Thanks,
Steffen

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux