#!/usr/bin/perl -w # (c) 2009, Tom Zanussi # Licensed under the terms of the GNU GPL License version 2 # Display avg/min/max wakeup latency # The common_* event handler fields are the most useful fields common to # all events. They don't necessarily correspond to the 'common_*' fields # in the status files. Those fields not available as handler params can # be retrieved via script functions of the form get_common_*(). use 5.010000; use strict; use warnings; use lib "$ENV{'PERF_EXEC_PATH'}/scripts/perl/Perf-Trace-Util/lib"; use lib "./Perf-Trace-Util/lib"; use Perf::Trace::Core; use Perf::Trace::Util; my %last_wakeup; my $max_wakeup_latency; my $min_wakeup_latency; my $total_wakeup_latency = 0; my $total_wakeups = 0; sub sched::sched_switch { my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, $common_pid, $common_comm, $prev_comm, $prev_pid, $prev_prio, $prev_state, $next_comm, $next_pid, $next_prio) = @_; my $wakeup_ts = $last_wakeup{$common_cpu}{ts}; if ($wakeup_ts) { my $switch_ts = nsecs($common_secs, $common_nsecs); my $wakeup_latency = $switch_ts - $wakeup_ts; if ($wakeup_latency > $max_wakeup_latency) { $max_wakeup_latency = $wakeup_latency; } if ($wakeup_latency < $min_wakeup_latency) { $min_wakeup_latency = $wakeup_latency; } $total_wakeup_latency += $wakeup_latency; $total_wakeups++; } $last_wakeup{$common_cpu}{ts} = 0; } sub sched::sched_wakeup { my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, $common_pid, $common_comm, $comm, $pid, $prio, $success, $target_cpu) = @_; $last_wakeup{$target_cpu}{ts} = nsecs($common_secs, $common_nsecs); } sub trace_begin { $min_wakeup_latency = 1000000000; $max_wakeup_latency = 0; } sub trace_end { printf("wakeup_latency stats:\n\n"); print "total_wakeups: $total_wakeups\n"; if ($total_wakeups) { printf("avg_wakeup_latency (ns): %u\n", avg($total_wakeup_latency, $total_wakeups)); } else { printf("avg_wakeup_latency (ns): N/A\n"); } printf("min_wakeup_latency (ns): %u\n", $min_wakeup_latency); printf("max_wakeup_latency (ns): %u\n", $max_wakeup_latency); print_unhandled(); } my %unhandled; sub print_unhandled { if ((scalar keys %unhandled) == 0) { return; } print "\nunhandled events:\n\n"; printf("%-40s %10s\n", "event", "count"); printf("%-40s %10s\n", "----------------------------------------", "-----------"); foreach my $event_name (keys %unhandled) { printf("%-40s %10d\n", $event_name, $unhandled{$event_name}); } } sub trace_unhandled { my ($event_name, $context, $common_cpu, $common_secs, $common_nsecs, $common_pid, $common_comm) = @_; $unhandled{$event_name}++; } value=''/>
path: root/drivers/usb/host/uhci-grlib.c
te-remove'/>
AgeCommit message (Expand)AuthorFilesLines
context:
space:
mode:
authorJack Morgenstein <jackm@dev.mellanox.co.il>2017-01-15 20:15:00 +0200
committerDoug Ledford <dledford@redhat.com>2017-01-27 14:29:04 -0500
commitb4cfe3971f6eab542dd7ecc398bfa1aeec889934 (patch)
treec7ad49d05da0535170c8e7710cd44ae1cecc271f /tools/perf/Documentation/manpage-suppress-sp.xsl
parent2d4b21e0a2913612274a69a3ba1bfee4cffc6e77 (diff)
RDMA/cma: Fix unknown symbol when CONFIG_IPV6 is not enabled
If IPV6 has not been enabled in the underlying kernel, we must avoid calling IPV6 procedures in rdma_cm.ko. This requires using "IS_ENABLED(CONFIG_IPV6)" in "if" statements surrounding any code which calls external IPV6 procedures. In the instance fixed here, procedure cma_bind_addr() called ipv6_addr_type() -- which resulted in calling external procedure __ipv6_addr_type(). Fixes: 6c26a77124ff ("RDMA/cma: fix IPv6 address resolution") Cc: <stable@vger.kernel.org> # v4.2+ Cc: Spencer Baugh <sbaugh@catern.com> Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il> Reviewed-by: Moni Shoua <monis@mellanox.com> Signed-off-by: Leon Romanovsky <leon@kernel.org> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'tools/perf/Documentation/manpage-suppress-sp.xsl')