CC Jane, Daniel Jordan, Steffen as well in this thread. > On Feb 8, 2024, at 10:39, Muchun Song <muchun.song@xxxxxxxxx> wrote: > > >> On Feb 5, 2024, at 16:08, Gang Li <gang.li@xxxxxxxxx> wrote: >> >> On 2024/2/5 15:37, Muchun Song wrote: >>> Actually, I did not get it. Why the above code cannot work? The above >>> code already make it serialized in one call, right? What do I miss here? >>> Thanks. >> >> PADATA consists of two distinct functionality: >> >> One part is `padata_do_multithreaded`, which disregards >> order and simply divides tasks into several groups for parallel >> execution. My patch use `padata_do_multithreaded`. > > OK. Since all users of PADATA of non-SMP case currently only use padata_do_multithreaded, it’s possible and easy to implement a variant of that in non-SMP case. It is not necessary to implement another functionality unless the only user of crypto/pcrypt.c does not depend on SMP in the future, at least now it’s dependent on SMP. > > Thanks. > >> >> The other part is composed of a set of APIs that, while handling data in >> an out-of-order parallel manner, can eventually return the data with >> ordered sequence. Only `crypto/pcrypt.c` use them. I guess these APIs >> are designed specifically for `crypto/pcrypt.c`. >> ``` >> padata_alloc >> padata_alloc_shell >> padata_do_parallel >> padata_do_serial >> padata_free_shell >> padata_free >> ```