This patch implements several features discussed previously:
- crypto_session_alloc() split. I did not change crypto_session_alloc()
name, but added
struct crypto_session *crypto_session_create(
struct crypto_initizlier *, struct crypto_data *)
and void crypto_session_add(struct crypto_session *s);
Thus now we have timeslice for crypto routing manipulations.
- Added per crypto_initializer ptime and scomp fields.
The former is total time sessions with given crypto_initializer
being processed, it is in jifies.
The latter is total number of session with given crypto_initializer
already have been processed. Sum of all scomp above is equal to
dev->stat.scompleted - total number io completed sessions
in given device.
- Added crypto_wake_lb() call - this function is called when device
finishes session processing(by calling stop_process_session()).
It wakes crypto_lb_thread() which efficiently reduces latancies.
- Added struct crypto_data * parameter into crypto_lb_find_device().
Load balancer now has ability to select device based not only
on device's capabilities, but on packet's characteristics too.
- If none crypto load balancer registered yet, then just return NULL
from crypto_session_{create,alloc}(), not BUG_ON().
Evgeniy Polyakov
Only failure makes us experts. -- Theo de Raadt
crypto.patch
Description: Binary data
|