<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sv">
	<id>https://wiki.linux.se/index.php?action=history&amp;feed=atom&amp;title=sqlhist%281%29</id>
	<title>sqlhist(1) - Versionshistorik</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linux.se/index.php?action=history&amp;feed=atom&amp;title=sqlhist%281%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=sqlhist(1)&amp;action=history"/>
	<updated>2026-06-10T03:04:41Z</updated>
	<subtitle>Versionshistorik för denna sida på wikin</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://wiki.linux.se/index.php?title=sqlhist(1)&amp;diff=9492&amp;oldid=prev</id>
		<title>Admin: /* SIDOR SOM HÄNVISAR TILL DENNA SIDA */</title>
		<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=sqlhist(1)&amp;diff=9492&amp;oldid=prev"/>
		<updated>2026-05-15T06:46:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;SIDOR SOM HÄNVISAR TILL DENNA SIDA&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;sv&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Äldre version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versionen från 15 maj 2026 kl. 06.46&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l351&quot;&gt;Rad 351:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rad 351:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[tracefs_sql(3)]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[tracefs_sql(3)]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= Sidslut =&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/sqlhist.1.html&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https://www.linux.se/kontaka-linux-se/&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;BR&gt;&amp;lt;BR&gt;Tack till [https://dataservice.pcbutiken.se/ Datorservice] som har  sponsrat [https://www.linux.se Linux.se] med webbhotell.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Kategori:Linuxmanual grupp 1]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Kategori:Linuxmanual]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.linux.se/index.php?title=sqlhist(1)&amp;diff=9491&amp;oldid=prev</id>
		<title>Admin: Skapade sidan med &#039;= sqlhist(1) =  == NAMN ==  sqlhist - verktyg som använder SQL-liknande språk för att skapa eller visa skapande av tracefs-histogram och syntetiska händelser  == SYNOPSIS ==  &lt;pre&gt; sqlhist [ALTERNATIV] [SQL-select-kommando] &lt;/pre&gt;  == BESKRIVNING ==  sqlhist(1) tar ett SQL-liknande uttryck och använder det för att skapa tracefs-histogram och syntetiska händelser som kan utföra olika åtgärder för hantering av spårningsdata.  Filsystemet tracefs utgör ett grä...&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=sqlhist(1)&amp;diff=9491&amp;oldid=prev"/>
		<updated>2026-05-15T06:45:52Z</updated>

		<summary type="html">&lt;p&gt;Skapade sidan med &amp;#039;= sqlhist(1) =  == NAMN ==  sqlhist - verktyg som använder SQL-liknande språk för att skapa eller visa skapande av tracefs-histogram och syntetiska händelser  == SYNOPSIS ==  &amp;lt;pre&amp;gt; sqlhist [ALTERNATIV] [SQL-select-kommando] &amp;lt;/pre&amp;gt;  == BESKRIVNING ==  sqlhist(1) tar ett SQL-liknande uttryck och använder det för att skapa tracefs-histogram och syntetiska händelser som kan utföra olika åtgärder för hantering av spårningsdata.  Filsystemet tracefs utgör ett grä...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny sida&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= sqlhist(1) =&lt;br /&gt;
