[Intel-gfx] [PATCH 03/12] drm/i915: Framework for capturing command stream based OA reports and ctx id info.

kbuild test robot lkp at intel.com
Mon Jul 31 15:38:25 UTC 2017


Hi Sourab,

[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on next-20170731]
[cannot apply to v4.13-rc3]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Sagar-Arun-Kamble/i915-perf-support-for-command-stream-based-OA-GPU-and-workload-metrics-capture/20170731-184412
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
reproduce: make htmldocs

All warnings (new ones prefixed by >>):

   WARNING: convert(1) not found, for SVG to PDF conversion install ImageMagick (https://www.imagemagick.org)
   include/linux/init.h:1: warning: no structured comments found
   include/linux/mod_devicetable.h:687: warning: Excess struct/union/enum/typedef member 'ver_major' description in 'fsl_mc_device_id'
   include/linux/mod_devicetable.h:687: warning: Excess struct/union/enum/typedef member 'ver_minor' description in 'fsl_mc_device_id'
   kernel/sched/core.c:2080: warning: No description found for parameter 'rf'
   kernel/sched/core.c:2080: warning: Excess function parameter 'cookie' description in 'try_to_wake_up_local'
   include/linux/wait.h:555: warning: No description found for parameter 'wq'
   include/linux/wait.h:555: warning: Excess function parameter 'wq_head' description in 'wait_event_interruptible_hrtimeout'
   include/linux/wait.h:759: warning: No description found for parameter 'wq_head'
   include/linux/wait.h:759: warning: Excess function parameter 'wq' description in 'wait_event_killable'
   include/linux/kthread.h:26: warning: Excess function parameter '...' description in 'kthread_create'
   kernel/sys.c:1: warning: no structured comments found
   include/linux/device.h:968: warning: No description found for parameter 'dma_ops'
   drivers/dma-buf/seqno-fence.c:1: warning: no structured comments found
   include/linux/iio/iio.h:603: warning: No description found for parameter 'trig_readonly'
   include/linux/iio/trigger.h:151: warning: No description found for parameter 'indio_dev'
   include/linux/iio/trigger.h:151: warning: No description found for parameter 'trig'
   include/linux/device.h:969: warning: No description found for parameter 'dma_ops'
   drivers/ata/libata-eh.c:1449: warning: No description found for parameter 'link'
   drivers/ata/libata-eh.c:1449: warning: Excess function parameter 'ap' description in 'ata_eh_done'
   drivers/ata/libata-eh.c:1590: warning: No description found for parameter 'qc'
   drivers/ata/libata-eh.c:1590: warning: Excess function parameter 'dev' description in 'ata_eh_request_sense'
   drivers/mtd/nand/nand_base.c:2751: warning: Excess function parameter 'cached' description in 'nand_write_page'
   drivers/mtd/nand/nand_base.c:2751: warning: Excess function parameter 'cached' description in 'nand_write_page'
   arch/s390/include/asm/cmb.h:1: warning: no structured comments found
   drivers/scsi/scsi_lib.c:1116: warning: No description found for parameter 'rq'
   drivers/scsi/constants.c:1: warning: no structured comments found
   include/linux/usb/gadget.h:230: warning: No description found for parameter 'claimed'
   include/linux/usb/gadget.h:230: warning: No description found for parameter 'enabled'
   include/linux/usb/gadget.h:412: warning: No description found for parameter 'quirk_altset_not_supp'
   include/linux/usb/gadget.h:412: warning: No description found for parameter 'quirk_stall_not_supp'
   include/linux/usb/gadget.h:412: warning: No description found for parameter 'quirk_zlp_not_supp'
   fs/inode.c:1666: warning: No description found for parameter 'rcu'
   include/linux/jbd2.h:443: warning: No description found for parameter 'i_transaction'
   include/linux/jbd2.h:443: warning: No description found for parameter 'i_next_transaction'
   include/linux/jbd2.h:443: warning: No description found for parameter 'i_list'
   include/linux/jbd2.h:443: warning: No description found for parameter 'i_vfs_inode'
   include/linux/jbd2.h:443: warning: No description found for parameter 'i_flags'
   include/linux/jbd2.h:497: warning: No description found for parameter 'h_rsv_handle'
   include/linux/jbd2.h:497: warning: No description found for parameter 'h_reserved'
   include/linux/jbd2.h:497: warning: No description found for parameter 'h_type'
   include/linux/jbd2.h:497: warning: No description found for parameter 'h_line_no'
   include/linux/jbd2.h:497: warning: No description found for parameter 'h_start_jiffies'
   include/linux/jbd2.h:497: warning: No description found for parameter 'h_requested_credits'
   include/linux/jbd2.h:497: warning: No description found for parameter 'saved_alloc_context'
   include/linux/jbd2.h:1050: warning: No description found for parameter 'j_chkpt_bhs'
   include/linux/jbd2.h:1050: warning: No description found for parameter 'j_devname'
   include/linux/jbd2.h:1050: warning: No description found for parameter 'j_average_commit_time'
   include/linux/jbd2.h:1050: warning: No description found for parameter 'j_min_batch_time'
   include/linux/jbd2.h:1050: warning: No description found for parameter 'j_max_batch_time'
   include/linux/jbd2.h:1050: warning: No description found for parameter 'j_commit_callback'
   include/linux/jbd2.h:1050: warning: No description found for parameter 'j_failed_commit'
   include/linux/jbd2.h:1050: warning: No description found for parameter 'j_chksum_driver'
   include/linux/jbd2.h:1050: warning: No description found for parameter 'j_csum_seed'
   fs/jbd2/transaction.c:511: warning: No description found for parameter 'type'
   fs/jbd2/transaction.c:511: warning: No description found for parameter 'line_no'
   fs/jbd2/transaction.c:641: warning: No description found for parameter 'gfp_mask'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'debugfs_init'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'gem_open_object'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'gem_close_object'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'prime_handle_to_fd'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'prime_fd_to_handle'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'gem_prime_export'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'gem_prime_import'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'gem_prime_pin'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'gem_prime_unpin'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'gem_prime_res_obj'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'gem_prime_get_sg_table'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'gem_prime_import_sg_table'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'gem_prime_vmap'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'gem_prime_vunmap'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'gem_prime_mmap'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'gem_vm_ops'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'major'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'minor'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'patchlevel'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'name'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'desc'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'date'
   include/drm/drm_drv.h:553: warning: No description found for parameter 'driver_features'
   drivers/gpu/drm/drm_modes.c:1623: warning: No description found for parameter 'display'
   drivers/gpu/drm/drm_modes.c:1623: warning: Excess function parameter 'connector' description in 'drm_mode_is_420_only'
>> drivers/gpu/drm/i915/i915_drv.h:2000: warning: No description found for parameter 'emit_sample_capture'
>> drivers/gpu/drm/i915/i915_drv.h:2078: warning: No description found for parameter 'cs_buffer'
>> drivers/gpu/drm/i915/i915_drv.h:2078: warning: No description found for parameter 'cs_samples'
>> drivers/gpu/drm/i915/i915_drv.h:2078: warning: No description found for parameter 'cs_samples_lock'
>> drivers/gpu/drm/i915/i915_drv.h:2078: warning: No description found for parameter 'poll_wq'
>> drivers/gpu/drm/i915/i915_drv.h:2078: warning: No description found for parameter 'pollin'
>> drivers/gpu/drm/i915/i915_drv.h:2000: warning: No description found for parameter 'emit_sample_capture'
>> drivers/gpu/drm/i915/i915_drv.h:2078: warning: No description found for parameter 'cs_buffer'
>> drivers/gpu/drm/i915/i915_drv.h:2078: warning: No description found for parameter 'cs_samples'
>> drivers/gpu/drm/i915/i915_drv.h:2078: warning: No description found for parameter 'cs_samples_lock'
>> drivers/gpu/drm/i915/i915_drv.h:2078: warning: No description found for parameter 'poll_wq'
>> drivers/gpu/drm/i915/i915_drv.h:2078: warning: No description found for parameter 'pollin'
>> drivers/gpu/drm/i915/i915_drv.h:2000: warning: No description found for parameter 'emit_sample_capture'
>> drivers/gpu/drm/i915/i915_drv.h:2078: warning: No description found for parameter 'cs_buffer'
>> drivers/gpu/drm/i915/i915_drv.h:2078: warning: No description found for parameter 'cs_samples'
>> drivers/gpu/drm/i915/i915_drv.h:2078: warning: No description found for parameter 'cs_samples_lock'
>> drivers/gpu/drm/i915/i915_drv.h:2078: warning: No description found for parameter 'poll_wq'
>> drivers/gpu/drm/i915/i915_drv.h:2078: warning: No description found for parameter 'pollin'
>> drivers/gpu/drm/i915/i915_perf.c:1: warning: no structured comments found
>> drivers/gpu/drm/i915/i915_perf.c:1: warning: no structured comments found

vim +/emit_sample_capture +2000 drivers/gpu/drm/i915/i915_drv.h

  1925	
  1926	/**
  1927	 * struct i915_perf_stream_ops - the OPs to support a specific stream type
  1928	 */
  1929	struct i915_perf_stream_ops {
  1930		/**
  1931		 * @enable: Enables the collection of HW samples, either in response to
  1932		 * `I915_PERF_IOCTL_ENABLE` or implicitly called when stream is opened
  1933		 * without `I915_PERF_FLAG_DISABLED`.
  1934		 */
  1935		void (*enable)(struct i915_perf_stream *stream);
  1936	
  1937		/**
  1938		 * @disable: Disables the collection of HW samples, either in response
  1939		 * to `I915_PERF_IOCTL_DISABLE` or implicitly called before destroying
  1940		 * the stream.
  1941		 */
  1942		void (*disable)(struct i915_perf_stream *stream);
  1943	
  1944		/**
  1945		 * @poll_wait: Call poll_wait, passing a wait queue that will be woken
  1946		 * once there is something ready to read() for the stream
  1947		 */
  1948		void (*poll_wait)(struct i915_perf_stream *stream,
  1949				  struct file *file,
  1950				  poll_table *wait);
  1951	
  1952		/**
  1953		 * @wait_unlocked: For handling a blocking read, wait until there is
  1954		 * something to ready to read() for the stream. E.g. wait on the same
  1955		 * wait queue that would be passed to poll_wait().
  1956		 */
  1957		int (*wait_unlocked)(struct i915_perf_stream *stream);
  1958	
  1959		/**
  1960		 * @read: Copy buffered metrics as records to userspace
  1961		 * **buf**: the userspace, destination buffer
  1962		 * **count**: the number of bytes to copy, requested by userspace
  1963		 * **offset**: zero at the start of the read, updated as the read
  1964		 * proceeds, it represents how many bytes have been copied so far and
  1965		 * the buffer offset for copying the next record.
  1966		 *
  1967		 * Copy as many buffered i915 perf samples and records for this stream
  1968		 * to userspace as will fit in the given buffer.
  1969		 *
  1970		 * Only write complete records; returning -%ENOSPC if there isn't room
  1971		 * for a complete record.
  1972		 *
  1973		 * Return any error condition that results in a short read such as
  1974		 * -%ENOSPC or -%EFAULT, even though these may be squashed before
  1975		 * returning to userspace.
  1976		 */
  1977		int (*read)(struct i915_perf_stream *stream,
  1978			    char __user *buf,
  1979			    size_t count,
  1980			    size_t *offset);
  1981	
  1982		/**
  1983		 * @destroy: Cleanup any stream specific resources.
  1984		 *
  1985		 * The stream will always be disabled before this is called.
  1986		 */
  1987		void (*destroy)(struct i915_perf_stream *stream);
  1988	
  1989		/*
  1990		 * @emit_sample_capture: Emit the commands in the command streamer
  1991		 * for a particular gpu engine.
  1992		 *
  1993		 * The commands are inserted to capture the perf sample data at
  1994		 * specific points during workload execution, such as before and after
  1995		 * the batch buffer.
  1996		 */
  1997		void (*emit_sample_capture)(struct i915_perf_stream *stream,
  1998					    struct drm_i915_gem_request *request,
  1999					    bool preallocate);
> 2000	};
  2001	
  2002	enum i915_perf_stream_state {
  2003		I915_PERF_STREAM_DISABLED,
  2004		I915_PERF_STREAM_ENABLE_IN_PROGRESS,
  2005		I915_PERF_STREAM_ENABLED,
  2006	};
  2007	
  2008	/**
  2009	 * struct i915_perf_stream - state for a single open stream FD
  2010	 */
  2011	struct i915_perf_stream {
  2012		/**
  2013		 * @dev_priv: i915 drm device
  2014		 */
  2015		struct drm_i915_private *dev_priv;
  2016	
  2017		/**
  2018		 * @engine: Engine to which this stream corresponds.
  2019		 */
  2020		struct intel_engine_cs *engine;
  2021	
  2022		/**
  2023		 * @sample_flags: Flags representing the `DRM_I915_PERF_PROP_SAMPLE_*`
  2024		 * properties given when opening a stream, representing the contents
  2025		 * of a single sample as read() by userspace.
  2026		 */
  2027		u32 sample_flags;
  2028	
  2029		/**
  2030		 * @sample_size: Considering the configured contents of a sample
  2031		 * combined with the required header size, this is the total size
  2032		 * of a single sample record.
  2033		 */
  2034		int sample_size;
  2035	
  2036		/**
  2037		 * @ctx: %NULL if measuring system-wide across all contexts or a
  2038		 * specific context that is being monitored.
  2039		 */
  2040		struct i915_gem_context *ctx;
  2041	
  2042		/**
  2043		 * @state: Current stream state, which can be either disabled, enabled,
  2044		 * or enable_in_progress, while considering whether the stream was
  2045		 * opened in a disabled state and based on `I915_PERF_IOCTL_ENABLE` and
  2046		 * `I915_PERF_IOCTL_DISABLE` calls.
  2047		 */
  2048		enum i915_perf_stream_state state;
  2049	
  2050		/**
  2051		 * @cs_mode: Whether command stream based perf sample collection is
  2052		 * enabled for this stream
  2053		 */
  2054		bool cs_mode;
  2055	
  2056		/**
  2057		 * @using_oa: Whether OA unit is in use for this particular stream
  2058		 */
  2059		bool using_oa;
  2060	
  2061		/**
  2062		 * @ops: The callbacks providing the implementation of this specific
  2063		 * type of configured stream.
  2064		 */
  2065		const struct i915_perf_stream_ops *ops;
  2066	
  2067		/* Command stream based perf data buffer */
  2068		struct {
  2069			struct i915_vma *vma;
  2070			u8 *vaddr;
  2071		} cs_buffer;
  2072	
  2073		struct list_head cs_samples;
  2074		spinlock_t cs_samples_lock;
  2075	
  2076		wait_queue_head_t poll_wq;
  2077		bool pollin;
> 2078	};
  2079	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 6735 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20170731/ea04c06d/attachment-0001.gz>


More information about the Intel-gfx mailing list