# Monitor the system for dropped packets and proudce a report of drop locations and counts import os import sys sys.path.append(os.environ['PERF_EXEC_PATH'] + \ '/scripts/python/Perf-Trace-Util/lib/Perf/Trace') from perf_trace_context import * from Core import * from Util import * drop_log = {} kallsyms = [] def get_kallsyms_table(): global kallsyms try: f = open("/proc/kallsyms", "r") except: return for line in f: loc = int(line.split()[0], 16) name = line.split()[2] kallsyms.append((loc, name)) kallsyms.sort() def get_sym(sloc): loc = int(sloc) # Invariant: kallsyms[i][0] <= loc for all 0 <= i <= start # kallsyms[i][0] > loc for all end <= i < len(kallsyms) start, end = -1, len(kallsyms) while end != start + 1: pivot = (start + end) // 2 if loc < kallsyms[pivot][0]: end = pivot else: start = pivot # Now (start == -1 or kallsyms[start][0] <= loc) # and (start == len(kallsyms) - 1 or loc < kallsyms[start + 1][0]) if start >= 0: symloc, name = kallsyms[start] return (name, loc - symloc) else: return (None, 0) def print_drop_table(): print "%25s %25s %25s" % ("LOCATION", "OFFSET", "COUNT") for i in drop_log.keys(): (sym, off) = get_sym(i) if sym == None: sym = i print "%25s %25s %25s" % (sym, off, drop_log[i]) def trace_begin(): print "Starting trace (Ctrl-C to dump results)" def trace_end(): print "Gathering kallsyms data" get_kallsyms_table() print_drop_table() # called from perf, when it finds a correspoinding event def skb__kfree_skb(name, context, cpu, sec, nsec, pid, comm, callchain, skbaddr, location, protocol): slocation = str(location) try: drop_log[slocation] = drop_log[slocation] + 1 except: drop_log[slocation] = 1 tion value='linux-2.6.26.y'>linux-2.6.26.y Hosts the 0x221E linux distro kernel.Ubuntu
summaryrefslogtreecommitdiff
path: root/drivers/virt
AgeCommit message (Expand)Author
2022-03-31Merge tag 'random-5.18-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/k...Linus Torvalds
2022-03-28Merge tag 'char-misc-5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/g...Linus Torvalds
2022-03-25virt: vmgenid: recognize new CID added by Hyper-VMichael Kelley
2022-03-18virt: acrn: fix a memory leak in acrn_dev_ioctl()Xiaolong Huang
2022-03-18virt: acrn: obtain pa from VMA with PFNMAP flagYonghua Huang
2022-03-18virt: acrn: Remove unsued acrn_irqfds_mutex.Sebastian Andrzej Siewior
2022-03-18virt: fsl_hypervisor: Directly return 0 instead of using local ret variableHaowen Bai
2022-03-12virt: vmgenid: notify RNG of VM fork and supply generation IDJason A. Donenfeld
2022-01-23Merge tag 'bitmap-5.17-rc1' of git://github.com/norov/linuxLinus Torvalds
2022-01-15all: replace find_next{,_zero}_bit with find_first{,_zero}_bit where appropriateYury Norov
2022-01-03Merge 5.16-rc8 into char-misc-nextGreg Kroah-Hartman
2021-12-21nitro_enclaves: Use get_user_pages_unlocked() call to handle mmap assertAndra Paraschiv
2021-11-17nitro_enclaves: Add KUnit tests for contiguous physical memory regions mergingLongpeng
2021-11-17nitro_enclaves: Add KUnit tests setup for the misc device functionalityLongpeng
2021-11-17nitro_enclaves: Sanity check physical memory regions during mergingLongpeng
2021-11-17nitro_enclaves: Merge contiguous physical memory regionsLongpeng
2021-11-17nitro_enclaves: Remove redundant 'flush_workqueue()' callsChristophe JAILLET
2021-10-05virt: acrn: Introduce interfaces for virtual device creating/destroyingShuo Liu
2021-10-05virt: acrn: Introduce interfaces for MMIO device passthroughShuo Liu
2021-09-14nitro_enclaves: Add fixes for checkpatch match open parenthesis reportsAndra Paraschiv
2021-09-14nitro_enclaves: Update copyright statement to include 2021Andra Paraschiv
2021-09-14nitro_enclaves: Add fix for the kernel-doc reportAndra Paraschiv
2021-09-14nitro_enclaves: Enable Arm64 supportAndra Paraschiv