]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
s390/cpum_sf: Rework debug_sprintf_event() messages
authorThomas Richter <tmricht@linux.ibm.com>
Thu, 25 Jul 2024 13:32:26 +0000 (15:32 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Thu, 22 Aug 2024 17:28:10 +0000 (19:28 +0200)
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: Thomas Richter <tmricht@linux.ibm.com>
Acked-by: Sumanth 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: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/kernel/perf_cpum_sf.c

index 8ac28bc41b5b995e0d8431f7fc178601d8dd4255..8d49f24f1bf6ad52a8b9636a8d186b4c88bbf623 100644 (file)
@@ -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 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 */
 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)
                }
        }
 
-       debug_sprintf_event(sfdbg, 5, "%s: freed sdbt %#lx\n", __func__,
-                           (unsigned long)sfb->sdbt);
        memset(sfb, 0, sizeof(*sfb));
 }
 
@@ -281,10 +268,8 @@ static int realloc_sampling_buffer(struct sf_buffer *sfb,
         * the sampling buffer origin.
         */
        if (sfb->sdbt != get_next_sdbt(tail)) {
-               debug_sprintf_event(sfdbg, 3, "%s: "
-                                   "sampling buffer is not linked: origin %#lx"
-                                   " tail %#lx\n", __func__,
-                                   (unsigned long)sfb->sdbt,
+               debug_sprintf_event(sfdbg, 3, "%s buffer not linked origin %#lx tail %#lx\n",
+                                   __func__, (unsigned long)sfb->sdbt,
                                    (unsigned long)tail);
                return -EINVAL;
        }
@@ -334,9 +319,6 @@ static int realloc_sampling_buffer(struct sf_buffer *sfb,
        *tail = virt_to_phys(sfb->sdbt) + 1;
        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;
 }
 
@@ -373,15 +355,8 @@ static int alloc_sampling_buffer(struct sf_buffer *sfb, unsigned long num_sdb)
 
        /* Allocate requested number of sample-data-blocks */
        rc = realloc_sampling_buffer(sfb, num_sdb, GFP_KERNEL);
-       if (rc) {
+       if (rc)
                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;
 }
 
@@ -413,12 +388,6 @@ static unsigned long sfb_pending_allocs(struct sf_buffer *sfb,
        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)
 {
        /* Limit the number of SDBs to not exceed the maximum */
@@ -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)
 {
        unsigned long n_sdb, freq;
-       size_t sample_size;
 
        /* Calculate sampling buffers using 4K pages
         *
@@ -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
         *       to 511 SDBs).
         */
-       sample_size = sizeof(struct hws_basic_entry);
        freq = sample_rate_to_freq(&cpuhw->qsi, SAMPL_RATE(hwc));
        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)
        if (sf_buffer_available(cpuhw))
                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,
                                     sfb_pending_allocs(&cpuhw->sfb, hwc));
 }
@@ -551,8 +512,6 @@ static void sfb_account_overflows(struct cpu_hw_sf *cpuhw,
        if (num)
                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;
 }
 
@@ -570,13 +529,11 @@ static void sfb_account_overflows(struct cpu_hw_sf *cpuhw,
 static void extend_sampling_buffer(struct sf_buffer *sfb,
                                   struct hw_perf_event *hwc)
 {
-       unsigned long num, num_old;
-       int rc;
+       unsigned long num;
 
        num = sfb_pending_allocs(sfb, hwc);
        if (!num)
                return;
-       num_old = sfb->num_sdb;
 
        /* Disable the sampling facility to reset any states and also
         * clear pending measurement alerts.
@@ -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
         * new SDB-request cannot be satisfied immediately.
         */
-       rc = 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));
+       realloc_sampling_buffer(sfb, num, GFP_ATOMIC);
 }
 
 /* Number of perf events counting hardware events */
@@ -750,9 +698,6 @@ static unsigned long getrate(bool freq, unsigned long sample,
                 */
                if (sample_rate_to_freq(si, rate) >
                    sysctl_perf_event_sample_rate) {
-                       debug_sprintf_event(sfdbg, 1, "%s: "
-                                           "Sampling rate exceeds maximum "
-                                           "perf sample rate\n", __func__);
                        rate = 0;
                }
        }
@@ -797,9 +742,6 @@ static int __hw_perf_event_init_rate(struct perf_event *event,
        attr->sample_period = rate;
        SAMPL_RATE(hwc) = rate;
        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;
 }
 
@@ -1012,12 +954,6 @@ static void cpumsf_pmu_enable(struct pmu *pmu)
 
        /* Load current program parameter */
        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)
@@ -1221,11 +1157,6 @@ static void hw_collect_samples(struct perf_event *event, unsigned long *sdbt,
                                /* Count discarded samples */
                                *overflow += 1;
                } 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.
                         *
                         * 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)
                         */
                        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
                 * flag if an (perf) event overflow happened.  If so, the PMU
                 * 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)
         * are dropped.
         * 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);
-               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,
@@ -1428,9 +1341,6 @@ static void aux_output_end(struct perf_output_handle *handle)
        /* Remove alert indicators in the buffer */
        te = aux_sdb_trailer(aux, aux->alert_mark);
        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,
         * SDBs between aux->head and aux->empty_mark are already ready
         * 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)) {
                range_scan = range - aux_sdb_num_empty(aux);
                idx = aux->empty_mark + 1;
@@ -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.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;
 }
 
@@ -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,
                             unsigned long long *overflow)
 {
-       unsigned long i, range_scan, idx, idx_old;
        union hws_trailer_header old, prev, new;
+       unsigned long i, range_scan, idx;
        unsigned long long orig_overflow;
        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))
                /*
                 * 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,
         * indicator fall into this range, set it.
         */
        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++) {
                te = aux_sdb_trailer(aux, idx);
                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,
        /* Update empty_mark to new position */
        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;
 }
 
@@ -1633,7 +1527,7 @@ static void hw_collect_aux(struct cpu_hw_sf *cpuhw)
 
        /* Inform user space new data arrived */
        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);
        perf_aux_output_end(handle, size);
 
@@ -1667,23 +1561,11 @@ static void hw_collect_aux(struct cpu_hw_sf *cpuhw)
                        perf_aux_output_end(&cpuhw->handle, size);
                        pr_err("Sample data caused the AUX buffer with %lu "
                               "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 {
                        size = aux_sdb_num_alert(aux) << PAGE_SHIFT;
                        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)
        kfree(aux->sdbt_index);
        kfree(aux->sdb_index);
        kfree(aux);
-
-       debug_sprintf_event(sfdbg, 4, "%s: SDBTs %lu\n", __func__, num_sdbt);
 }
 
 static void aux_sdb_init(unsigned long sdb)
@@ -1814,9 +1694,6 @@ static void *aux_buffer_setup(struct perf_event *event, void **pages,
         */
        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;
 
 no_sdbt:
@@ -1867,10 +1744,6 @@ static int cpumsf_pmu_check_period(struct perf_event *event, u64 value)
        event->attr.sample_period = rate;
        SAMPL_RATE(&event->hw) = rate;
        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;
 }
 
@@ -2099,7 +1972,7 @@ static void cpumf_measurement_alert(struct ext_code ext_code,
 
        /* Report measurement alerts only for non-PRA codes */
        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);
 
        /* Sampling authorization change request */