Re: [cocci] Checking run time characteristics for longer SmPL disjunctions?
Markus Elfring <[email protected]>
| Newsgroups | fr.inria.cocci |
|---|---|
| Message-ID | <[email protected]> |
> I constructed the attached SmPL script based on information from six header files. > https://elixir.bootlin.com/linux/v6.18-rc4/source/include/crypto > > It seems that such a detailed SmPL disjunction triggers special run time characteristics. > My own computation resources can be too limited for this “test case”. > > Markus_Elfring@Sonne:…/Projekte/Linux/next-analyses> time /usr/bin/spatch --timeout 23 -j4 --chunksize 1 --no-loops -dir . /home/altes_Heim2/elfring/Projekte/Coccinelle/janitor/use_selected_crypto_functions.cocci > /home/altes_Heim2/elfring/Projekte/Bau/Linux/scripts/Coccinelle/use_selected_crypto_functions-20251110.diff 2> /home/altes_Heim2/elfring/Projekte/Bau/Linux/scripts/Coccinelle/use_selected_crypto_functions-errors-20251110.txt > > real 80m0,408s > user 305m59,250s > sys 1m46,591s > > > > 13905:EXN: Coccinelle_modules.Common.Timeout in ./drivers/net/wireless/realtek/rtw89/rtw8852c_table.c > 23814:EXN: Coccinelle_modules.Common.Timeout in ./drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c > 39760:EXN: Coccinelle_modules.Common.Timeout in ./kernel/bpf/verifier.c > > > Update candidates were indicated for 22 source files finally. > > > Would you get into the mood to discuss further data processing possibilities? > (Are your computers more powerful than mine?) I hope that recent software improvements can become more helpful. Thus the following information can be determined from the application of the software combination “Coccinelle 1.3.2”. Markus_Elfring@Sonne:…/Projekte/Coccinelle/janitor> spatch --parse-cocci use_selected_crypto_functions.cocci | grep -E '^\|' | wc -l … 74 Regards, Markus
use_selected_crypto_functions.cocci
(text/plain, 4.3 KB)
@replacements@ expression a, alg, b, buffer, dlen, dst, len, padata, rdata, req, size, slen, src, x_tfm; @@ ( -__crypto_memneq(a, b, size) != 0UL ? 1 : 0 +crypto_memneq(a, b, size) | -container_of(x_tfm, struct crypto_skcipher, base) +__crypto_skcipher_cast(x_tfm) // | // -&x_tfm->base // +crypto_skcipher_tfm(x_tfm) // | // -&x_tfm->base // +crypto_lskcipher_tfm(x_tfm) | -crypto_skcipher_tfm(&x_tfm->base) +crypto_sync_skcipher_tfm(x_tfm) | -crypto_tfm_alg_driver_name(crypto_skcipher_tfm(x_tfm)) +crypto_skcipher_driver_name(x_tfm) | -crypto_tfm_alg_driver_name(crypto_lskcipher_tfm(x_tfm)) +crypto_lskcipher_driver_name(x_tfm) | -container_of(crypto_skcipher_tfm(x_tfm)->__crt_alg, struct skcipher_alg_common, base) +crypto_skcipher_alg_common(x_tfm) | -container_of(crypto_skcipher_tfm(x_tfm)->__crt_alg, struct skcipher_alg, base) +crypto_skcipher_alg(x_tfm) | -container_of(crypto_lskcipher_tfm(x_tfm)->__crt_alg, struct lskcipher_alg, co.base) +crypto_lskcipher_alg(x_tfm) | -crypto_skcipher_alg_common(x_tfm)->ivsize +crypto_skcipher_ivsize(x_tfm) | -crypto_skcipher_ivsize(&x_tfm->base) +crypto_sync_skcipher_ivsize(x_tfm) | -crypto_lskcipher_alg(x_tfm)->co.ivsize +crypto_lskcipher_ivsize(x_tfm) | -crypto_tfm_alg_blocksize(crypto_skcipher_tfm(x_tfm)) +crypto_skcipher_blocksize(x_tfm) | -crypto_tfm_alg_blocksize(crypto_lskcipher_tfm(x_tfm)) +crypto_lskcipher_blocksize(x_tfm) | -crypto_skcipher_alg_common(x_tfm)->chunksize +crypto_skcipher_chunksize(x_tfm) | -crypto_lskcipher_alg(x_tfm)->co.chunksize +crypto_lskcipher_chunksize(x_tfm) | -crypto_skcipher_alg_common(x_tfm)->statesize +crypto_skcipher_statesize(x_tfm) | -crypto_lskcipher_alg(x_tfm)->co.statesize +crypto_lskcipher_statesize(x_tfm) | -crypto_skcipher_blocksize(&x_tfm->base) +crypto_sync_skcipher_blocksize(x_tfm) | -crypto_tfm_alg_alignmask(crypto_skcipher_tfm(x_tfm)) +crypto_skcipher_alignmask(x_tfm) | -crypto_tfm_alg_alignmask(crypto_lskcipher_tfm(x_tfm)) +crypto_lskcipher_alignmask(x_tfm) | -crypto_tfm_get_flags(crypto_skcipher_tfm(x_tfm)) +crypto_skcipher_get_flags(x_tfm) | -crypto_skcipher_get_flags(&x_tfm->base) +crypto_sync_skcipher_get_flags(x_tfm) | -crypto_tfm_get_flags(crypto_lskcipher_tfm(x_tfm)) +crypto_lskcipher_get_flags(x_tfm) | -crypto_skcipher_setkey(&x_tfm->base, key, keylen) +crypto_sync_skcipher_setkey(x_tfm, key, keylen) | -crypto_skcipher_alg_common(x_tfm)->min_keysize +crypto_skcipher_min_keysize(x_tfm) | -crypto_skcipher_alg_common(x_tfm)->max_keysize +crypto_skcipher_max_keysize(x_tfm) | -crypto_lskcipher_alg(x_tfm)->co.min_keysize +crypto_lskcipher_min_keysize(x_tfm) | -crypto_lskcipher_alg(x_tfm)->co.max_keysize +crypto_lskcipher_max_keysize(x_tfm) | -__crypto_skcipher_cast(req->base.tfm) +crypto_skcipher_reqtfm(req) // | // -x_tfm->reqsize // +crypto_skcipher_reqsize(x_tfm) | -container_of(req, struct skcipher_request, base) +skcipher_request_cast(req) // | // -&x_tfm->base // +crypto_kpp_tfm(x_tfm) | -container_of(alg, struct kpp_alg, base) +__crypto_kpp_alg(alg) | -container_of(x_tfm, struct crypto_kpp, base) +__crypto_kpp_tfm(x_tfm) | -__crypto_kpp_alg(crypto_kpp_tfm(x_tfm)->__crt_alg) +crypto_kpp_alg(x_tfm) // | // -x_tfm->reqsize // +crypto_kpp_reqsize(x_tfm) | -__crypto_kpp_tfm(req->base.tfm) +crypto_kpp_reqtfm(req) | -crypto_tfm_get_flags(crypto_kpp_tfm(x_tfm)) +crypto_kpp_get_flags(x_tfm) | -crypto_kpp_alg(x_tfm)->set_secret(x_tfm, buffer, len) +crypto_kpp_set_secret(x_tfm, buffer, len) // | // -req->__ctx // +pcrypt_request_ctx(req) // | // -&req->padata // +pcrypt_request_padata(req) | -container_of(padata, struct pcrypt_request, padata) +pcrypt_padata_request(padata) // | // -&x_tfm->base // +crypto_rng_tfm(x_tfm) | -container_of(alg, struct rng_alg, base) +__crypto_rng_alg(alg) | -__crypto_rng_alg(crypto_rng_tfm(x_tfm)->__crt_alg) +crypto_rng_alg(x_tfm) | -crypto_rng_alg(x_tfm)->generate(x_tfm, src, slen, dst, dlen) +crypto_rng_generate(x_tfm, src, slen, dst, dlen) | -crypto_rng_generate(x_tfm, NULL, 0, rdata, dlen) +crypto_rng_get_bytes(x_tfm, rdata, dlen) | -crypto_rng_alg(x_tfm)->seedsize +crypto_rng_seedsize(x_tfm) // | // -&x_tfm->base // +crypto_sig_tfm(x_tfm) | -container_of(x_tfm, struct crypto_sig, base) +__crypto_sig_tfm(x_tfm) | -container_of(alg, struct sig_alg, base) +__crypto_sig_alg(alg) | -__crypto_sig_alg(crypto_sig_tfm(x_tfm)->__crt_alg) +crypto_sig_alg(x_tfm) )