Commit 14a34130 authored by Thomas Richter's avatar Thomas Richter Committed by Vasily Gorbik

s390/cpum_sf: Rework debug_sprintf_event() messages

Rework debug messages:
 - Remove most of the debug_sprintf_event() invocations.
 - Do not split string format statements
 - Remove colon after function name.
Signed-off-by: default avatarThomas Richter <tmricht@linux.ibm.com>
Acked-by: default avatarSumanth Korikkar <sumanthk@linux.ibm.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent 6d9a732d
...@@ -129,17 +129,6 @@ static inline unsigned long sample_rate_to_freq(struct hws_qsi_info_block *qsi, ...@@ -129,17 +129,6 @@ static inline unsigned long sample_rate_to_freq(struct hws_qsi_info_block *qsi,
return USEC_PER_SEC * qsi->cpu_speed / rate; return USEC_PER_SEC * qsi->cpu_speed / rate;
} }
/* Return TOD timestamp contained in an trailer entry */
static inline unsigned long long trailer_timestamp(struct hws_trailer_entry *te)
{
/* TOD in STCKE format */
if (te->header.t)
return *((unsigned long long *)&te->timestamp[1]);
/* TOD in STCK format */
return *((unsigned long long *)&te->timestamp[0]);
}
/* Return pointer to trailer entry of an sample data block */ /* Return pointer to trailer entry of an sample data block */
static inline struct hws_trailer_entry *trailer_entry_ptr(unsigned long v) static inline struct hws_trailer_entry *trailer_entry_ptr(unsigned long v)
{ {
...@@ -224,8 +213,6 @@ static void free_sampling_buffer(struct sf_buffer *sfb) ...@@ -224,8 +213,6 @@ static void free_sampling_buffer(struct sf_buffer *sfb)
} }
} }
debug_sprintf_event(sfdbg, 5, "%s: freed sdbt %#lx\n", __func__,
(unsigned long)sfb->sdbt);
memset(sfb, 0, sizeof(*sfb)); memset(sfb, 0, sizeof(*sfb));
} }
...@@ -281,10 +268,8 @@ static int realloc_sampling_buffer(struct sf_buffer *sfb, ...@@ -281,10 +268,8 @@ static int realloc_sampling_buffer(struct sf_buffer *sfb,
* the sampling buffer origin. * the sampling buffer origin.
*/ */
if (sfb->sdbt != get_next_sdbt(tail)) { if (sfb->sdbt != get_next_sdbt(tail)) {
debug_sprintf_event(sfdbg, 3, "%s: " debug_sprintf_event(sfdbg, 3, "%s buffer not linked origin %#lx tail %#lx\n",
"sampling buffer is not linked: origin %#lx" __func__, (unsigned long)sfb->sdbt,
" tail %#lx\n", __func__,
(unsigned long)sfb->sdbt,
(unsigned long)tail); (unsigned long)tail);
return -EINVAL; return -EINVAL;
} }
...@@ -334,9 +319,6 @@ static int realloc_sampling_buffer(struct sf_buffer *sfb, ...@@ -334,9 +319,6 @@ static int realloc_sampling_buffer(struct sf_buffer *sfb,
*tail = virt_to_phys(sfb->sdbt) + 1; *tail = virt_to_phys(sfb->sdbt) + 1;
sfb->tail = tail; sfb->tail = tail;
debug_sprintf_event(sfdbg, 4, "%s: new buffer"
" settings: sdbt %lu sdb %lu\n", __func__,
sfb->num_sdbt, sfb->num_sdb);
return rc; return rc;
} }
...@@ -373,15 +355,8 @@ static int alloc_sampling_buffer(struct sf_buffer *sfb, unsigned long num_sdb) ...@@ -373,15 +355,8 @@ static int alloc_sampling_buffer(struct sf_buffer *sfb, unsigned long num_sdb)
/* Allocate requested number of sample-data-blocks */ /* Allocate requested number of sample-data-blocks */
rc = realloc_sampling_buffer(sfb, num_sdb, GFP_KERNEL); rc = realloc_sampling_buffer(sfb, num_sdb, GFP_KERNEL);
if (rc) { if (rc)
free_sampling_buffer(sfb); free_sampling_buffer(sfb);
debug_sprintf_event(sfdbg, 4, "%s: "
"realloc_sampling_buffer failed with rc %i\n",
__func__, rc);
} else
debug_sprintf_event(sfdbg, 4,
"%s: tear %#lx dear %#lx\n", __func__,
(unsigned long)sfb->sdbt, (unsigned long)*sfb->sdbt);
return rc; return rc;
} }
...@@ -413,12 +388,6 @@ static unsigned long sfb_pending_allocs(struct sf_buffer *sfb, ...@@ -413,12 +388,6 @@ static unsigned long sfb_pending_allocs(struct sf_buffer *sfb,
return 0; return 0;
} }
static int sfb_has_pending_allocs(struct sf_buffer *sfb,
struct hw_perf_event *hwc)
{
return sfb_pending_allocs(sfb, hwc) > 0;
}
static void sfb_account_allocs(unsigned long num, struct hw_perf_event *hwc) static void sfb_account_allocs(unsigned long num, struct hw_perf_event *hwc)
{ {
/* Limit the number of SDBs to not exceed the maximum */ /* Limit the number of SDBs to not exceed the maximum */
...@@ -442,7 +411,6 @@ static void deallocate_buffers(struct cpu_hw_sf *cpuhw) ...@@ -442,7 +411,6 @@ static void deallocate_buffers(struct cpu_hw_sf *cpuhw)
static int allocate_buffers(struct cpu_hw_sf *cpuhw, struct hw_perf_event *hwc) static int allocate_buffers(struct cpu_hw_sf *cpuhw, struct hw_perf_event *hwc)
{ {
unsigned long n_sdb, freq; unsigned long n_sdb, freq;
size_t sample_size;
/* Calculate sampling buffers using 4K pages /* Calculate sampling buffers using 4K pages
* *
...@@ -473,7 +441,6 @@ static int allocate_buffers(struct cpu_hw_sf *cpuhw, struct hw_perf_event *hwc) ...@@ -473,7 +441,6 @@ static int allocate_buffers(struct cpu_hw_sf *cpuhw, struct hw_perf_event *hwc)
* ensure a minimum of CPUM_SF_MIN_SDBT (one table can manage up * ensure a minimum of CPUM_SF_MIN_SDBT (one table can manage up
* to 511 SDBs). * to 511 SDBs).
*/ */
sample_size = sizeof(struct hws_basic_entry);
freq = sample_rate_to_freq(&cpuhw->qsi, SAMPL_RATE(hwc)); freq = sample_rate_to_freq(&cpuhw->qsi, SAMPL_RATE(hwc));
n_sdb = CPUM_SF_MIN_SDB + DIV_ROUND_UP(freq, 10000); n_sdb = CPUM_SF_MIN_SDB + DIV_ROUND_UP(freq, 10000);
...@@ -489,12 +456,6 @@ static int allocate_buffers(struct cpu_hw_sf *cpuhw, struct hw_perf_event *hwc) ...@@ -489,12 +456,6 @@ static int allocate_buffers(struct cpu_hw_sf *cpuhw, struct hw_perf_event *hwc)
if (sf_buffer_available(cpuhw)) if (sf_buffer_available(cpuhw))
return 0; return 0;
debug_sprintf_event(sfdbg, 3,
"%s: rate %lu f %lu sdb %lu/%lu"
" sample_size %lu cpuhw %p\n", __func__,
SAMPL_RATE(hwc), freq, n_sdb, sfb_max_limit(hwc),
sample_size, cpuhw);
return alloc_sampling_buffer(&cpuhw->sfb, return alloc_sampling_buffer(&cpuhw->sfb,
sfb_pending_allocs(&cpuhw->sfb, hwc)); sfb_pending_allocs(&cpuhw->sfb, hwc));
} }
...@@ -551,8 +512,6 @@ static void sfb_account_overflows(struct cpu_hw_sf *cpuhw, ...@@ -551,8 +512,6 @@ static void sfb_account_overflows(struct cpu_hw_sf *cpuhw,
if (num) if (num)
sfb_account_allocs(num, hwc); sfb_account_allocs(num, hwc);
debug_sprintf_event(sfdbg, 5, "%s: overflow %llu ratio %lu num %lu\n",
__func__, OVERFLOW_REG(hwc), ratio, num);
OVERFLOW_REG(hwc) = 0; OVERFLOW_REG(hwc) = 0;
} }
...@@ -570,13 +529,11 @@ static void sfb_account_overflows(struct cpu_hw_sf *cpuhw, ...@@ -570,13 +529,11 @@ static void sfb_account_overflows(struct cpu_hw_sf *cpuhw,
static void extend_sampling_buffer(struct sf_buffer *sfb, static void extend_sampling_buffer(struct sf_buffer *sfb,
struct hw_perf_event *hwc) struct hw_perf_event *hwc)
{ {
unsigned long num, num_old; unsigned long num;
int rc;
num = sfb_pending_allocs(sfb, hwc); num = sfb_pending_allocs(sfb, hwc);
if (!num) if (!num)
return; return;
num_old = sfb->num_sdb;
/* Disable the sampling facility to reset any states and also /* Disable the sampling facility to reset any states and also
* clear pending measurement alerts. * clear pending measurement alerts.
...@@ -588,16 +545,7 @@ static void extend_sampling_buffer(struct sf_buffer *sfb, ...@@ -588,16 +545,7 @@ static void extend_sampling_buffer(struct sf_buffer *sfb,
* called by perf. Because this is a reallocation, it is fine if the * called by perf. Because this is a reallocation, it is fine if the
* new SDB-request cannot be satisfied immediately. * new SDB-request cannot be satisfied immediately.
*/ */
rc = realloc_sampling_buffer(sfb, num, GFP_ATOMIC); realloc_sampling_buffer(sfb, num, GFP_ATOMIC);
if (rc)
debug_sprintf_event(sfdbg, 5, "%s: realloc failed with rc %i\n",
__func__, rc);
if (sfb_has_pending_allocs(sfb, hwc))
debug_sprintf_event(sfdbg, 5, "%s: "
"req %lu alloc %lu remaining %lu\n",
__func__, num, sfb->num_sdb - num_old,
sfb_pending_allocs(sfb, hwc));
} }
/* Number of perf events counting hardware events */ /* Number of perf events counting hardware events */
...@@ -750,9 +698,6 @@ static unsigned long getrate(bool freq, unsigned long sample, ...@@ -750,9 +698,6 @@ static unsigned long getrate(bool freq, unsigned long sample,
*/ */
if (sample_rate_to_freq(si, rate) > if (sample_rate_to_freq(si, rate) >
sysctl_perf_event_sample_rate) { sysctl_perf_event_sample_rate) {
debug_sprintf_event(sfdbg, 1, "%s: "
"Sampling rate exceeds maximum "
"perf sample rate\n", __func__);
rate = 0; rate = 0;
} }
} }
...@@ -797,9 +742,6 @@ static int __hw_perf_event_init_rate(struct perf_event *event, ...@@ -797,9 +742,6 @@ static int __hw_perf_event_init_rate(struct perf_event *event,
attr->sample_period = rate; attr->sample_period = rate;
SAMPL_RATE(hwc) = rate; SAMPL_RATE(hwc) = rate;
hw_init_period(hwc, SAMPL_RATE(hwc)); hw_init_period(hwc, SAMPL_RATE(hwc));
debug_sprintf_event(sfdbg, 4, "%s: cpu %d period %#llx freq %d,%#lx\n",
__func__, event->cpu, event->attr.sample_period,
event->attr.freq, SAMPL_FREQ_MODE(hwc));
return 0; return 0;
} }
...@@ -1012,12 +954,6 @@ static void cpumsf_pmu_enable(struct pmu *pmu) ...@@ -1012,12 +954,6 @@ static void cpumsf_pmu_enable(struct pmu *pmu)
/* Load current program parameter */ /* Load current program parameter */
lpp(&get_lowcore()->lpp); lpp(&get_lowcore()->lpp);
debug_sprintf_event(sfdbg, 6, "%s: es %i cs %i ed %i cd %i "
"interval %#lx tear %#lx dear %#lx\n", __func__,
cpuhw->lsctl.es, cpuhw->lsctl.cs, cpuhw->lsctl.ed,
cpuhw->lsctl.cd, cpuhw->lsctl.interval,
cpuhw->lsctl.tear, cpuhw->lsctl.dear);
} }
static void cpumsf_pmu_disable(struct pmu *pmu) static void cpumsf_pmu_disable(struct pmu *pmu)
...@@ -1221,11 +1157,6 @@ static void hw_collect_samples(struct perf_event *event, unsigned long *sdbt, ...@@ -1221,11 +1157,6 @@ static void hw_collect_samples(struct perf_event *event, unsigned long *sdbt,
/* Count discarded samples */ /* Count discarded samples */
*overflow += 1; *overflow += 1;
} else { } else {
debug_sprintf_event(sfdbg, 4,
"%s: Found unknown"
" sampling data entry: te->f %i"
" basic.def %#4x (%p)\n", __func__,
te->header.f, sample->def, sample);
/* Sample slot is not yet written or other record. /* Sample slot is not yet written or other record.
* *
* This condition can occur if the buffer was reused * This condition can occur if the buffer was reused
...@@ -1295,13 +1226,6 @@ static void hw_perf_event_update(struct perf_event *event, int flush_all) ...@@ -1295,13 +1226,6 @@ static void hw_perf_event_update(struct perf_event *event, int flush_all)
*/ */
sampl_overflow += te->header.overflow; sampl_overflow += te->header.overflow;
/* Timestamps are valid for full sample-data-blocks only */
debug_sprintf_event(sfdbg, 6, "%s: sdbt %#lx/%#lx "
"overflow %llu timestamp %#llx\n",
__func__, sdb, (unsigned long)sdbt,
te->header.overflow,
(te->header.f) ? trailer_timestamp(te) : 0ULL);
/* Collect all samples from a single sample-data-block and /* Collect all samples from a single sample-data-block and
* flag if an (perf) event overflow happened. If so, the PMU * flag if an (perf) event overflow happened. If so, the PMU
* is stopped and remaining samples will be discarded. * is stopped and remaining samples will be discarded.
...@@ -1348,19 +1272,8 @@ static void hw_perf_event_update(struct perf_event *event, int flush_all) ...@@ -1348,19 +1272,8 @@ static void hw_perf_event_update(struct perf_event *event, int flush_all)
* are dropped. * are dropped.
* Slightly increase the interval to avoid hitting this limit. * Slightly increase the interval to avoid hitting this limit.
*/ */
if (event_overflow) { if (event_overflow)
SAMPL_RATE(hwc) += DIV_ROUND_UP(SAMPL_RATE(hwc), 10); SAMPL_RATE(hwc) += DIV_ROUND_UP(SAMPL_RATE(hwc), 10);
debug_sprintf_event(sfdbg, 1, "%s: rate adjustment %ld\n",
__func__,
DIV_ROUND_UP(SAMPL_RATE(hwc), 10));
}
if (sampl_overflow || event_overflow)
debug_sprintf_event(sfdbg, 4, "%s: "
"overflows: sample %llu event %llu"
" total %llu num_sdb %llu\n",
__func__, sampl_overflow, event_overflow,
OVERFLOW_REG(hwc), num_sdb);
} }
static inline unsigned long aux_sdb_index(struct aux_buffer *aux, static inline unsigned long aux_sdb_index(struct aux_buffer *aux,
...@@ -1428,9 +1341,6 @@ static void aux_output_end(struct perf_output_handle *handle) ...@@ -1428,9 +1341,6 @@ static void aux_output_end(struct perf_output_handle *handle)
/* Remove alert indicators in the buffer */ /* Remove alert indicators in the buffer */
te = aux_sdb_trailer(aux, aux->alert_mark); te = aux_sdb_trailer(aux, aux->alert_mark);
te->header.a = 0; te->header.a = 0;
debug_sprintf_event(sfdbg, 6, "%s: SDBs %ld range %ld head %ld\n",
__func__, i, range_scan, aux->head);
} }
/* /*
...@@ -1461,10 +1371,6 @@ static int aux_output_begin(struct perf_output_handle *handle, ...@@ -1461,10 +1371,6 @@ static int aux_output_begin(struct perf_output_handle *handle,
* SDBs between aux->head and aux->empty_mark are already ready * SDBs between aux->head and aux->empty_mark are already ready
* for new data. range_scan is num of SDBs not within them. * for new data. range_scan is num of SDBs not within them.
*/ */
debug_sprintf_event(sfdbg, 6,
"%s: range %ld head %ld alert %ld empty %ld\n",
__func__, range, aux->head, aux->alert_mark,
aux->empty_mark);
if (range > aux_sdb_num_empty(aux)) { if (range > aux_sdb_num_empty(aux)) {
range_scan = range - aux_sdb_num_empty(aux); range_scan = range - aux_sdb_num_empty(aux);
idx = aux->empty_mark + 1; idx = aux->empty_mark + 1;
...@@ -1490,12 +1396,6 @@ static int aux_output_begin(struct perf_output_handle *handle, ...@@ -1490,12 +1396,6 @@ static int aux_output_begin(struct perf_output_handle *handle,
cpuhw->lsctl.tear = virt_to_phys((void *)base) + offset * sizeof(unsigned long); cpuhw->lsctl.tear = virt_to_phys((void *)base) + offset * sizeof(unsigned long);
cpuhw->lsctl.dear = virt_to_phys((void *)aux->sdb_index[head]); cpuhw->lsctl.dear = virt_to_phys((void *)aux->sdb_index[head]);
debug_sprintf_event(sfdbg, 6, "%s: head %ld alert %ld empty %ld "
"index %ld tear %#lx dear %#lx\n", __func__,
aux->head, aux->alert_mark, aux->empty_mark,
head / CPUM_SF_SDB_PER_TABLE,
cpuhw->lsctl.tear, cpuhw->lsctl.dear);
return 0; return 0;
} }
...@@ -1557,14 +1457,11 @@ static bool aux_set_alert(struct aux_buffer *aux, unsigned long alert_index, ...@@ -1557,14 +1457,11 @@ static bool aux_set_alert(struct aux_buffer *aux, unsigned long alert_index,
static bool aux_reset_buffer(struct aux_buffer *aux, unsigned long range, static bool aux_reset_buffer(struct aux_buffer *aux, unsigned long range,
unsigned long long *overflow) unsigned long long *overflow)
{ {
unsigned long i, range_scan, idx, idx_old;
union hws_trailer_header old, prev, new; union hws_trailer_header old, prev, new;
unsigned long i, range_scan, idx;
unsigned long long orig_overflow; unsigned long long orig_overflow;
struct hws_trailer_entry *te; struct hws_trailer_entry *te;
debug_sprintf_event(sfdbg, 6, "%s: range %ld head %ld alert %ld "
"empty %ld\n", __func__, range, aux->head,
aux->alert_mark, aux->empty_mark);
if (range <= aux_sdb_num_empty(aux)) if (range <= aux_sdb_num_empty(aux))
/* /*
* No need to scan. All SDBs in range are marked as empty. * No need to scan. All SDBs in range are marked as empty.
...@@ -1587,7 +1484,7 @@ static bool aux_reset_buffer(struct aux_buffer *aux, unsigned long range, ...@@ -1587,7 +1484,7 @@ static bool aux_reset_buffer(struct aux_buffer *aux, unsigned long range,
* indicator fall into this range, set it. * indicator fall into this range, set it.
*/ */
range_scan = range - aux_sdb_num_empty(aux); range_scan = range - aux_sdb_num_empty(aux);
idx_old = idx = aux->empty_mark + 1; idx = aux->empty_mark + 1;
for (i = 0; i < range_scan; i++, idx++) { for (i = 0; i < range_scan; i++, idx++) {
te = aux_sdb_trailer(aux, idx); te = aux_sdb_trailer(aux, idx);
prev.val = READ_ONCE_ALIGNED_128(te->header.val); prev.val = READ_ONCE_ALIGNED_128(te->header.val);
...@@ -1609,9 +1506,6 @@ static bool aux_reset_buffer(struct aux_buffer *aux, unsigned long range, ...@@ -1609,9 +1506,6 @@ static bool aux_reset_buffer(struct aux_buffer *aux, unsigned long range,
/* Update empty_mark to new position */ /* Update empty_mark to new position */
aux->empty_mark = aux->head + range - 1; aux->empty_mark = aux->head + range - 1;
debug_sprintf_event(sfdbg, 6, "%s: range_scan %ld idx %ld..%ld "
"empty %ld\n", __func__, range_scan, idx_old,
idx - 1, aux->empty_mark);
return true; return true;
} }
...@@ -1633,7 +1527,7 @@ static void hw_collect_aux(struct cpu_hw_sf *cpuhw) ...@@ -1633,7 +1527,7 @@ static void hw_collect_aux(struct cpu_hw_sf *cpuhw)
/* Inform user space new data arrived */ /* Inform user space new data arrived */
size = aux_sdb_num_alert(aux) << PAGE_SHIFT; size = aux_sdb_num_alert(aux) << PAGE_SHIFT;
debug_sprintf_event(sfdbg, 6, "%s: #alert %ld\n", __func__, debug_sprintf_event(sfdbg, 6, "%s #alert %ld\n", __func__,
size >> PAGE_SHIFT); size >> PAGE_SHIFT);
perf_aux_output_end(handle, size); perf_aux_output_end(handle, size);
...@@ -1667,23 +1561,11 @@ static void hw_collect_aux(struct cpu_hw_sf *cpuhw) ...@@ -1667,23 +1561,11 @@ static void hw_collect_aux(struct cpu_hw_sf *cpuhw)
perf_aux_output_end(&cpuhw->handle, size); perf_aux_output_end(&cpuhw->handle, size);
pr_err("Sample data caused the AUX buffer with %lu " pr_err("Sample data caused the AUX buffer with %lu "
"pages to overflow\n", aux->sfb.num_sdb); "pages to overflow\n", aux->sfb.num_sdb);
debug_sprintf_event(sfdbg, 1, "%s: head %ld range %ld "
"overflow %lld\n", __func__,
aux->head, range, overflow);
} else { } else {
size = aux_sdb_num_alert(aux) << PAGE_SHIFT; size = aux_sdb_num_alert(aux) << PAGE_SHIFT;
perf_aux_output_end(&cpuhw->handle, size); perf_aux_output_end(&cpuhw->handle, size);
debug_sprintf_event(sfdbg, 6, "%s: head %ld alert %ld "
"already full, try another\n",
__func__,
aux->head, aux->alert_mark);
} }
} }
if (done)
debug_sprintf_event(sfdbg, 6, "%s: head %ld alert %ld "
"empty %ld\n", __func__, aux->head,
aux->alert_mark, aux->empty_mark);
} }
/* /*
...@@ -1705,8 +1587,6 @@ static void aux_buffer_free(void *data) ...@@ -1705,8 +1587,6 @@ static void aux_buffer_free(void *data)
kfree(aux->sdbt_index); kfree(aux->sdbt_index);
kfree(aux->sdb_index); kfree(aux->sdb_index);
kfree(aux); kfree(aux);
debug_sprintf_event(sfdbg, 4, "%s: SDBTs %lu\n", __func__, num_sdbt);
} }
static void aux_sdb_init(unsigned long sdb) static void aux_sdb_init(unsigned long sdb)
...@@ -1814,9 +1694,6 @@ static void *aux_buffer_setup(struct perf_event *event, void **pages, ...@@ -1814,9 +1694,6 @@ static void *aux_buffer_setup(struct perf_event *event, void **pages,
*/ */
aux->empty_mark = sfb->num_sdb - 1; aux->empty_mark = sfb->num_sdb - 1;
debug_sprintf_event(sfdbg, 4, "%s: SDBTs %lu SDBs %lu\n", __func__,
sfb->num_sdbt, sfb->num_sdb);
return aux; return aux;
no_sdbt: no_sdbt:
...@@ -1867,10 +1744,6 @@ static int cpumsf_pmu_check_period(struct perf_event *event, u64 value) ...@@ -1867,10 +1744,6 @@ static int cpumsf_pmu_check_period(struct perf_event *event, u64 value)
event->attr.sample_period = rate; event->attr.sample_period = rate;
SAMPL_RATE(&event->hw) = rate; SAMPL_RATE(&event->hw) = rate;
hw_init_period(&event->hw, SAMPL_RATE(&event->hw)); hw_init_period(&event->hw, SAMPL_RATE(&event->hw));
debug_sprintf_event(sfdbg, 4, "%s:"
" cpu %d value %#llx period %#llx freq %d\n",
__func__, event->cpu, value,
event->attr.sample_period, do_freq);
return 0; return 0;
} }
...@@ -2099,7 +1972,7 @@ static void cpumf_measurement_alert(struct ext_code ext_code, ...@@ -2099,7 +1972,7 @@ static void cpumf_measurement_alert(struct ext_code ext_code,
/* Report measurement alerts only for non-PRA codes */ /* Report measurement alerts only for non-PRA codes */
if (alert != CPU_MF_INT_SF_PRA) if (alert != CPU_MF_INT_SF_PRA)
debug_sprintf_event(sfdbg, 6, "%s: alert %#x\n", __func__, debug_sprintf_event(sfdbg, 6, "%s alert %#x\n", __func__,
alert); alert);
/* Sampling authorization change request */ /* Sampling authorization change request */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment