For a typical Linux server, probably there are several hardware modules. For example, numa node0 has a compressor, numa node2 has a same module. Some drivers are automatically using the module near the CPU calling acomp_alloc. But it isn't necessarily correct. Just like memory allocation API like kmalloc and kmalloc_node. Similar optimization may be done for crypto. Barry Song (3): crypto: permit users to specify numa node of acomp hardware crypto: hisilicon/zip - permit users to specify NUMA node mm/zswap: specify the NUMA node of acomp to use local compressors [mm/zswap patch is on top of linux-next tree] crypto/acompress.c | 8 ++++++++ crypto/api.c | 22 ++++++++++++++-------- crypto/internal.h | 23 +++++++++++++++++++---- drivers/crypto/hisilicon/zip/zip.h | 2 +- drivers/crypto/hisilicon/zip/zip_crypto.c | 6 +++--- drivers/crypto/hisilicon/zip/zip_main.c | 5 +++-- include/crypto/acompress.h | 7 +++++++ include/linux/crypto.h | 3 ++- mm/zswap.c | 2 +- 9 files changed, 58 insertions(+), 20 deletions(-) -- 2.27.0