On Thu, Jul 05, 2018 at 04:15:06PM -0700, flihp wrote: > Thanks for reviewing the patch Jarkko. While you're doing that I took > some time to hack up code to demonstrate the utility of supporting this > feature. The code can be found here: > > https://github.com/flihp/glib-tss2-async-example > > In short, the example application `glib-tss2-event` uses a glib main > event loop to create an RSA 2048 primary key in the TPM2 NULL hierarchy > while using a glib timer event to time the operation. A GSource object > is used to generate an event when the FD underlying the tss2 function > call has data ready. While the application waits for an event indicating > that the CreatePrimary operation is complete, it counts timer events > that occur every 100ms. Once the CreatePrimary operation completes the > number of timer events that occurred is used to make a rough calculation > of the elapsed time. This value is then printed to the console. > > This takes ~300 lines of C code and requires no management or > synchronization of threads. The glib GMainContext is "just a poll() > loop" according to the glib documentation here: > > https://developer.gnome.org/programming-guidelines/stable/main-contexts.html.en > > and so supporting 'poll' is the easiest way to integrate with glib / > gtk+. This is true of any other event system that relies on 'poll' > instead of worker threads. > > I've tested this against the userspace resource management daemon (which > supports 'poll') as well as the kernel interface using Tadeusz's patch > currently under review here. If / when this gets merged feel free to add > a "tested-by" line for myself: > Tested-by: Philip Tricca <philip.b.tricca@xxxxxxxxx> I see the value now. I'll test this at early August when I'm back from my leave. Noticed now that the whole patch should be reposted because CC is missing linux-kernel and linux-security-module (maybe with a link to your test application in the cover letter). /Jarkko