xref: /linux/Documentation/translations/it_IT/locking/lockstat.rst (revision a23e1966932464e1c5226cb9ac4ce1d5fc10ba22)
16151b9c8SFederico Vaga.. SPDX-License-Identifier: GPL-2.0
26151b9c8SFederico Vaga
36151b9c8SFederico Vaga.. include:: ../disclaimer-ita.rst
46151b9c8SFederico Vaga
56151b9c8SFederico Vaga=======================
66151b9c8SFederico VagaStatistiche sui blocchi
76151b9c8SFederico Vaga=======================
86151b9c8SFederico Vaga
96151b9c8SFederico VagaCosa
106151b9c8SFederico Vaga====
116151b9c8SFederico Vaga
126151b9c8SFederico VagaCome suggerisce il nome, fornisce statistiche sui blocchi.
136151b9c8SFederico Vaga
146151b9c8SFederico Vaga
156151b9c8SFederico VagaPerché
166151b9c8SFederico Vaga======
176151b9c8SFederico Vaga
186151b9c8SFederico VagaPerché, tanto per fare un esempio, le contese sui blocchi possono influenzare
196151b9c8SFederico Vagasignificativamente le prestazioni.
206151b9c8SFederico Vaga
216151b9c8SFederico VagaCome
226151b9c8SFederico Vaga====
236151b9c8SFederico Vaga
246151b9c8SFederico Vaga*Lockdep* ha punti di collegamento nelle funzioni di blocco e inoltre
256151b9c8SFederico Vagamappa le istanze di blocco con le relative classi. Partiamo da questo punto
266151b9c8SFederico Vaga(vedere Documentation/translations/it_IT/locking/lockdep-design.rst).
276151b9c8SFederico VagaIl grafico sottostante mostra la relazione che intercorre fra le
286151b9c8SFederico Vagafunzioni di blocco e i vari punti di collegamenti che ci sono al loro
296151b9c8SFederico Vagainterno::
306151b9c8SFederico Vaga
316151b9c8SFederico Vaga        __acquire
326151b9c8SFederico Vaga            |
336151b9c8SFederico Vaga           lock _____
346151b9c8SFederico Vaga            |        \
356151b9c8SFederico Vaga            |    __contended
366151b9c8SFederico Vaga            |         |
376151b9c8SFederico Vaga            |       <wait>
386151b9c8SFederico Vaga            | _______/
396151b9c8SFederico Vaga            |/
406151b9c8SFederico Vaga            |
416151b9c8SFederico Vaga       __acquired
426151b9c8SFederico Vaga            |
436151b9c8SFederico Vaga            .
446151b9c8SFederico Vaga          <hold>
456151b9c8SFederico Vaga            .
466151b9c8SFederico Vaga            |
476151b9c8SFederico Vaga       __release
486151b9c8SFederico Vaga            |
496151b9c8SFederico Vaga         unlock
506151b9c8SFederico Vaga
516151b9c8SFederico Vaga  lock, unlock	- le classiche funzioni di blocco
526151b9c8SFederico Vaga  __*		- i punti di collegamento
536151b9c8SFederico Vaga  <> 		- stati
546151b9c8SFederico Vaga
556151b9c8SFederico VagaGrazie a questi punti di collegamento possiamo fornire le seguenti statistiche:
566151b9c8SFederico Vaga
576151b9c8SFederico Vagacon-bounces
586151b9c8SFederico Vaga  - numero di contese su un blocco che riguarda dati di un processore
596151b9c8SFederico Vaga
606151b9c8SFederico Vagacontentions
616151b9c8SFederico Vaga  - numero di acquisizioni di blocchi che hanno dovuto attendere
626151b9c8SFederico Vaga
636151b9c8SFederico Vagawait time
646151b9c8SFederico Vaga  min
656151b9c8SFederico Vaga    - tempo minimo (diverso da zero) che sia mai stato speso in attesa di
666151b9c8SFederico Vaga      un blocco
676151b9c8SFederico Vaga
686151b9c8SFederico Vaga  max
696151b9c8SFederico Vaga    - tempo massimo che sia mai stato speso in attesa di un blocco
706151b9c8SFederico Vaga
716151b9c8SFederico Vaga  total
726151b9c8SFederico Vaga    - tempo totale speso in attesa di un blocco
736151b9c8SFederico Vaga
746151b9c8SFederico Vaga  avg
756151b9c8SFederico Vaga	- tempo medio speso in attesa di un blocco
766151b9c8SFederico Vaga
776151b9c8SFederico Vagaacq-bounces
786151b9c8SFederico Vaga  - numero di acquisizioni di blocco che riguardavano i dati su un processore
796151b9c8SFederico Vaga
806151b9c8SFederico Vagaacquisitions
816151b9c8SFederico Vaga  - numero di volte che un blocco è stato ottenuto
826151b9c8SFederico Vaga
836151b9c8SFederico Vagahold time
846151b9c8SFederico Vaga  min
856151b9c8SFederico Vaga    - tempo minimo (diverso da zero) che sia mai stato speso trattenendo un blocco
866151b9c8SFederico Vaga
876151b9c8SFederico Vaga  max
886151b9c8SFederico Vaga    - tempo massimo che sia mai stato speso trattenendo un blocco
896151b9c8SFederico Vaga
906151b9c8SFederico Vaga  total
916151b9c8SFederico Vaga    - tempo totale di trattenimento di un blocco
926151b9c8SFederico Vaga
936151b9c8SFederico Vaga  avg
946151b9c8SFederico Vaga    - tempo medio di trattenimento di un blocco
956151b9c8SFederico Vaga
966151b9c8SFederico VagaQuesti numeri vengono raccolti per classe di blocco, e per ogni stato di
976151b9c8SFederico Vagalettura/scrittura (quando applicabile).
986151b9c8SFederico Vaga
996151b9c8SFederico VagaInoltre, questa raccolta di statistiche tiene traccia di 4 punti di contesa
1006151b9c8SFederico Vagaper classe di blocco. Un punto di contesa è una chiamata che ha dovuto
1016151b9c8SFederico Vagaaspettare l'acquisizione di un blocco.
1026151b9c8SFederico Vaga
1036151b9c8SFederico VagaConfigurazione
1046151b9c8SFederico Vaga--------------
1056151b9c8SFederico Vaga
1066151b9c8SFederico VagaLe statistiche sui blocchi si abilitano usando l'opzione di configurazione
1076151b9c8SFederico VagaCONFIG_LOCK_STAT.
1086151b9c8SFederico Vaga
1096151b9c8SFederico VagaUso
1106151b9c8SFederico Vaga---
1116151b9c8SFederico Vaga
1126151b9c8SFederico VagaAbilitare la raccolta di statistiche::
1136151b9c8SFederico Vaga
1146151b9c8SFederico Vaga	# echo 1 >/proc/sys/kernel/lock_stat
1156151b9c8SFederico Vaga
1166151b9c8SFederico VagaDisabilitare la raccolta di statistiche::
1176151b9c8SFederico Vaga
1186151b9c8SFederico Vaga	# echo 0 >/proc/sys/kernel/lock_stat
1196151b9c8SFederico Vaga
1206151b9c8SFederico VagaPer vedere le statistiche correnti sui blocchi::
1216151b9c8SFederico Vaga
1226151b9c8SFederico Vaga  ( i numeri di riga non fanno parte dell'output del comando, ma sono stati
1236151b9c8SFederico Vaga  aggiunti ai fini di questa spiegazione )
1246151b9c8SFederico Vaga
1256151b9c8SFederico Vaga  # less /proc/lock_stat
1266151b9c8SFederico Vaga
1276151b9c8SFederico Vaga  01 lock_stat version 0.4
1286151b9c8SFederico Vaga  02-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1296151b9c8SFederico Vaga  03                              class name    con-bounces    contentions   waittime-min   waittime-max waittime-total   waittime-avg    acq-bounces   acquisitions   holdtime-min   holdtime-max holdtime-total   holdtime-avg
1306151b9c8SFederico Vaga  04-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1316151b9c8SFederico Vaga  05
1326151b9c8SFederico Vaga  06                         &mm->mmap_sem-W:            46             84           0.26         939.10       16371.53         194.90          47291        2922365           0.16     2220301.69 17464026916.32        5975.99
1336151b9c8SFederico Vaga  07                         &mm->mmap_sem-R:            37            100           1.31      299502.61      325629.52        3256.30         212344       34316685           0.10        7744.91    95016910.20           2.77
1346151b9c8SFederico Vaga  08                         ---------------
1356151b9c8SFederico Vaga  09                           &mm->mmap_sem              1          [<ffffffff811502a7>] khugepaged_scan_mm_slot+0x57/0x280
1366151b9c8SFederico Vaga  10                           &mm->mmap_sem             96          [<ffffffff815351c4>] __do_page_fault+0x1d4/0x510
1376151b9c8SFederico Vaga  11                           &mm->mmap_sem             34          [<ffffffff81113d77>] vm_mmap_pgoff+0x87/0xd0
1386151b9c8SFederico Vaga  12                           &mm->mmap_sem             17          [<ffffffff81127e71>] vm_munmap+0x41/0x80
1396151b9c8SFederico Vaga  13                         ---------------
1406151b9c8SFederico Vaga  14                           &mm->mmap_sem              1          [<ffffffff81046fda>] dup_mmap+0x2a/0x3f0
1416151b9c8SFederico Vaga  15                           &mm->mmap_sem             60          [<ffffffff81129e29>] SyS_mprotect+0xe9/0x250
1426151b9c8SFederico Vaga  16                           &mm->mmap_sem             41          [<ffffffff815351c4>] __do_page_fault+0x1d4/0x510
1436151b9c8SFederico Vaga  17                           &mm->mmap_sem             68          [<ffffffff81113d77>] vm_mmap_pgoff+0x87/0xd0
1446151b9c8SFederico Vaga  18
1456151b9c8SFederico Vaga  19.............................................................................................................................................................................................................................
1466151b9c8SFederico Vaga  20
1476151b9c8SFederico Vaga  21                         unix_table_lock:           110            112           0.21          49.24         163.91           1.46          21094          66312           0.12         624.42       31589.81           0.48
1486151b9c8SFederico Vaga  22                         ---------------
1496151b9c8SFederico Vaga  23                         unix_table_lock             45          [<ffffffff8150ad8e>] unix_create1+0x16e/0x1b0
1506151b9c8SFederico Vaga  24                         unix_table_lock             47          [<ffffffff8150b111>] unix_release_sock+0x31/0x250
1516151b9c8SFederico Vaga  25                         unix_table_lock             15          [<ffffffff8150ca37>] unix_find_other+0x117/0x230
1526151b9c8SFederico Vaga  26                         unix_table_lock              5          [<ffffffff8150a09f>] unix_autobind+0x11f/0x1b0
1536151b9c8SFederico Vaga  27                         ---------------
1546151b9c8SFederico Vaga  28                         unix_table_lock             39          [<ffffffff8150b111>] unix_release_sock+0x31/0x250
1556151b9c8SFederico Vaga  29                         unix_table_lock             49          [<ffffffff8150ad8e>] unix_create1+0x16e/0x1b0
1566151b9c8SFederico Vaga  30                         unix_table_lock             20          [<ffffffff8150ca37>] unix_find_other+0x117/0x230
1576151b9c8SFederico Vaga  31                         unix_table_lock              4          [<ffffffff8150a09f>] unix_autobind+0x11f/0x1b0
1586151b9c8SFederico Vaga
1596151b9c8SFederico VagaQuesto estratto mostra le statistiche delle prime due classi di
1606151b9c8SFederico Vagablocco. La riga 01 mostra la versione dell'output - la versione
1616151b9c8SFederico Vagacambierà ogni volta che cambia il formato. Le righe dalla 02 alla 04
1626151b9c8SFederico Vagarappresentano l'intestazione con la descrizione delle colonne. Le
1636151b9c8SFederico Vagastatistiche sono mostrate nelle righe dalla 05 alla 18 e dalla 20
1646151b9c8SFederico Vagaalla 31. Queste statistiche sono divise in due parti: le statistiche,
1656151b9c8SFederico Vagaseguite dai punti di contesa (righe 08 e 13) separati da un divisore.
1666151b9c8SFederico Vaga
1676151b9c8SFederico VagaLe righe dalla 09 alla 12 mostrano i primi quattro punti di contesa
1686151b9c8SFederico Vagaregistrati (il codice che tenta di acquisire un blocco) e le righe
1696151b9c8SFederico Vagadalla 14 alla 17 mostrano i primi quattro punti contesi registrati
1706151b9c8SFederico Vaga(ovvero codice che ha acquisito un blocco). È possibile che nelle
1716151b9c8SFederico Vagastatistiche manchi il valore *max con-bounces*.
1726151b9c8SFederico Vaga
1736151b9c8SFederico VagaIl primo blocco (righe dalla 05 alla 18) è di tipo lettura/scrittura e quindi
1746151b9c8SFederico Vagamostra due righe prima del divisore. I punti di contesa non corrispondono alla
1756151b9c8SFederico Vagadescrizione delle colonne nell'intestazione; essi hanno due colonne: *punti di
1766151b9c8SFederico Vagacontesa* e *[<IP>] simboli*. Il secondo gruppo di punti di contesa sono i punti
1776151b9c8SFederico Vagacon cui si contende il blocco.
1786151b9c8SFederico Vaga
1796151b9c8SFederico VagaLa parte interna del tempo è espressa in us (microsecondi).
1806151b9c8SFederico Vaga
1816151b9c8SFederico VagaQuando si ha a che fare con blocchi annidati si potrebbero vedere le
1826151b9c8SFederico Vagasottoclassi di blocco::
1836151b9c8SFederico Vaga
1846151b9c8SFederico Vaga  32...........................................................................................................................................................................................................................
1856151b9c8SFederico Vaga  33
1866151b9c8SFederico Vaga  34                               &rq->lock:       13128          13128           0.43         190.53      103881.26           7.91          97454        3453404           0.00         401.11    13224683.11           3.82
1876151b9c8SFederico Vaga  35                               ---------
1886151b9c8SFederico Vaga  36                               &rq->lock          645          [<ffffffff8103bfc4>] task_rq_lock+0x43/0x75
1896151b9c8SFederico Vaga  37                               &rq->lock          297          [<ffffffff8104ba65>] try_to_wake_up+0x127/0x25a
1906151b9c8SFederico Vaga  38                               &rq->lock          360          [<ffffffff8103c4c5>] select_task_rq_fair+0x1f0/0x74a
1916151b9c8SFederico Vaga  39                               &rq->lock          428          [<ffffffff81045f98>] scheduler_tick+0x46/0x1fb
1926151b9c8SFederico Vaga  40                               ---------
1936151b9c8SFederico Vaga  41                               &rq->lock           77          [<ffffffff8103bfc4>] task_rq_lock+0x43/0x75
1946151b9c8SFederico Vaga  42                               &rq->lock          174          [<ffffffff8104ba65>] try_to_wake_up+0x127/0x25a
1956151b9c8SFederico Vaga  43                               &rq->lock         4715          [<ffffffff8103ed4b>] double_rq_lock+0x42/0x54
1966151b9c8SFederico Vaga  44                               &rq->lock          893          [<ffffffff81340524>] schedule+0x157/0x7b8
1976151b9c8SFederico Vaga  45
1986151b9c8SFederico Vaga  46...........................................................................................................................................................................................................................
1996151b9c8SFederico Vaga  47
2006151b9c8SFederico Vaga  48                             &rq->lock/1:        1526          11488           0.33         388.73      136294.31          11.86          21461          38404           0.00          37.93      109388.53           2.84
2016151b9c8SFederico Vaga  49                             -----------
2026151b9c8SFederico Vaga  50                             &rq->lock/1        11526          [<ffffffff8103ed58>] double_rq_lock+0x4f/0x54
2036151b9c8SFederico Vaga  51                             -----------
2046151b9c8SFederico Vaga  52                             &rq->lock/1         5645          [<ffffffff8103ed4b>] double_rq_lock+0x42/0x54
2056151b9c8SFederico Vaga  53                             &rq->lock/1         1224          [<ffffffff81340524>] schedule+0x157/0x7b8
2066151b9c8SFederico Vaga  54                             &rq->lock/1         4336          [<ffffffff8103ed58>] double_rq_lock+0x4f/0x54
2076151b9c8SFederico Vaga  55                             &rq->lock/1          181          [<ffffffff8104ba65>] try_to_wake_up+0x127/0x25a
2086151b9c8SFederico Vaga
2096151b9c8SFederico VagaLa riga 48 mostra le statistiche per la seconda sottoclasse (/1) della
2106151b9c8SFederico Vagaclasse *&irq->lock* (le sottoclassi partono da 0); in questo caso,
2116151b9c8SFederico Vagacome suggerito dalla riga 50, ``double_rq_lock`` tenta di acquisire un blocco
2126151b9c8SFederico Vagaannidato di due spinlock.
2136151b9c8SFederico Vaga
2146151b9c8SFederico VagaPer vedere i blocco più contesi::
2156151b9c8SFederico Vaga
2166151b9c8SFederico Vaga  # grep : /proc/lock_stat | head
2176151b9c8SFederico Vaga			clockevents_lock:       2926159        2947636           0.15       46882.81  1784540466.34         605.41        3381345        3879161           0.00        2260.97    53178395.68          13.71
2186151b9c8SFederico Vaga		     tick_broadcast_lock:        346460         346717           0.18        2257.43    39364622.71         113.54        3642919        4242696           0.00        2263.79    49173646.60          11.59
2196151b9c8SFederico Vaga		  &mapping->i_mmap_mutex:        203896         203899           3.36      645530.05 31767507988.39      155800.21        3361776        8893984           0.17        2254.15    14110121.02           1.59
2206151b9c8SFederico Vaga			       &rq->lock:        135014         136909           0.18         606.09      842160.68           6.15        1540728       10436146           0.00         728.72    17606683.41           1.69
2216151b9c8SFederico Vaga	       &(&zone->lru_lock)->rlock:         93000          94934           0.16          59.18      188253.78           1.98        1199912        3809894           0.15         391.40     3559518.81           0.93
2226151b9c8SFederico Vaga			 tasklist_lock-W:         40667          41130           0.23        1189.42      428980.51          10.43         270278         510106           0.16         653.51     3939674.91           7.72
2236151b9c8SFederico Vaga			 tasklist_lock-R:         21298          21305           0.20        1310.05      215511.12          10.12         186204         241258           0.14        1162.33     1179779.23           4.89
2246151b9c8SFederico Vaga			      rcu_node_1:         47656          49022           0.16         635.41      193616.41           3.95         844888        1865423           0.00         764.26     1656226.96           0.89
2256151b9c8SFederico Vaga       &(&dentry->d_lockref.lock)->rlock:         39791          40179           0.15        1302.08       88851.96           2.21        2790851       12527025           0.10        1910.75     3379714.27           0.27
2266151b9c8SFederico Vaga			      rcu_node_0:         29203          30064           0.16         786.55     1555573.00          51.74          88963         244254           0.00         398.87      428872.51           1.76
2276151b9c8SFederico Vaga
2286151b9c8SFederico VagaPer cancellare le statistiche::
2296151b9c8SFederico Vaga
2306151b9c8SFederico Vaga  # echo 0 > /proc/lock_stat
231