€•gŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒEnglish”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ/locking/locktorture”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Simplified)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/zh_CN/locking/locktorture”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/zh_TW/locking/locktorture”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/ja_JP/locking/locktorture”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/ko_KR/locking/locktorture”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/pt_BR/locking/locktorture”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/sp_SP/locking/locktorture”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒItalian”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒT/var/lib/git/docbuild/linux/Documentation/translations/it_IT/locking/locktorture.rst”h´KubhŒwarning”“”)”}”(hŒ×In caso di dubbi sulla correttezza del contenuto di questa traduzione, l'unico riferimento valido è la documentazione ufficiale in inglese. Per maggiori informazioni consultate le :ref:`avvertenze `.”h]”hŒ paragraph”“”)”}”(hŒ×In caso di dubbi sulla correttezza del contenuto di questa traduzione, l'unico riferimento valido è la documentazione ufficiale in inglese. Per maggiori informazioni consultate le :ref:`avvertenze `.”h]”(hŒ·In caso di dubbi sulla correttezza del contenuto di questa traduzione, l’unico riferimento valido è la documentazione ufficiale in inglese. Per maggiori informazioni consultate le ”…””}”(hhÐh²hh³Nh´Nubh)”}”(hŒ!:ref:`avvertenze `”h]”hŒinline”“”)”}”(hhÚh]”hŒ avvertenze”…””}”(hhÞh²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1hÜhhØubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œ&translations/it_IT/locking/locktorture”Œ refdomain”héŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆŒ reftarget”Œ it_disclaimer”uh1hh³Œ3Documentation/translations/it_IT/disclaimer-ita.rst”h´KhhÐubhŒ.”…””}”(hhÐh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÎh³hýh´KhhÊubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhhh²hh³hýh´NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ,Funzionamento del test *Kernel Lock Torture*”h]”(hŒFunzionamento del test ”…””}”(hjh²hh³Nh´NubhŒemphasis”“”)”}”(hŒ*Kernel Lock Torture*”h]”hŒKernel Lock Torture”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÇh´Kubj)”}”(hhh]”(j)”}”(hŒCONFIG_LOCK_TORTURE_TEST”h]”hŒCONFIG_LOCK_TORTURE_TEST”…””}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj3h²hh³hÇh´K ubhÏ)”}”(hXqL'opzione di configurazione CONFIG_LOCK_TORTURE_TEST fornisce un modulo kernel che esegue delle verifiche che *torturano* le primitive di sincronizzazione del kernel. Se dovesse servire, il modulo kernel, 'locktorture', può essere generato successivamente su un kernel che volete verificare. Periodicamente le verifiche stampano messaggi tramite ``printk()`` e che quindi possono essere letti tramite ``dmesg`` (magari filtrate l'output con ``grep "torture"``). La verifica inizia quando il modulo viene caricato e termina quando viene rimosso. Questo programma si basa sulle modalità di verifica di RCU tramite rcutorture.”h]”(hŒpL’opzione di configurazione CONFIG_LOCK_TORTURE_TEST fornisce un modulo kernel che esegue delle verifiche che ”…””}”(hjDh²hh³Nh´Nubj)”}”(hŒ *torturano*”h]”hŒ torturano”…””}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjDubhŒæ le primitive di sincronizzazione del kernel. Se dovesse servire, il modulo kernel, ‘locktorture’, può essere generato successivamente su un kernel che volete verificare. Periodicamente le verifiche stampano messaggi tramite ”…””}”(hjDh²hh³Nh´NubhŒliteral”“”)”}”(hŒ ``printk()``”h]”hŒprintk()”…””}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j^hjDubhŒ+ e che quindi possono essere letti tramite ”…””}”(hjDh²hh³Nh´Nubj_)”}”(hŒ ``dmesg``”h]”hŒdmesg”…””}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j^hjDubhŒ! (magari filtrate l’output con ”…””}”(hjDh²hh³Nh´Nubj_)”}”(hŒ``grep "torture"``”h]”hŒgrep "torture"”…””}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j^hjDubhŒ¥). La verifica inizia quando il modulo viene caricato e termina quando viene rimosso. Questo programma si basa sulle modalità di verifica di RCU tramite rcutorture.”…””}”(hjDh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÎh³hÇh´K hj3h²hubhÏ)”}”(hXNQuesta verifica consiste nella creazione di un certo numero di thread del kernel che acquisiscono un blocco e lo trattengono per una certa quantità di tempo così da simulare diversi comportamenti nelle sezioni critiche. La quantità di contese su un blocco può essere simulata allargando la sezione critica e/o creando più thread.”h]”hXNQuesta verifica consiste nella creazione di un certo numero di thread del kernel che acquisiscono un blocco e lo trattengono per una certa quantità di tempo così da simulare diversi comportamenti nelle sezioni critiche. La quantità di contese su un blocco può essere simulata allargando la sezione critica e/o creando più thread.”…””}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎh³hÇh´Khj3h²hubeh}”(h]”Œconfig-lock-torture-test”ah ]”h"]”Œconfig_lock_torture_test”ah$]”h&]”uh1jhjh²hh³hÇh´K ubj)”}”(hhh]”(j)”}”(hŒParametri del modulo”h]”hŒParametri del modulo”…””}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj²h²hh³hÇh´KubhÏ)”}”(hŒ&Questo modulo ha i seguenti parametri:”h]”hŒ&Questo modulo ha i seguenti parametri:”…””}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎh³hÇh´K hj²h²hubj)”}”(hhh]”(j)”}”(hŒSpecifici di locktorture”h]”hŒSpecifici di locktorture”…””}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÑh²hh³hÇh´K$ubhŒdefinition_list”“”)”}”(hhh]”(hŒdefinition_list_item”“”)”}”(hŒ¸nwriters_stress Numero di thread del kernel che stresseranno l'acquisizione esclusiva dei blocchi (scrittori). Il valore di base è il doppio del numero di processori attivi presenti. ”h]”(hŒterm”“”)”}”(hŒnwriters_stress”h]”hŒnwriters_stress”…””}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíh³hÇh´K)hjéubhŒ definition”“”)”}”(hhh]”hÏ)”}”(hŒ§Numero di thread del kernel che stresseranno l'acquisizione esclusiva dei blocchi (scrittori). Il valore di base è il doppio del numero di processori attivi presenti.”h]”hŒ©Numero di thread del kernel che stresseranno l’acquisizione esclusiva dei blocchi (scrittori). Il valore di base è il doppio del numero di processori attivi presenti.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎh³hÇh´K'hjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jýhjéubeh}”(h]”h ]”h"]”h$]”h&]”uh1jçh³hÇh´K)hjäubjè)”}”(hX#nreaders_stress Numero di thread del kernel che stresseranno l'acquisizione condivisa dei blocchi (lettori). Il valore di base è lo stesso di nwriters_stress. Se l'utente non ha specificato nwriters_stress, allora entrambe i valori corrisponderanno al numero di processori attivi presenti. ”h]”(jî)”}”(hŒnreaders_stress”h]”hŒnreaders_stress”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíh³hÇh´K0hjubjþ)”}”(hhh]”hÏ)”}”(hXNumero di thread del kernel che stresseranno l'acquisizione condivisa dei blocchi (lettori). Il valore di base è lo stesso di nwriters_stress. Se l'utente non ha specificato nwriters_stress, allora entrambe i valori corrisponderanno al numero di processori attivi presenti.”h]”hXNumero di thread del kernel che stresseranno l’acquisizione condivisa dei blocchi (lettori). Il valore di base è lo stesso di nwriters_stress. Se l’utente non ha specificato nwriters_stress, allora entrambe i valori corrisponderanno al numero di processori attivi presenti.”…””}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎh³hÇh´K,hj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jýhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jçh³hÇh´K0hjäh²hubjè)”}”(hXrtorture_type Tipo di blocco da verificare. Di base, solo gli spinlock verranno verificati. Questo modulo può verificare anche i seguenti tipi di blocchi: - "lock_busted": Simula un'incorretta implementazione del blocco. - "spin_lock": coppie di spin_lock() e spin_unlock(). - "spin_lock_irq": coppie di spin_lock_irq() e spin_unlock_irq(). - "rw_lock": coppie di rwlock read/write lock() e unlock(). - "rw_lock_irq": copie di rwlock read/write lock_irq() e unlock_irq(). - "mutex_lock": coppie di mutex_lock() e mutex_unlock(). - "rtmutex_lock": coppie di rtmutex_lock() e rtmutex_unlock(). Il kernel deve avere CONFIG_RT_MUTEXES=y. - "rwsem_lock": coppie di semafori read/write down() e up(). ”h]”(jî)”}”(hŒ torture_type”h]”hŒ torture_type”…””}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíh³hÇh´KQhjKubjþ)”}”(hhh]”(hÏ)”}”(hŒTipo di blocco da verificare. Di base, solo gli spinlock verranno verificati. Questo modulo può verificare anche i seguenti tipi di blocchi:”h]”hŒTipo di blocco da verificare. Di base, solo gli spinlock verranno verificati. Questo modulo può verificare anche i seguenti tipi di blocchi:”…””}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎh³hÇh´K3hj]ubhŒ block_quote”“”)”}”(hX- "lock_busted": Simula un'incorretta implementazione del blocco. - "spin_lock": coppie di spin_lock() e spin_unlock(). - "spin_lock_irq": coppie di spin_lock_irq() e spin_unlock_irq(). - "rw_lock": coppie di rwlock read/write lock() e unlock(). - "rw_lock_irq": copie di rwlock read/write lock_irq() e unlock_irq(). - "mutex_lock": coppie di mutex_lock() e mutex_unlock(). - "rtmutex_lock": coppie di rtmutex_lock() e rtmutex_unlock(). Il kernel deve avere CONFIG_RT_MUTEXES=y. - "rwsem_lock": coppie di semafori read/write down() e up(). ”h]”hŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒR"lock_busted": Simula un'incorretta implementazione del blocco. ”h]”jã)”}”(hhh]”jè)”}”(hŒ@"lock_busted": Simula un'incorretta implementazione del blocco. ”h]”(jî)”}”(hŒ"lock_busted":”h]”hŒ“lock_bustedâ€:”…””}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíh³hÇh´K9hj‚ubjþ)”}”(hhh]”hÏ)”}”(hŒ0Simula un'incorretta implementazione del blocco.”h]”hŒ2Simula un’incorretta implementazione del blocco.”…””}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎh³hÇh´K8hj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jýhj‚ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jçh³hÇh´K9hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jâhj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjvubjz)”}”(hŒ="spin_lock": coppie di spin_lock() e spin_unlock(). ”h]”jã)”}”(hhh]”jè)”}”(hŒ4"spin_lock": coppie di spin_lock() e spin_unlock(). ”h]”(jî)”}”(hŒ "spin_lock":”h]”hŒ“spin_lockâ€:”…””}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíh³hÇh´K