diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/perf_counter.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/kernel/perf_counter.c b/kernel/perf_counter.c index 2d4aebb2982b..4dc8600d2825 100644 --- a/kernel/perf_counter.c +++ b/kernel/perf_counter.c | |||
@@ -1850,6 +1850,16 @@ static void perf_counter_output(struct perf_counter *counter, | |||
1850 | header.size += sizeof(tid_entry); | 1850 | header.size += sizeof(tid_entry); |
1851 | } | 1851 | } |
1852 | 1852 | ||
1853 | if (record_type & PERF_RECORD_TIME) { | ||
1854 | /* | ||
1855 | * Maybe do better on x86 and provide cpu_clock_nmi() | ||
1856 | */ | ||
1857 | time = sched_clock(); | ||
1858 | |||
1859 | header.type |= PERF_RECORD_TIME; | ||
1860 | header.size += sizeof(u64); | ||
1861 | } | ||
1862 | |||
1853 | if (record_type & PERF_RECORD_GROUP) { | 1863 | if (record_type & PERF_RECORD_GROUP) { |
1854 | header.type |= PERF_RECORD_GROUP; | 1864 | header.type |= PERF_RECORD_GROUP; |
1855 | header.size += sizeof(u64) + | 1865 | header.size += sizeof(u64) + |
@@ -1867,16 +1877,6 @@ static void perf_counter_output(struct perf_counter *counter, | |||
1867 | } | 1877 | } |
1868 | } | 1878 | } |
1869 | 1879 | ||
1870 | if (record_type & PERF_RECORD_TIME) { | ||
1871 | /* | ||
1872 | * Maybe do better on x86 and provide cpu_clock_nmi() | ||
1873 | */ | ||
1874 | time = sched_clock(); | ||
1875 | |||
1876 | header.type |= PERF_RECORD_TIME; | ||
1877 | header.size += sizeof(u64); | ||
1878 | } | ||
1879 | |||
1880 | ret = perf_output_begin(&handle, counter, header.size, nmi, 1); | 1880 | ret = perf_output_begin(&handle, counter, header.size, nmi, 1); |
1881 | if (ret) | 1881 | if (ret) |
1882 | return; | 1882 | return; |
@@ -1889,6 +1889,9 @@ static void perf_counter_output(struct perf_counter *counter, | |||
1889 | if (record_type & PERF_RECORD_TID) | 1889 | if (record_type & PERF_RECORD_TID) |
1890 | perf_output_put(&handle, tid_entry); | 1890 | perf_output_put(&handle, tid_entry); |
1891 | 1891 | ||
1892 | if (record_type & PERF_RECORD_TIME) | ||
1893 | perf_output_put(&handle, time); | ||
1894 | |||
1892 | if (record_type & PERF_RECORD_GROUP) { | 1895 | if (record_type & PERF_RECORD_GROUP) { |
1893 | struct perf_counter *leader, *sub; | 1896 | struct perf_counter *leader, *sub; |
1894 | u64 nr = counter->nr_siblings; | 1897 | u64 nr = counter->nr_siblings; |
@@ -1910,9 +1913,6 @@ static void perf_counter_output(struct perf_counter *counter, | |||
1910 | if (callchain) | 1913 | if (callchain) |
1911 | perf_output_copy(&handle, callchain, callchain_size); | 1914 | perf_output_copy(&handle, callchain, callchain_size); |
1912 | 1915 | ||
1913 | if (record_type & PERF_RECORD_TIME) | ||
1914 | perf_output_put(&handle, time); | ||
1915 | |||
1916 | perf_output_end(&handle); | 1916 | perf_output_end(&handle); |
1917 | } | 1917 | } |
1918 | 1918 | ||