On Fri, Dec 03, 2021 at 12:49:26PM -0800, Dmitry Torokhov wrote: > > I must be getting lost in terminology, and it feels to me that what is > discussed here is most likely of no interest to a lot of potential > users, especially ones that do compression/decompression. In majority of > cases they want to simply compress or decompress data, and they just > want to do it quickly and with minimal amount of memory consumed. They > do not particularly care if the task is being offloaded or executed on > the main CPU, either on separate thread or on the same thread, so the > discussion about scomp/acomp/etc is of no interest to them. From their > perspective they'd be totally fine with a wrapper that would do: > > int decompress(...) { > prepare_request() > send_request() > wait_for_request() > } > > and from their perspective this would be a synchronous API they are > happy with. You can certainly do that as a Crypto API user. And we do have some users who do exactly this (for example, testmgr does that when testing async algorithms). However, this can't be a part of the API itself since many of our users execute in atomic contexts. > So from POV of such users what is actually missing is streaming mode of > compressing/decompressing where core would allow supplying additonal > data on demand and allow consuming output as it is being produced, and I > do not see anything like that in either scomp or acomp. That is indeed a very crucial part of the compression API that is missing. And I would love someone to donate some time to addressing this. Thanks, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt