Embedded Intel® Core™ Processors
Communicate Intel® Core™ Hardware, Software, Firmware, Graphics Concerns
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.

Question about qat_engine_init


I have a question about developing Intel QAT Application.

Can you please help us on this issue?

I want to develop NGINX Application that accelerate SSL processing using QAT Engine and OpenSSL 1.1.0 pre5 by EVENT_DRIVEN.

It is listed in a document as follows:

* It must be sent if required after engine creation but before engine initialization. It should not be sent after engine initialization.

I think that "Engine initialization" is Engine_init.

Because qat_engine_init which is called by Engine_init finished all in the following logics, after I can not acquire FD using GET_POLLIG_FD.

/* Work around for fork case, finish engine in parent process */

if(initiator_pid == 0) {


qat_inited = 0;

keep_polling = 1;


In the qat_engine_init source comment, I think that this considers master/worker process like the nginx.

Because qat_engine_init is called from "CRYPTO_THREAD_run_once(&engine_lock_init, do_engine_lock_init);", it is called only once.

In other words it is never called in worker because it is initialized in master.

How should I initialize it?

0 Kudos
1 Reply

Hello intel524 ,

Thank you for contacting the Intel Embedded Community.

In order to help you, we suggest you review as a reference the information stated at the https://github.com/01org/QAT_Engine/blob/master/e_qat.c QAT_Engine/e_qat.c at master website.

By the way, you also can address this consultation as a reference to the https://www.openssl.org/community/mailinglists.html OpenSSL community.

We hope that this information may help you.

Best Regards,

Carlos_A .