Csphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextEnglish}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget/locking/locktorturemodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Simplified)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/zh_CN/locking/locktorturemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hChinese (Traditional)}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/zh_TW/locking/locktorturemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ja_JP/locking/locktorturemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ko_KR/locking/locktorturemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/sp_SP/locking/locktorturemodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageItalianuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhT/var/lib/git/docbuild/linux/Documentation/translations/it_IT/locking/locktorture.rsthKubhwarning)}(hIn 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)}(hIn 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](hIn caso di dubbi sulla correttezza del contenuto di questa traduzione, l’unico riferimento valido è la documentazione ufficiale in inglese. Per maggiori informazioni consultate le }(hhhhhNhNubh)}(h!:ref:`avvertenze `h]hinline)}(hhh]h avvertenze}(hhhhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1hhhubah}(h]h ]h"]h$]h&]refdoc&translations/it_IT/locking/locktorture refdomainhՌreftyperef refexplicitrefwarn reftarget it_disclaimeruh1hh3Documentation/translations/it_IT/disclaimer-ita.rsthKhhubh.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubhsection)}(hhh](htitle)}(h,Funzionamento del test *Kernel Lock Torture*h](hFunzionamento del test }(hjhhhNhNubhemphasis)}(h*Kernel Lock Torture*h]hKernel Lock Torture}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](j)}(hCONFIG_LOCK_TORTURE_TESTh]hCONFIG_LOCK_TORTURE_TEST}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK 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](hpL’opzione di configurazione CONFIG_LOCK_TORTURE_TEST fornisce un modulo kernel che esegue delle verifiche che }(hj0hhhNhNubj )}(h *torturano*h]h torturano}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj0ubh 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 }(hj0hhhNhNubhliteral)}(h ``printk()``h]hprintk()}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jJhj0ubh+ e che quindi possono essere letti tramite }(hj0hhhNhNubjK)}(h ``dmesg``h]hdmesg}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jJhj0ubh! (magari filtrate l’output con }(hj0hhhNhNubjK)}(h``grep "torture"``h]hgrep "torture"}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jJhj0ubh). 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.}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hjhhubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]config-lock-torture-testah ]h"]config_lock_torture_testah$]h&]uh1hhhhhhhhK ubh)}(hhh](j)}(hParametri del moduloh]hParametri del modulo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(h&Questo modulo ha i seguenti parametri:h]h&Questo modulo ha i seguenti parametri:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjhhubh)}(hhh](j)}(hSpecifici di locktortureh]hSpecifici di locktorture}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK$ubhdefinition_list)}(hhh](hdefinition_list_item)}(hnwriters_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](hterm)}(hnwriters_stressh]hnwriters_stress}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK)hjubh definition)}(hhh]h)}(hNumero 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]hNumero di thread del kernel che stresseranno l’acquisizione esclusiva dei blocchi (scrittori). Il valore di base è il doppio del numero di processori attivi presenti.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhK)hjubj)}(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)}(hnreaders_stressh]hnreaders_stress}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK0hjubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhK0hjhhubj)}(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_typeh]h torture_type}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKQhj7ubj)}(hhh](h)}(hTipo di blocco da verificare. Di base, solo gli spinlock verranno verificati. Questo modulo può verificare anche i seguenti tipi di blocchi:h]hTipo di blocco da verificare. Di base, solo gli spinlock verranno verificati. Questo modulo può verificare anche i seguenti tipi di blocchi:}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjIubh 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)}(hR"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”:}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK9hjnubj)}(hhh]h)}(h0Simula un'incorretta implementazione del blocco.h]h2Simula un’incorretta implementazione del blocco.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhhhK9hjkubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jehjbubjf)}(h="spin_lock": coppie di spin_lock() e spin_unlock(). h]j)}(hhh]j)}(h4"spin_lock": coppie di spin_lock() e spin_unlock(). h](j)}(h "spin_lock":h]h“spin_lock”:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK