Skip to content
Snippets Groups Projects
Select Git revision
21 results Searching

virtio_test.c

Blame
  • Forked from hardware-enablement / Rockchip upstream enablement efforts / linux
    Source project has a limited visibility.
    • Rusty Russell's avatar
      7b21e34f
      virtio: harsher barriers for rpmsg. · 7b21e34f
      Rusty Russell authored
      We were cheating with our barriers; using the smp ones rather than the
      real device ones.  That was fine, until rpmsg came along, which is
      used to talk to a real device (a non-SMP CPU).
      
      Unfortunately, just putting back the real barriers (reverting
      d57ed95d) causes a performance regression on virtio-pci.  In
      particular, Amos reports netbench's TCP_RR over virtio_net CPU
      utilization increased up to 35% while throughput went down by up to
      14%.
      
      By comparison, this branch is in the noise.
      
      Reference: https://lkml.org/lkml/2011/12/11/22
      
      
      
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      7b21e34f
      History
      virtio: harsher barriers for rpmsg.
      Rusty Russell authored
      We were cheating with our barriers; using the smp ones rather than the
      real device ones.  That was fine, until rpmsg came along, which is
      used to talk to a real device (a non-SMP CPU).
      
      Unfortunately, just putting back the real barriers (reverting
      d57ed95d) causes a performance regression on virtio-pci.  In
      particular, Amos reports netbench's TCP_RR over virtio_net CPU
      utilization increased up to 35% while throughput went down by up to
      14%.
      
      By comparison, this branch is in the noise.
      
      Reference: https://lkml.org/lkml/2011/12/11/22
      
      
      
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    trace.h 62.52 KiB
    // SPDX-License-Identifier: GPL-2.0
    
    #ifndef _LINUX_KERNEL_TRACE_H
    #define _LINUX_KERNEL_TRACE_H
    
    #include <linux/fs.h>
    #include <linux/atomic.h>
    #include <linux/sched.h>
    #include <linux/clocksource.h>
    #include <linux/ring_buffer.h>
    #include <linux/mmiotrace.h>
    #include <linux/tracepoint.h>
    #include <linux/ftrace.h>
    #include <linux/hw_breakpoint.h>
    #include <linux/trace_seq.h>
    #include <linux/trace_events.h>
    #include <linux/compiler.h>
    #include <linux/glob.h>
    
    #ifdef CONFIG_FTRACE_SYSCALLS
    #include <asm/unistd.h>		/* For NR_SYSCALLS	     */
    #include <asm/syscall.h>	/* some archs define it here */
    #endif
    
    enum trace_type {
    	__TRACE_FIRST_TYPE = 0,
    
    	TRACE_FN,
    	TRACE_CTX,
    	TRACE_WAKE,
    	TRACE_STACK,
    	TRACE_PRINT,
    	TRACE_BPRINT,
    	TRACE_MMIO_RW,
    	TRACE_MMIO_MAP,
    	TRACE_BRANCH,
    	TRACE_GRAPH_RET,
    	TRACE_GRAPH_ENT,
    	TRACE_USER_STACK,
    	TRACE_BLK,
    	TRACE_BPUTS,
    	TRACE_HWLAT,
    	TRACE_RAW_DATA,
    
    	__TRACE_LAST_TYPE,
    };
    
    
    #undef __field
    #define __field(type, item)		type	item;
    
    #undef __field_struct
    #define __field_struct(type, item)	__field(type, item)
    
    #undef __field_desc
    #define __field_desc(type, container, item)
    
    #undef __array
    #define __array(type, item, size)	type	item[size];
    
    #undef __array_desc
    #define __array_desc(type, container, item, size)
    
    #undef __dynamic_array
    #define __dynamic_array(type, item)	type	item[];
    
    #undef F_STRUCT
    #define F_STRUCT(args...)		args
    
    #undef FTRACE_ENTRY