~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/it_IT/locking/locktorture.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. SPDX-License-Identifier: GPL-2.0
  2 
  3 .. include:: ../disclaimer-ita.rst
  4 
  5 ============================================
  6 Funzionamento del test *Kernel Lock Torture*
  7 ============================================
  8 
  9 CONFIG_LOCK_TORTURE_TEST
 10 ========================
 11 
 12 L'opzione di configurazione CONFIG_LOCK_TORTURE_TEST fornisce un
 13 modulo kernel che esegue delle verifiche che *torturano* le primitive di
 14 sincronizzazione del kernel. Se dovesse servire, il modulo kernel,
 15 'locktorture', può essere generato successivamente su un kernel che
 16 volete verificare. Periodicamente le verifiche stampano messaggi tramite
 17 ``printk()`` e che quindi possono essere letti tramite ``dmesg`` (magari
 18 filtrate l'output con ``grep "torture"``). La verifica inizia quando
 19 il modulo viene caricato e termina quando viene rimosso. Questo
 20 programma si basa sulle modalità di verifica di RCU tramite rcutorture.
 21 
 22 Questa verifica consiste nella creazione di un certo numero di thread
 23 del kernel che acquisiscono un blocco e lo trattengono per una certa
 24 quantità di tempo così da simulare diversi comportamenti nelle sezioni
 25 critiche. La quantità di contese su un blocco può essere simulata
 26 allargando la sezione critica e/o creando più thread.
 27 
 28 
 29 Parametri del modulo
 30 ====================
 31 
 32 Questo modulo ha i seguenti parametri:
 33 
 34 
 35 Specifici di locktorture
 36 ------------------------
 37 
 38 nwriters_stress
 39                   Numero di thread del kernel che stresseranno l'acquisizione
 40                   esclusiva dei blocchi (scrittori). Il valore di base è il
 41                   doppio del numero di processori attivi presenti.
 42 
 43 nreaders_stress
 44                   Numero di thread del kernel che stresseranno l'acquisizione
 45                   condivisa dei blocchi (lettori). Il valore di base è lo stesso
 46                   di nwriters_stress. Se l'utente non ha specificato
 47                   nwriters_stress, allora entrambe i valori corrisponderanno
 48                   al numero di processori attivi presenti.
 49 
 50 torture_type
 51                   Tipo di blocco da verificare. Di base, solo gli spinlock
 52                   verranno verificati. Questo modulo può verificare anche
 53                   i seguenti tipi di blocchi:
 54 
 55                      - "lock_busted":
 56                                 Simula un'incorretta implementazione del
 57                                 blocco.
 58 
 59                      - "spin_lock":
 60                                 coppie di spin_lock() e spin_unlock().
 61 
 62                      - "spin_lock_irq":
 63                                 coppie di spin_lock_irq() e spin_unlock_irq().
 64 
 65                      - "rw_lock":
 66                                 coppie di rwlock read/write lock() e unlock().
 67 
 68                      - "rw_lock_irq":
 69                                 copie di rwlock read/write lock_irq() e
 70                                 unlock_irq().
 71 
 72                      - "mutex_lock":
 73                                 coppie di mutex_lock() e mutex_unlock().
 74 
 75                      - "rtmutex_lock":
 76                                 coppie di rtmutex_lock() e rtmutex_unlock().
 77                                 Il kernel deve avere CONFIG_RT_MUTEXES=y.
 78 
 79                      - "rwsem_lock":
 80                                 coppie di semafori read/write down() e up().
 81 
 82 
 83 Generici dell'ambiente di sviluppo 'torture' (RCU + locking)
 84 ------------------------------------------------------------
 85 
 86 shutdown_secs
 87                   Numero di secondi prima che la verifica termini e il sistema
 88                   venga spento.  Il valore di base è zero, il che disabilita
 89                   la possibilità di terminare e spegnere. Questa funzionalità
 90                   può essere utile per verifiche automatizzate.
 91 
 92 onoff_interval
 93                   Numero di secondi fra ogni tentativo di esecuzione di
 94                   un'operazione casuale di CPU-hotplug. Di base è zero, il
 95                   che disabilita la funzionalità di CPU-hotplug. Nei kernel
 96                   con CONFIG_HOTPLUG_CPU=n, locktorture si rifiuterà, senza
 97                   dirlo, di effettuare una qualsiasi operazione di
 98                   CPU-hotplug indipendentemente dal valore specificato in
 99                   onoff_interval.
100 
101 onoff_holdoff
102                   Numero di secondi da aspettare prima di iniziare le
103                   operazioni di CPU-hotplug.  Normalmente questo verrebbe
104                   usato solamente quando locktorture è compilato come parte
105                   integrante del kernel ed eseguito automaticamente all'avvio,
106                   in questo caso è utile perché permette di non confondere
107                   l'avvio con i processori che vanno e vengono. Questo
108                   parametro è utile sono se CONFIG_HOTPLUG_CPU è abilitato.
109 
110 stat_interval
111                   Numero di secondi fra una stampa (printk()) delle
112                   statistiche e l'altra. Di base, locktorture riporta le
113                   statistiche ogni 60 secondi. Impostando l'intervallo a 0
114                   ha l'effetto di stampare le statistiche -solo- quando il
115                   modulo viene rimosso.
116 
117 stutter
118                   Durata della verifica prima di effettuare una pausa di
119                   eguale durata. Di base "stutter=5", quindi si eseguono
120                   verifiche e pause di (circa) cinque secondi.
121                   L'impostazione di "stutter=0" fa si che la verifica
122                   venga eseguita continuamente senza fermarsi.
123 
124 shuffle_interval
125                   Il numero di secondi per cui un thread debba mantenere
126                   l'affinità con un sottoinsieme di processori, di base è
127                   3 secondi. Viene usato assieme a test_no_idle_hz.
128 
129 verbose
130                   Abilita le stampe di debug, via printk(). Di base è
131                   abilitato. Queste informazioni aggiuntive sono per la
132                   maggior parte relative ad errori di alto livello e resoconti
133                   da parte dell'struttura 'torture'.
134 
135 
136 Statistiche
137 ===========
138 
139 Le statistiche vengono stampate secondo il seguente formato::
140 
141   spin_lock-torture: Writes:  Total: 93746064  Max/Min: 0/0   Fail: 0
142      (A)                    (B)            (C)            (D)          (E)
143 
144   (A): tipo di lock sotto verifica -- parametro torture_type.
145 
146   (B): Numero di acquisizione del blocco in scrittura. Se si ha a che fare
147        con una primitiva di lettura/scrittura apparirà di seguito anche una
148        seconda voce "Reads"
149 
150   (C): Numero di volte che il blocco è stato acquisito
151 
152   (D): Numero minimo e massimo di volte che un thread ha fallito
153        nell'acquisire il blocco
154 
155   (E): valori true/false nel caso di errori durante l'acquisizione del blocco.
156        Questo dovrebbe dare un riscontro positivo -solo- se c'è un baco
157        nell'implementazione delle primitive di sincronizzazione. Altrimenti un
158        blocco non dovrebbe mai fallire (per esempio, spin_lock()).
159        Ovviamente lo stesso si applica per (C). Un semplice esempio è il tipo
160        "lock_busted".
161 
162 Uso
163 ===
164 
165 Il seguente script può essere utilizzato per verificare i blocchi::
166 
167         #!/bin/sh
168 
169         modprobe locktorture
170         sleep 3600
171         rmmod locktorture
172         dmesg | grep torture:
173 
174 L'output può essere manualmente ispezionato cercando il marcatore d'errore
175 "!!!". Ovviamente potreste voler creare degli script più elaborati che
176 verificano automaticamente la presenza di errori. Il comando "rmmod" forza la
177 stampa (usando printk()) di "SUCCESS", "FAILURE", oppure "RCU_HOTPLUG". I primi
178 due si piegano da soli, mentre l'ultimo indica che non stati trovati problemi di
179 sincronizzazione, tuttavia ne sono stati trovati in CPU-hotplug.
180 
181 Consultate anche: Documentation/translations/it_IT/RCU/torture.rst

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php