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)
)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.