&lt;br /&gt;
== NAMN ==&lt;br /&gt;
&lt;br /&gt;
sqlhist - verktyg som använder SQL-liknande språk för att skapa eller visa skapande av tracefs-histogram och syntetiska händelser&lt;br /&gt;
&lt;br /&gt;
== SYNOPSIS ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sqlhist [ALTERNATIV] [SQL-select-kommando]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BESKRIVNING ==&lt;br /&gt;
&lt;br /&gt;
sqlhist(1) tar ett SQL-liknande uttryck och använder det för att skapa tracefs-histogram och syntetiska händelser som kan utföra olika åtgärder för hantering av spårningsdata.&lt;br /&gt;
&lt;br /&gt;
Filsystemet tracefs utgör ett gränssnitt mot Linux spårningsinfrastruktur. Denna infrastruktur innehåller olika dynamiska och statiska händelser i kärnan. Varje sådan händelse kan ha ett histogram kopplat till sig, där händelsens fält definierar histogrammets grupper.&lt;br /&gt;
&lt;br /&gt;
En syntetisk händelse är ett sätt att koppla samman två separata händelser och använda fält och tidsstämplar från dessa händelser för att skapa en ny dynamisk händelse. Denna nya dynamiska händelse kallas en syntetisk händelse.&lt;br /&gt;
&lt;br /&gt;
Fälten från respektive händelse kan användas i enkla beräkningar. Exempelvis kan skillnaden mellan ett fält i den ena händelsen och ett fält i den andra händelsen beräknas. Detta fungerar även för händelsernas tidsstämplar, där tidsskillnaden mellan två händelser kan extraheras och placeras i den syntetiska händelsen.&lt;br /&gt;
&lt;br /&gt;
Andra åtgärder kan också utföras utifrån händelsefält. En ögonblicksbild kan tas av kärnans ringbuffert när en variabel som används vid skapandet av den syntetiska händelsen når ett nytt maxvärde, eller helt enkelt ändras.&lt;br /&gt;
&lt;br /&gt;
Kommandona för att skapa histogram och syntetiska händelser är komplexa och inte enkla att komma ihåg. sqlhist används för att konvertera SQL-syntax till de kommandon som behövs för att skapa histogrammet eller den syntetiska händelsen.&lt;br /&gt;
&lt;br /&gt;
SQL-select-kommandot är en SQL-sträng enligt definitionen i [[tracefs_sql(3)]].&lt;br /&gt;
&lt;br /&gt;
Observera att detta normalt måste köras som root, eller med sudo, eftersom interaktion med tracefs-katalogen kräver root-behörighet. Undantaget är när alternativet &amp;#039;&amp;#039;&amp;#039;-t&amp;#039;&amp;#039;&amp;#039; används med en kopia av tracefs-katalogen och dess händelser.&lt;br /&gt;
&lt;br /&gt;
sqlhist är ett enkelt program vars kod faktiskt finns i manualsidan [[tracefs_sql(3)]].&lt;br /&gt;
&lt;br /&gt;
== ALTERNATIV ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-n&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;namn&amp;#039;&amp;#039;  &lt;br /&gt;
Namnet på den syntetiska händelse som ska skapas. Denna händelse kan sedan användas som vilken annan händelse som helst och aktiveras via [[trace-cmd(1)]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-t&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;tracefs-katalog&amp;#039;&amp;#039;  &lt;br /&gt;
För att testa programmet som en vanlig användare utan root-behörighet kan en kopia av tracefs-katalogen användas. Genom att ange denna katalog med alternativet &amp;#039;&amp;#039;&amp;#039;-t&amp;#039;&amp;#039;&amp;#039; kan programmet köras mot kopian.&lt;br /&gt;
&lt;br /&gt;
Observera att &amp;#039;&amp;#039;&amp;#039;-e&amp;#039;&amp;#039;&amp;#039; naturligtvis inte fungerar som icke-root, eftersom kommandona då inte kan köras mot den riktiga tracefs-miljön.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /tmp/tracing&lt;br /&gt;
# cp -r /sys/kernel/tracing/events /tmp/tracing&lt;br /&gt;
# exit&lt;br /&gt;
$ ./sqlhist -t /tmp/tracing ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-e&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
Visa inte bara kommandona som skapar histogrammet, utan kör dem också. Detta kräver root-behörighet.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-f&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;fil&amp;#039;&amp;#039;  &lt;br /&gt;
Läs SQL-kommandona från &amp;#039;&amp;#039;fil&amp;#039;&amp;#039; i stället för från kommandoraden. Om &amp;#039;&amp;#039;fil&amp;#039;&amp;#039; är &amp;#039;&amp;#039;&amp;#039;-&amp;#039;&amp;#039;&amp;#039; läses kommandona från standard input.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-m&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;var&amp;#039;&amp;#039;  &lt;br /&gt;
Utför den angivna åtgärden när variabeln &amp;#039;&amp;#039;var&amp;#039;&amp;#039; når ett nytt maxvärde. Detta kan inte användas tillsammans med &amp;#039;&amp;#039;&amp;#039;-c&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-c&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;var&amp;#039;&amp;#039;  &lt;br /&gt;
Utför den angivna åtgärden när variabeln &amp;#039;&amp;#039;var&amp;#039;&amp;#039; ändrar värde. Detta kan inte användas tillsammans med &amp;#039;&amp;#039;&amp;#039;-m&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-s&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
Utför en ögonblicksbild i stället för att anropa den syntetiska händelsen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-T&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
Utför både en ögonblicksbild och spåra den syntetiska händelsen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-S&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;fält[,fält]&amp;#039;&amp;#039;  &lt;br /&gt;
Spara de angivna fälten. Fälten måste vara fält från den avslutande händelsen, &amp;quot;end&amp;quot;-händelsen, i SQL-select-kommandot.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-B&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;instans&amp;#039;&amp;#039;  &lt;br /&gt;
För enkla uttryck som endast skapar ett histogram anger detta den instans där histogrammet ska skapas.&lt;br /&gt;
&lt;br /&gt;
Detta ignoreras vid fullständig skapelse av syntetiska händelser, eftersom syntetiska händelser har global effekt på alla spårningsinstanser, medan histogram endast påverkar en enskild instans.&lt;br /&gt;
&lt;br /&gt;
== EXEMPEL ==&lt;br /&gt;
&lt;br /&gt;
Skapa den körbara filen sqlhist:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
man tracefs_sql | sed -ne &amp;#039;/^EXAMPLE/,/FILES/ { /EXAMPLE/d ; /FILES/d ; p}&amp;#039; &amp;gt; sqlhist.c&lt;br /&gt;
gcc -o sqlhist sqlhist.c `pkg-config --cflags --libs libtracefs`&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Som beskrivits ovan kan man för teständamål skapa en kopia av händelsekatalogen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir /tmp/tracing&lt;br /&gt;
$ sudo cp -r /sys/kernel/tracing/events /tmp/tracing/&lt;br /&gt;
$ sudo chmod -R 0644 /tmp/tracing/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exempel på enkel histogramutdata med en kopia av tracefs-katalogen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ./sqlhist -t /tmp/tracing/ &amp;#039;SELECT CAST(call_site as SYM-OFFSET), bytes_req, CAST(bytes_alloc AS _COUNTER_) FROM kmalloc&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Detta ger följande utdata:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;#039;hist:keys=call_site.sym-offset,bytes_req:vals=bytes_alloc&amp;#039; &amp;gt; /sys/kernel/tracing/events/kmem/kmalloc/trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Detta kan användas av root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# echo &amp;#039;hist:keys=call_site.sym-offset,bytes_req:vals=bytes_alloc&amp;#039; &amp;gt; /sys/kernel/tracing/events/kmem/kmalloc/trigger&lt;br /&gt;
# cat /sys/kernel/tracing/events/kmem/kmalloc/hist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exempel på histogramutdata:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# event histogram&lt;br /&gt;
#&lt;br /&gt;
# trigger info: hist:keys=call_site.sym-offset,bytes_req:vals=hitcount,bytes_alloc:sort=hitcount:size=2048 [active]&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
{ call_site: [ffffffff813f8d8a] load_elf_phdrs+0x4a/0xb0                               , bytes_req:        728 } hitcount:          1  bytes_alloc:       1024&lt;br /&gt;
{ call_site: [ffffffffc0c69e74] nf_ct_ext_add+0xd4/0x1d0 [nf_conntrack]                , bytes_req:        128 } hitcount:          1  bytes_alloc:        128&lt;br /&gt;
{ call_site: [ffffffff818355e6] dma_resv_get_fences+0xf6/0x440                         , bytes_req:          8 } hitcount:          1  bytes_alloc:          8&lt;br /&gt;
{ call_site: [ffffffffc06dc73f] intel_gt_get_buffer_pool+0x15f/0x290 [i915]            , bytes_req:        424 } hitcount:          1  bytes_alloc:        512&lt;br /&gt;
{ call_site: [ffffffff813f8d8a] load_elf_phdrs+0x4a/0xb0                               , bytes_req:        616 } hitcount:          1  bytes_alloc:       1024&lt;br /&gt;
{ call_site: [ffffffff8161a44c] __sg_alloc_table+0x11c/0x180                           , bytes_req:         32 } hitcount:          1  bytes_alloc:         32&lt;br /&gt;
{ call_site: [ffffffffc070749d] shmem_get_pages+0xad/0x5d0 [i915]                      , bytes_req:         16 } hitcount:          1  bytes_alloc:         16&lt;br /&gt;
{ call_site: [ffffffffc07507f5] intel_framebuffer_create+0x25/0x60 [i915]              , bytes_req:        408 } hitcount:          1  bytes_alloc:        512&lt;br /&gt;
{ call_site: [ffffffffc06fc20f] eb_parse+0x34f/0x910 [i915]                            , bytes_req:        408 } hitcount:          1  bytes_alloc:        512&lt;br /&gt;
{ call_site: [ffffffffc0700ebd] i915_gem_object_get_pages_internal+0x5d/0x270 [i915]   , bytes_req:         16 } hitcount:          1  bytes_alloc:         16&lt;br /&gt;
{ call_site: [ffffffffc0771188] intel_frontbuffer_get+0x38/0x220 [i915]                , bytes_req:        400 } hitcount:          1  bytes_alloc:        512&lt;br /&gt;
{ call_site: [ffffffff8161a44c] __sg_alloc_table+0x11c/0x180                           , bytes_req:        128 } hitcount:          1  bytes_alloc:        128&lt;br /&gt;
{ call_site: [ffffffff813f8f45] load_elf_binary+0x155/0x1680                           , bytes_req:         28 } hitcount:          1  bytes_alloc:         32&lt;br /&gt;
{ call_site: [ffffffffc07038c8] __assign_mmap_offset+0x208/0x3d0 [i915]                , bytes_req:        288 } hitcount:          1  bytes_alloc:        512&lt;br /&gt;
{ call_site: [ffffffff813737b2] alloc_bprm+0x32/0x2f0                                  , bytes_req:        416 } hitcount:          1  bytes_alloc:        512&lt;br /&gt;
{ call_site: [ffffffff813f9027] load_elf_binary+0x237/0x1680                           , bytes_req:         64 } hitcount:          1  bytes_alloc:         64&lt;br /&gt;
{ call_site: [ffffffff8161a44c] __sg_alloc_table+0x11c/0x180                           , bytes_req:         64 } hitcount:          1  bytes_alloc:         64&lt;br /&gt;
{ call_site: [ffffffffc040ffe7] drm_vma_node_allow+0x27/0xe0 [drm]                     , bytes_req:         40 } hitcount:          2  bytes_alloc:        128&lt;br /&gt;
{ call_site: [ffffffff813cda98] __do_sys_timerfd_create+0x58/0x1c0                     , bytes_req:        336 } hitcount:          2  bytes_alloc:       1024&lt;br /&gt;
{ call_site: [ffffffff818355e6] dma_resv_get_fences+0xf6/0x440                         , bytes_req:         40 } hitcount:          2  bytes_alloc:        128&lt;br /&gt;
{ call_site: [ffffffff8139b75a] single_open+0x2a/0xa0                                  , bytes_req:         32 } hitcount:          2  bytes_alloc:         64&lt;br /&gt;
{ call_site: [ffffffff815df715] bio_kmalloc+0x25/0x80                                  , bytes_req:        136 } hitcount:          2  bytes_alloc:        384&lt;br /&gt;
{ call_site: [ffffffffc071e5cd] i915_vma_work+0x1d/0x50 [i915]                         , bytes_req:        416 } hitcount:          3  bytes_alloc:       1536&lt;br /&gt;
{ call_site: [ffffffff81390d0d] alloc_fdtable+0x4d/0x100                               , bytes_req:         56 } hitcount:          3  bytes_alloc:        192&lt;br /&gt;
{ call_site: [ffffffffc06ff65f] i915_gem_do_execbuffer+0x158f/0x2440 [i915]            , bytes_req:         16 } hitcount:          4  bytes_alloc:         64&lt;br /&gt;
{ call_site: [ffffffff8137713c] alloc_pipe_info+0x5c/0x230                             , bytes_req:        384 } hitcount:          5  bytes_alloc:       2560&lt;br /&gt;
{ call_site: [ffffffff813771b4] alloc_pipe_info+0xd4/0x230                             , bytes_req:        640 } hitcount:          5  bytes_alloc:       5120&lt;br /&gt;
{ call_site: [ffffffff81834cdb] dma_resv_list_alloc+0x1b/0x40                          , bytes_req:         40 } hitcount:          6  bytes_alloc:        384&lt;br /&gt;
{ call_site: [ffffffff81834cdb] dma_resv_list_alloc+0x1b/0x40                          , bytes_req:         56 } hitcount:          9  bytes_alloc:        576&lt;br /&gt;
{ call_site: [ffffffff8120086e] tracing_map_sort_entries+0x9e/0x3e0                    , bytes_req:         24 } hitcount:         60  bytes_alloc:       1920&lt;br /&gt;
&lt;br /&gt;
Totals:&lt;br /&gt;
    Hits: 122&lt;br /&gt;
    Entries: 30&lt;br /&gt;
    Dropped: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observera att även om exemplen använder versaler för SQL-nyckelorden behöver de inte skrivas så. &amp;#039;&amp;#039;SELECT&amp;#039;&amp;#039; kan även skrivas som &amp;#039;&amp;#039;select&amp;#039;&amp;#039; eller till och med &amp;#039;&amp;#039;sElEcT&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Genom att använda hela SQL-språket kan syntetiska händelser skapas och bearbetas. Exempelvis kan uppvakningslatens registreras genom att använda sqlhist tillsammans med [[trace-cmd(1)]]. Detta görs genom att skapa en syntetisk händelse som kopplar samman händelserna &amp;#039;&amp;#039;sched_waking&amp;#039;&amp;#039; och &amp;#039;&amp;#039;sched_switch&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sqlhist -n wakeup_lat -e -T -m lat &amp;#039;SELECT end.next_comm AS comm, (end.TIMESTAMP_USECS - start.TIMESTAMP_USECS) AS lat FROM &amp;#039; \&lt;br /&gt;
  &amp;#039;sched_waking AS start JOIN sched_switch AS end ON start.pid = end.next_pid WHERE end.next_prio &amp;lt; 100 &amp;amp;&amp;amp; end.next_comm == &amp;quot;cyclictest&amp;quot;&amp;#039;&lt;br /&gt;
# trace-cmd start -e all -e wakeup_lat -R stacktrace&lt;br /&gt;
# cyclictest -l 1000 -p80 -i250  -a -t -q -m -d 0 -b 1000 --tracemark&lt;br /&gt;
# trace-cmd show -s | tail -30&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [002] dNh4 23454.902246: sched_wakeup: comm=cyclictest pid=12272 prio=120 target_cpu=002&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [005] ...1 23454.902246: cpu_idle: state=4294967295 cpu_id=5&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [007] d..1 23454.902246: cpu_idle: state=0 cpu_id=7&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [002] dNh1 23454.902247: hrtimer_expire_exit: hrtimer=0000000037956dc2&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [005] d..1 23454.902248: cpu_idle: state=0 cpu_id=5&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [002] dNh1 23454.902248: write_msr: 6e0, value 4866ce957272&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [006] ...1 23454.902248: cpu_idle: state=4294967295 cpu_id=6&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [002] dNh1 23454.902249: local_timer_exit: vector=236&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [006] d..1 23454.902250: cpu_idle: state=0 cpu_id=6&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [002] .N.1 23454.902250: cpu_idle: state=4294967295 cpu_id=2&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [002] dN.1 23454.902251: rcu_utilization: Start context switch&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [002] dN.1 23454.902252: rcu_utilization: End context switch&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [001] ...1 23454.902252: cpu_idle: state=4294967295 cpu_id=1&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [002] dN.3 23454.902253: prandom_u32: ret=3692516021&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [001] d..1 23454.902254: cpu_idle: state=0 cpu_id=1&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [002] d..2 23454.902254: sched_switch: prev_comm=swapper/2 prev_pid=0 prev_prio=120 prev_state=R ==&amp;gt; next_comm=cyclictest next_pid=12275 next_prio=19&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [002] d..4 23454.902256: wakeup_lat: next_comm=cyclictest lat=17&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0       [002] d..5 23454.902258: &amp;lt;stack trace&amp;gt;&lt;br /&gt;
=&amp;gt; trace_event_raw_event_synth&lt;br /&gt;
=&amp;gt; action_trace&lt;br /&gt;
=&amp;gt; event_hist_trigger&lt;br /&gt;
=&amp;gt; event_triggers_call&lt;br /&gt;
=&amp;gt; trace_event_buffer_commit&lt;br /&gt;
=&amp;gt; trace_event_raw_event_sched_switch&lt;br /&gt;
=&amp;gt; __traceiter_sched_switch&lt;br /&gt;
=&amp;gt; __schedule&lt;br /&gt;
=&amp;gt; schedule_idle&lt;br /&gt;
=&amp;gt; do_idle&lt;br /&gt;
=&amp;gt; cpu_startup_entry&lt;br /&gt;
=&amp;gt; secondary_startup_64_no_verify&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Här är alternativen för sqlhist förklarade:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-n wakeup_lat&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
Namnge den syntetiska händelsen som ska användas: &amp;#039;&amp;#039;&amp;#039;wakeup_lat&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-e&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
Kör de kommandon som skrivs ut.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-T&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
Utför både en spårningsåtgärd och därefter en ögonblicksbild. Bufferten växlas då över till den statiska &amp;#039;&amp;#039;snapshot&amp;#039;&amp;#039;-bufferten.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-m lat&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
Utlös åtgärderna varje gång &amp;#039;&amp;#039;lat&amp;#039;&amp;#039; når ett nytt maxvärde.&lt;br /&gt;
&lt;br /&gt;
Uppdelning av SQL-uttrycket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;#039;SELECT end.next_comm AS comm, (end.TIMESTAMP_USECS - start.TIMESTAMP_USECS) AS lat FROM &amp;#039; \&lt;br /&gt;
   &amp;#039;sched_waking AS start JOIN sched_switch AS end ON start.pid = end.next_pid WHERE end.next_prio &amp;lt; 100 &amp;amp;&amp;amp; end.next_comm == &amp;quot;cyclictest&amp;quot;&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;end.next_comm AS comm&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
Spara fältet &amp;#039;&amp;#039;&amp;#039;next_comm&amp;#039;&amp;#039;&amp;#039; från &amp;#039;&amp;#039;sched_switch&amp;#039;&amp;#039; och placera det i fältet &amp;#039;&amp;#039;&amp;#039;comm&amp;#039;&amp;#039;&amp;#039; i den syntetiska händelsen &amp;#039;&amp;#039;wakeup_lat&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(end.TIMESTAMP_USECS - start.TIMESTAMP_USECS) AS lat&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
Beräkna skillnaden mellan tidsstämplarna från händelsen &amp;#039;&amp;#039;sched_switch&amp;#039;&amp;#039; och händelsen &amp;#039;&amp;#039;sched_waking&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Eftersom tidsstämplar normalt registreras i nanosekunder skulle &amp;#039;&amp;#039;&amp;#039;TIMESTAMP&amp;#039;&amp;#039;&amp;#039; ge hela tidsstämpeln i nanosekunder. Här används i stället &amp;#039;&amp;#039;&amp;#039;TIMESTAMP_USECS&amp;#039;&amp;#039;&amp;#039;, vilket trunkerar värdet till mikrosekunder. Värdet sparas i variabeln &amp;#039;&amp;#039;&amp;#039;lat&amp;#039;&amp;#039;&amp;#039;, som också registreras i den syntetiska händelsen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;FROM&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;sched_waking&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;AS start JOIN sched_switch AS end ON start.pid = end.next_pid&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
Skapa den syntetiska händelsen genom att koppla &amp;#039;&amp;#039;sched_waking&amp;#039;&amp;#039; till &amp;#039;&amp;#039;sched_switch&amp;#039;&amp;#039;, där fältet &amp;#039;&amp;#039;pid&amp;#039;&amp;#039; i &amp;#039;&amp;#039;sched_waking&amp;#039;&amp;#039; matchas mot fältet &amp;#039;&amp;#039;next_pid&amp;#039;&amp;#039; i &amp;#039;&amp;#039;sched_switch&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Aliaset &amp;#039;&amp;#039;&amp;#039;start&amp;#039;&amp;#039;&amp;#039; används för &amp;#039;&amp;#039;sched_waking&amp;#039;&amp;#039; och aliaset &amp;#039;&amp;#039;&amp;#039;end&amp;#039;&amp;#039;&amp;#039; används för &amp;#039;&amp;#039;sched_switch&amp;#039;&amp;#039;. Dessa alias kan sedan användas i resten av SQL-uttrycket.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WHERE end.next_prio &amp;lt; 100 &amp;amp;&amp;amp; end.next_comm == &amp;quot;cyclictest&amp;quot;&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
Filtrera logiken så att den endast körs om fältet &amp;#039;&amp;#039;next_prio&amp;#039;&amp;#039; är mindre än 100.&lt;br /&gt;
&lt;br /&gt;
Observera att prioriteringar i kärnan är omvända: realtidsprioriteter representeras från 0 till 100, där 0 är högsta prioritet.&lt;br /&gt;
&lt;br /&gt;
Dessutom spåras endast händelser där &amp;#039;&amp;#039;next_comm&amp;#039;&amp;#039;, alltså processen som schemaläggs in i &amp;#039;&amp;#039;sched_switch&amp;#039;&amp;#039;, har namnet &amp;quot;cyclictest&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
För kommandot trace-cmd:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
trace-cmd start -e all -e wakeup_lat -R stacktrace&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;trace-cmd start&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
Aktiverar spårning. Det spelar inte in till en fil.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-e all&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
Aktivera alla händelser.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-e wakeup_lat -R stacktrace&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
Låt händelsen &amp;quot;wakeup_lat&amp;quot;, alltså den syntetiska händelsen, aktivera triggern &amp;#039;&amp;#039;&amp;#039;stacktrace&amp;#039;&amp;#039;&amp;#039;. För varje förekomst av händelsen &amp;quot;wakeup_lat&amp;quot; registreras då en kärnstackspårning i ringbufferten.&lt;br /&gt;
&lt;br /&gt;
Efter att &amp;#039;&amp;#039;&amp;#039;cyclictest&amp;#039;&amp;#039;&amp;#039; har körts, vilket är ett realtidsverktyg för att mäta uppvakningslatens, kan snapshot-bufferten läsas.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;trace-cmd show -s&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;trace-cmd show&amp;#039;&amp;#039;&amp;#039; läser kärnans ringbuffert. Alternativet &amp;#039;&amp;#039;&amp;#039;-s&amp;#039;&amp;#039;&amp;#039; gör att &amp;#039;&amp;#039;&amp;#039;snapshot&amp;#039;&amp;#039;&amp;#039;-bufferten läses i stället för den vanliga bufferten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;idle&amp;gt;-0       [002] d..4 23454.902256: wakeup_lat: next_comm=cyclictest lat=17&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Här ser vi att händelsen &amp;quot;wakeup_lat&amp;quot; inträffade på CPU 2, med en uppvakningslatens på 17 mikrosekunder.&lt;br /&gt;
&lt;br /&gt;
Detta kan extraheras till en &amp;#039;&amp;#039;&amp;#039;trace.dat&amp;#039;&amp;#039;&amp;#039;-fil som [[trace-cmd(1)]] kan läsa för vidare analys, liksom kernelshark.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# trace-cmd extract -s&lt;br /&gt;
# trace-cmd report --cpu 2 | tail -30&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902238: prandom_u32:          ret=1633425088&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902239: sched_wakeup:         cyclictest:12275 [19] CPU:002&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902241: hrtimer_expire_exit:  hrtimer=0xffffbbd68286fe60&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902241: hrtimer_cancel:       hrtimer=0xffffbbd6826efe70&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902242: hrtimer_expire_entry: hrtimer=0xffffbbd6826efe70 now=23455294430750 function=hrtimer_wakeup/0x0&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902243: sched_waking:         comm=cyclictest pid=12272 prio=120 target_cpu=002&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902244: prandom_u32:          ret=1102749734&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902246: sched_wakeup:         cyclictest:12272 [120] CPU:002&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902247: hrtimer_expire_exit:  hrtimer=0xffffbbd6826efe70&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902248: write_msr:            6e0, value 4866ce957272&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902249: local_timer_exit:     vector=236&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902250: cpu_idle:             state=4294967295 cpu_id=2&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902251: rcu_utilization:      Start context switch&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902252: rcu_utilization:      End context switch&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902253: prandom_u32:          ret=3692516021&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902254: sched_switch:         swapper/2:0 [120] R ==&amp;gt; cyclictest:12275 [19]&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902256: wakeup_lat:           next_comm=cyclictest lat=17&lt;br /&gt;
        &amp;lt;idle&amp;gt;-0     [002] 23454.902258: kernel_stack:         &amp;lt;stack trace &amp;gt;&lt;br /&gt;
=&amp;gt; trace_event_raw_event_synth (ffffffff8121a0db)&lt;br /&gt;
=&amp;gt; action_trace (ffffffff8121e9fb)&lt;br /&gt;
=&amp;gt; event_hist_trigger (ffffffff8121ca8d)&lt;br /&gt;
=&amp;gt; event_triggers_call (ffffffff81216c72)&lt;br /&gt;
=&amp;gt; trace_event_buffer_commit (ffffffff811f7618)&lt;br /&gt;
=&amp;gt; trace_event_raw_event_sched_switch (ffffffff8110fda4)&lt;br /&gt;
=&amp;gt; __traceiter_sched_switch (ffffffff8110d449)&lt;br /&gt;
=&amp;gt; __schedule (ffffffff81c02002)&lt;br /&gt;
=&amp;gt; schedule_idle (ffffffff81c02c86)&lt;br /&gt;
=&amp;gt; do_idle (ffffffff8111e898)&lt;br /&gt;
=&amp;gt; cpu_startup_entry (ffffffff8111eba9)&lt;br /&gt;
=&amp;gt; secondary_startup_64_no_verify (ffffffff81000107)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FEL ==&lt;br /&gt;
&lt;br /&gt;
Eftersom sqlhist bara är exempelkod från en manualsida är det garanterat att programmet innehåller många fel. Bland annat hanteras inte alla felvägar korrekt.&lt;br /&gt;
&lt;br /&gt;
== SE ÄVEN ==&lt;br /&gt;
&lt;br /&gt;
[[trace-cmd(1)]], [[tracefs_sql(3)]]&lt;br /&gt;
&lt;br /&gt;
== FÖRFATTARE ==&lt;br /&gt;
&lt;br /&gt;
Skriven av Steven Rostedt, &amp;lt;rostedt@goodmis.org&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== RESURSER ==&lt;br /&gt;
&lt;br /&gt;
https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/&lt;br /&gt;
&lt;br /&gt;
== KOPIERING ==&lt;br /&gt;
&lt;br /&gt;
Copyright (C) 2021, Inc.&lt;br /&gt;
&lt;br /&gt;
Fri användning av denna programvara ges enligt villkoren i GNU Public License, GPL.&lt;br /&gt;
&lt;br /&gt;
== NOTERINGAR ==&lt;br /&gt;
&lt;br /&gt;
1. rostedt@goodmis.org  &lt;br /&gt;
mailto:rostedt@goodmis.org&lt;br /&gt;
&lt;br /&gt;
== KOLOFON ==&lt;br /&gt;
&lt;br /&gt;
Denna sida är en del av projektet libtracefs, Linuxkärnans bibliotek för trace-filsystemet.&lt;br /&gt;
&lt;br /&gt;
Information om projektet finns på:&lt;br /&gt;
&lt;br /&gt;
https://www.trace-cmd.org/&lt;br /&gt;
&lt;br /&gt;
Om du har en felrapport för denna manualsida, se:&lt;br /&gt;
&lt;br /&gt;
https://www.trace-cmd.org/&lt;br /&gt;
&lt;br /&gt;
Denna sida hämtades från projektets uppströms Git-arkiv:&lt;br /&gt;
&lt;br /&gt;
https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git&lt;br /&gt;
&lt;br /&gt;
Sidan hämtades den 16 januari 2026. Vid den tidpunkten var datumet för den senaste commit som hittades i arkivet den 2 januari 2026.&lt;br /&gt;
&lt;br /&gt;
Om du upptäcker renderingsproblem i HTML-versionen av sidan, eller anser att det finns en bättre eller mer uppdaterad källa för sidan, eller har korrigeringar eller förbättringar av informationen i denna KOLOFON, som inte är en del av den ursprungliga manualsidan, skicka e-post till man-pages@man7.org.&lt;br /&gt;
&lt;br /&gt;
== SIDOR SOM HÄNVISAR TILL DENNA SIDA ==&lt;br /&gt;
&lt;br /&gt;
* [[tracefs_sql(3)]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>