From: kernel test robot <lkp@intel.com>
To: "Adrián Larumbe" <adrian.larumbe@collabora.com>,
boris.brezillon@collabora.com, steven.price@arm.com,
liviu.dudau@arm.com, maarten.lankhorst@linux.intel.com,
mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com,
daniel@ffwll.ch
Cc: oe-kbuild-all@lists.linux.dev, adrian.larumbe@collabora.com,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
kernel@collabora.com
Subject: Re: [PATCH 1/2] drm/panthor: Enable fdinfo for cycle and time measurements
Date: Fri, 8 Mar 2024 16:47:28 +0800 [thread overview]
Message-ID: <202403081627.Y50ZoOIS-lkp@intel.com> (raw)
In-Reply-To: <20240305211000.659103-2-adrian.larumbe@collabora.com>
Hi Adrián,
kernel test robot noticed the following build warnings:
[auto build test WARNING on e635b7eb7062b464bbd9795308b1a80eac0b01f5]
url: https://github.com/intel-lab-lkp/linux/commits/Adri-n-Larumbe/drm-panthor-Enable-fdinfo-for-cycle-and-time-measurements/20240306-051418
base: e635b7eb7062b464bbd9795308b1a80eac0b01f5
patch link: https://lore.kernel.org/r/20240305211000.659103-2-adrian.larumbe%40collabora.com
patch subject: [PATCH 1/2] drm/panthor: Enable fdinfo for cycle and time measurements
config: loongarch-allmodconfig (https://download.01.org/0day-ci/archive/20240308/202403081627.Y50ZoOIS-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240308/202403081627.Y50ZoOIS-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202403081627.Y50ZoOIS-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/gpu/drm/panthor/panthor_sched.c:321: warning: Excess struct member 'runnable' description in 'panthor_scheduler'
drivers/gpu/drm/panthor/panthor_sched.c:321: warning: Excess struct member 'idle' description in 'panthor_scheduler'
drivers/gpu/drm/panthor/panthor_sched.c:321: warning: Excess struct member 'waiting' description in 'panthor_scheduler'
drivers/gpu/drm/panthor/panthor_sched.c:321: warning: Excess struct member 'has_ref' description in 'panthor_scheduler'
drivers/gpu/drm/panthor/panthor_sched.c:321: warning: Excess struct member 'in_progress' description in 'panthor_scheduler'
drivers/gpu/drm/panthor/panthor_sched.c:321: warning: Excess struct member 'stopped_groups' description in 'panthor_scheduler'
>> drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'nelem' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'mem' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'input' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'output' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'input_fw_va' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'output_fw_va' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'gpu_va' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'ref' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'gt' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'sync64' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'bo' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'offset' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'kmap' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'lock' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'id' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'seqno' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:480: warning: Excess struct member 'in_flight_jobs' description in 'panthor_queue'
drivers/gpu/drm/panthor/panthor_sched.c:670: warning: Function parameter or struct member 'max_fragment_cores' not described in 'panthor_group'
>> drivers/gpu/drm/panthor/panthor_sched.c:670: warning: Excess struct member 'bo' description in 'panthor_group'
>> drivers/gpu/drm/panthor/panthor_sched.c:670: warning: Excess struct member 'times_offset' description in 'panthor_group'
>> drivers/gpu/drm/panthor/panthor_sched.c:670: warning: Excess struct member 'data' description in 'panthor_group'
>> drivers/gpu/drm/panthor/panthor_sched.c:670: warning: Excess struct member 'lock' description in 'panthor_group'
drivers/gpu/drm/panthor/panthor_sched.c:800: warning: Excess struct member 'start' description in 'panthor_job'
drivers/gpu/drm/panthor/panthor_sched.c:800: warning: Excess struct member 'size' description in 'panthor_job'
drivers/gpu/drm/panthor/panthor_sched.c:800: warning: Excess struct member 'latest_flush' description in 'panthor_job'
drivers/gpu/drm/panthor/panthor_sched.c:800: warning: Excess struct member 'start' description in 'panthor_job'
drivers/gpu/drm/panthor/panthor_sched.c:800: warning: Excess struct member 'end' description in 'panthor_job'
drivers/gpu/drm/panthor/panthor_sched.c:1043: warning: Cannot understand * @cs_slot_reset_locked() - Reset a queue slot
on line 1043 - I thought it was a doc line
drivers/gpu/drm/panthor/panthor_sched.c:1645: warning: expecting prototype for panthor_sched_process_global_irq(). Prototype was for sched_process_global_irq_locked() instead
drivers/gpu/drm/panthor/panthor_sched.c:1687: warning: Function parameter or struct member 'ptdev' not described in 'panthor_sched_report_fw_events'
drivers/gpu/drm/panthor/panthor_sched.c:1687: warning: Function parameter or struct member 'events' not described in 'panthor_sched_report_fw_events'
drivers/gpu/drm/panthor/panthor_sched.c:1711: warning: Cannot understand */
on line 1711 - I thought it was a doc line
drivers/gpu/drm/panthor/panthor_sched.c:2583: warning: Function parameter or struct member 'ptdev' not described in 'panthor_sched_report_mmu_fault'
vim +480 drivers/gpu/drm/panthor/panthor_sched.c
de85488138247d Boris Brezillon 2024-02-29 396
de85488138247d Boris Brezillon 2024-02-29 397 /** @ringbuf: Command stream ring-buffer. */
93e3ba65963905 Adrián Larumbe 2024-03-05 398 struct {
93e3ba65963905 Adrián Larumbe 2024-03-05 399 /** @ringbuf: Kernel BO that holds ring buffer. */
93e3ba65963905 Adrián Larumbe 2024-03-05 400 struct panthor_kernel_bo *bo;
93e3ba65963905 Adrián Larumbe 2024-03-05 401
93e3ba65963905 Adrián Larumbe 2024-03-05 402 /** @nelem: Number of slots in the ring buffer. */
93e3ba65963905 Adrián Larumbe 2024-03-05 403 unsigned int nelem;
93e3ba65963905 Adrián Larumbe 2024-03-05 404 } ringbuf;
de85488138247d Boris Brezillon 2024-02-29 405
de85488138247d Boris Brezillon 2024-02-29 406 /** @iface: Firmware interface. */
de85488138247d Boris Brezillon 2024-02-29 407 struct {
de85488138247d Boris Brezillon 2024-02-29 408 /** @mem: FW memory allocated for this interface. */
de85488138247d Boris Brezillon 2024-02-29 409 struct panthor_kernel_bo *mem;
de85488138247d Boris Brezillon 2024-02-29 410
de85488138247d Boris Brezillon 2024-02-29 411 /** @input: Input interface. */
de85488138247d Boris Brezillon 2024-02-29 412 struct panthor_fw_ringbuf_input_iface *input;
de85488138247d Boris Brezillon 2024-02-29 413
de85488138247d Boris Brezillon 2024-02-29 414 /** @output: Output interface. */
de85488138247d Boris Brezillon 2024-02-29 415 const struct panthor_fw_ringbuf_output_iface *output;
de85488138247d Boris Brezillon 2024-02-29 416
de85488138247d Boris Brezillon 2024-02-29 417 /** @input_fw_va: FW virtual address of the input interface buffer. */
de85488138247d Boris Brezillon 2024-02-29 418 u32 input_fw_va;
de85488138247d Boris Brezillon 2024-02-29 419
de85488138247d Boris Brezillon 2024-02-29 420 /** @output_fw_va: FW virtual address of the output interface buffer. */
de85488138247d Boris Brezillon 2024-02-29 421 u32 output_fw_va;
de85488138247d Boris Brezillon 2024-02-29 422 } iface;
de85488138247d Boris Brezillon 2024-02-29 423
de85488138247d Boris Brezillon 2024-02-29 424 /**
de85488138247d Boris Brezillon 2024-02-29 425 * @syncwait: Stores information about the synchronization object this
de85488138247d Boris Brezillon 2024-02-29 426 * queue is waiting on.
de85488138247d Boris Brezillon 2024-02-29 427 */
de85488138247d Boris Brezillon 2024-02-29 428 struct {
de85488138247d Boris Brezillon 2024-02-29 429 /** @gpu_va: GPU address of the synchronization object. */
de85488138247d Boris Brezillon 2024-02-29 430 u64 gpu_va;
de85488138247d Boris Brezillon 2024-02-29 431
de85488138247d Boris Brezillon 2024-02-29 432 /** @ref: Reference value to compare against. */
de85488138247d Boris Brezillon 2024-02-29 433 u64 ref;
de85488138247d Boris Brezillon 2024-02-29 434
de85488138247d Boris Brezillon 2024-02-29 435 /** @gt: True if this is a greater-than test. */
de85488138247d Boris Brezillon 2024-02-29 436 bool gt;
de85488138247d Boris Brezillon 2024-02-29 437
de85488138247d Boris Brezillon 2024-02-29 438 /** @sync64: True if this is a 64-bit sync object. */
de85488138247d Boris Brezillon 2024-02-29 439 bool sync64;
de85488138247d Boris Brezillon 2024-02-29 440
de85488138247d Boris Brezillon 2024-02-29 441 /** @bo: Buffer object holding the synchronization object. */
de85488138247d Boris Brezillon 2024-02-29 442 struct drm_gem_object *obj;
de85488138247d Boris Brezillon 2024-02-29 443
de85488138247d Boris Brezillon 2024-02-29 444 /** @offset: Offset of the synchronization object inside @bo. */
de85488138247d Boris Brezillon 2024-02-29 445 u64 offset;
de85488138247d Boris Brezillon 2024-02-29 446
de85488138247d Boris Brezillon 2024-02-29 447 /**
de85488138247d Boris Brezillon 2024-02-29 448 * @kmap: Kernel mapping of the buffer object holding the
de85488138247d Boris Brezillon 2024-02-29 449 * synchronization object.
de85488138247d Boris Brezillon 2024-02-29 450 */
de85488138247d Boris Brezillon 2024-02-29 451 void *kmap;
de85488138247d Boris Brezillon 2024-02-29 452 } syncwait;
de85488138247d Boris Brezillon 2024-02-29 453
de85488138247d Boris Brezillon 2024-02-29 454 /** @fence_ctx: Fence context fields. */
de85488138247d Boris Brezillon 2024-02-29 455 struct {
de85488138247d Boris Brezillon 2024-02-29 456 /** @lock: Used to protect access to all fences allocated by this context. */
de85488138247d Boris Brezillon 2024-02-29 457 spinlock_t lock;
de85488138247d Boris Brezillon 2024-02-29 458
de85488138247d Boris Brezillon 2024-02-29 459 /**
de85488138247d Boris Brezillon 2024-02-29 460 * @id: Fence context ID.
de85488138247d Boris Brezillon 2024-02-29 461 *
de85488138247d Boris Brezillon 2024-02-29 462 * Allocated with dma_fence_context_alloc().
de85488138247d Boris Brezillon 2024-02-29 463 */
de85488138247d Boris Brezillon 2024-02-29 464 u64 id;
de85488138247d Boris Brezillon 2024-02-29 465
de85488138247d Boris Brezillon 2024-02-29 466 /** @seqno: Sequence number of the last initialized fence. */
de85488138247d Boris Brezillon 2024-02-29 467 atomic64_t seqno;
de85488138247d Boris Brezillon 2024-02-29 468
de85488138247d Boris Brezillon 2024-02-29 469 /**
de85488138247d Boris Brezillon 2024-02-29 470 * @in_flight_jobs: List containing all in-flight jobs.
de85488138247d Boris Brezillon 2024-02-29 471 *
de85488138247d Boris Brezillon 2024-02-29 472 * Used to keep track and signal panthor_job::done_fence when the
de85488138247d Boris Brezillon 2024-02-29 473 * synchronization object attached to the queue is signaled.
de85488138247d Boris Brezillon 2024-02-29 474 */
de85488138247d Boris Brezillon 2024-02-29 475 struct list_head in_flight_jobs;
de85488138247d Boris Brezillon 2024-02-29 476 } fence_ctx;
93e3ba65963905 Adrián Larumbe 2024-03-05 477
93e3ba65963905 Adrián Larumbe 2024-03-05 478 /** @time_offset: Offset of fdinfo stats structs in queue's syncobj. */
93e3ba65963905 Adrián Larumbe 2024-03-05 479 unsigned long time_offset;
de85488138247d Boris Brezillon 2024-02-29 @480 };
de85488138247d Boris Brezillon 2024-02-29 481
de85488138247d Boris Brezillon 2024-02-29 482 /**
de85488138247d Boris Brezillon 2024-02-29 483 * enum panthor_group_state - Scheduling group state.
de85488138247d Boris Brezillon 2024-02-29 484 */
de85488138247d Boris Brezillon 2024-02-29 485 enum panthor_group_state {
de85488138247d Boris Brezillon 2024-02-29 486 /** @PANTHOR_CS_GROUP_CREATED: Group was created, but not scheduled yet. */
de85488138247d Boris Brezillon 2024-02-29 487 PANTHOR_CS_GROUP_CREATED,
de85488138247d Boris Brezillon 2024-02-29 488
de85488138247d Boris Brezillon 2024-02-29 489 /** @PANTHOR_CS_GROUP_ACTIVE: Group is currently scheduled. */
de85488138247d Boris Brezillon 2024-02-29 490 PANTHOR_CS_GROUP_ACTIVE,
de85488138247d Boris Brezillon 2024-02-29 491
de85488138247d Boris Brezillon 2024-02-29 492 /**
de85488138247d Boris Brezillon 2024-02-29 493 * @PANTHOR_CS_GROUP_SUSPENDED: Group was scheduled at least once, but is
de85488138247d Boris Brezillon 2024-02-29 494 * inactive/suspended right now.
de85488138247d Boris Brezillon 2024-02-29 495 */
de85488138247d Boris Brezillon 2024-02-29 496 PANTHOR_CS_GROUP_SUSPENDED,
de85488138247d Boris Brezillon 2024-02-29 497
de85488138247d Boris Brezillon 2024-02-29 498 /**
de85488138247d Boris Brezillon 2024-02-29 499 * @PANTHOR_CS_GROUP_TERMINATED: Group was terminated.
de85488138247d Boris Brezillon 2024-02-29 500 *
de85488138247d Boris Brezillon 2024-02-29 501 * Can no longer be scheduled. The only allowed action is a destruction.
de85488138247d Boris Brezillon 2024-02-29 502 */
de85488138247d Boris Brezillon 2024-02-29 503 PANTHOR_CS_GROUP_TERMINATED,
de85488138247d Boris Brezillon 2024-02-29 504 };
de85488138247d Boris Brezillon 2024-02-29 505
de85488138247d Boris Brezillon 2024-02-29 506 /**
de85488138247d Boris Brezillon 2024-02-29 507 * struct panthor_group - Scheduling group object
de85488138247d Boris Brezillon 2024-02-29 508 */
de85488138247d Boris Brezillon 2024-02-29 509 struct panthor_group {
de85488138247d Boris Brezillon 2024-02-29 510 /** @refcount: Reference count */
de85488138247d Boris Brezillon 2024-02-29 511 struct kref refcount;
de85488138247d Boris Brezillon 2024-02-29 512
de85488138247d Boris Brezillon 2024-02-29 513 /** @ptdev: Device. */
de85488138247d Boris Brezillon 2024-02-29 514 struct panthor_device *ptdev;
de85488138247d Boris Brezillon 2024-02-29 515
de85488138247d Boris Brezillon 2024-02-29 516 /** @vm: VM bound to the group. */
de85488138247d Boris Brezillon 2024-02-29 517 struct panthor_vm *vm;
de85488138247d Boris Brezillon 2024-02-29 518
de85488138247d Boris Brezillon 2024-02-29 519 /** @compute_core_mask: Mask of shader cores that can be used for compute jobs. */
de85488138247d Boris Brezillon 2024-02-29 520 u64 compute_core_mask;
de85488138247d Boris Brezillon 2024-02-29 521
de85488138247d Boris Brezillon 2024-02-29 522 /** @fragment_core_mask: Mask of shader cores that can be used for fragment jobs. */
de85488138247d Boris Brezillon 2024-02-29 523 u64 fragment_core_mask;
de85488138247d Boris Brezillon 2024-02-29 524
de85488138247d Boris Brezillon 2024-02-29 525 /** @tiler_core_mask: Mask of tiler cores that can be used for tiler jobs. */
de85488138247d Boris Brezillon 2024-02-29 526 u64 tiler_core_mask;
de85488138247d Boris Brezillon 2024-02-29 527
de85488138247d Boris Brezillon 2024-02-29 528 /** @max_compute_cores: Maximum number of shader cores used for compute jobs. */
de85488138247d Boris Brezillon 2024-02-29 529 u8 max_compute_cores;
de85488138247d Boris Brezillon 2024-02-29 530
de85488138247d Boris Brezillon 2024-02-29 531 /** @max_compute_cores: Maximum number of shader cores used for fragment jobs. */
de85488138247d Boris Brezillon 2024-02-29 532 u8 max_fragment_cores;
de85488138247d Boris Brezillon 2024-02-29 533
de85488138247d Boris Brezillon 2024-02-29 534 /** @max_tiler_cores: Maximum number of tiler cores used for tiler jobs. */
de85488138247d Boris Brezillon 2024-02-29 535 u8 max_tiler_cores;
de85488138247d Boris Brezillon 2024-02-29 536
de85488138247d Boris Brezillon 2024-02-29 537 /** @priority: Group priority (check panthor_csg_priority). */
de85488138247d Boris Brezillon 2024-02-29 538 u8 priority;
de85488138247d Boris Brezillon 2024-02-29 539
de85488138247d Boris Brezillon 2024-02-29 540 /** @blocked_queues: Bitmask reflecting the blocked queues. */
de85488138247d Boris Brezillon 2024-02-29 541 u32 blocked_queues;
de85488138247d Boris Brezillon 2024-02-29 542
de85488138247d Boris Brezillon 2024-02-29 543 /** @idle_queues: Bitmask reflecting the idle queues. */
de85488138247d Boris Brezillon 2024-02-29 544 u32 idle_queues;
de85488138247d Boris Brezillon 2024-02-29 545
de85488138247d Boris Brezillon 2024-02-29 546 /** @fatal_lock: Lock used to protect access to fatal fields. */
de85488138247d Boris Brezillon 2024-02-29 547 spinlock_t fatal_lock;
de85488138247d Boris Brezillon 2024-02-29 548
de85488138247d Boris Brezillon 2024-02-29 549 /** @fatal_queues: Bitmask reflecting the queues that hit a fatal exception. */
de85488138247d Boris Brezillon 2024-02-29 550 u32 fatal_queues;
de85488138247d Boris Brezillon 2024-02-29 551
de85488138247d Boris Brezillon 2024-02-29 552 /** @tiler_oom: Mask of queues that have a tiler OOM event to process. */
de85488138247d Boris Brezillon 2024-02-29 553 atomic_t tiler_oom;
de85488138247d Boris Brezillon 2024-02-29 554
de85488138247d Boris Brezillon 2024-02-29 555 /** @queue_count: Number of queues in this group. */
de85488138247d Boris Brezillon 2024-02-29 556 u32 queue_count;
de85488138247d Boris Brezillon 2024-02-29 557
de85488138247d Boris Brezillon 2024-02-29 558 /** @queues: Queues owned by this group. */
de85488138247d Boris Brezillon 2024-02-29 559 struct panthor_queue *queues[MAX_CS_PER_CSG];
de85488138247d Boris Brezillon 2024-02-29 560
de85488138247d Boris Brezillon 2024-02-29 561 /**
de85488138247d Boris Brezillon 2024-02-29 562 * @csg_id: ID of the FW group slot.
de85488138247d Boris Brezillon 2024-02-29 563 *
de85488138247d Boris Brezillon 2024-02-29 564 * -1 when the group is not scheduled/active.
de85488138247d Boris Brezillon 2024-02-29 565 */
de85488138247d Boris Brezillon 2024-02-29 566 int csg_id;
de85488138247d Boris Brezillon 2024-02-29 567
de85488138247d Boris Brezillon 2024-02-29 568 /**
de85488138247d Boris Brezillon 2024-02-29 569 * @destroyed: True when the group has been destroyed.
de85488138247d Boris Brezillon 2024-02-29 570 *
de85488138247d Boris Brezillon 2024-02-29 571 * If a group is destroyed it becomes useless: no further jobs can be submitted
de85488138247d Boris Brezillon 2024-02-29 572 * to its queues. We simply wait for all references to be dropped so we can
de85488138247d Boris Brezillon 2024-02-29 573 * release the group object.
de85488138247d Boris Brezillon 2024-02-29 574 */
de85488138247d Boris Brezillon 2024-02-29 575 bool destroyed;
de85488138247d Boris Brezillon 2024-02-29 576
de85488138247d Boris Brezillon 2024-02-29 577 /**
de85488138247d Boris Brezillon 2024-02-29 578 * @timedout: True when a timeout occurred on any of the queues owned by
de85488138247d Boris Brezillon 2024-02-29 579 * this group.
de85488138247d Boris Brezillon 2024-02-29 580 *
de85488138247d Boris Brezillon 2024-02-29 581 * Timeouts can be reported by drm_sched or by the FW. In any case, any
de85488138247d Boris Brezillon 2024-02-29 582 * timeout situation is unrecoverable, and the group becomes useless.
de85488138247d Boris Brezillon 2024-02-29 583 * We simply wait for all references to be dropped so we can release the
de85488138247d Boris Brezillon 2024-02-29 584 * group object.
de85488138247d Boris Brezillon 2024-02-29 585 */
de85488138247d Boris Brezillon 2024-02-29 586 bool timedout;
de85488138247d Boris Brezillon 2024-02-29 587
de85488138247d Boris Brezillon 2024-02-29 588 /**
de85488138247d Boris Brezillon 2024-02-29 589 * @syncobjs: Pool of per-queue synchronization objects.
de85488138247d Boris Brezillon 2024-02-29 590 *
de85488138247d Boris Brezillon 2024-02-29 591 * One sync object per queue. The position of the sync object is
de85488138247d Boris Brezillon 2024-02-29 592 * determined by the queue index.
de85488138247d Boris Brezillon 2024-02-29 593 */
93e3ba65963905 Adrián Larumbe 2024-03-05 594
93e3ba65963905 Adrián Larumbe 2024-03-05 595 struct {
93e3ba65963905 Adrián Larumbe 2024-03-05 596 /** @bo: Kernel BO holding the sync objects. */
93e3ba65963905 Adrián Larumbe 2024-03-05 597 struct panthor_kernel_bo *bo;
93e3ba65963905 Adrián Larumbe 2024-03-05 598
93e3ba65963905 Adrián Larumbe 2024-03-05 599 /** @times_offset: Beginning of time stats after objects of sync pool. */
93e3ba65963905 Adrián Larumbe 2024-03-05 600 size_t times_offset;
93e3ba65963905 Adrián Larumbe 2024-03-05 601 } syncobjs;
93e3ba65963905 Adrián Larumbe 2024-03-05 602
93e3ba65963905 Adrián Larumbe 2024-03-05 603 /** @fdinfo: Per-file total cycle and timestamp values reference. */
93e3ba65963905 Adrián Larumbe 2024-03-05 604 struct {
93e3ba65963905 Adrián Larumbe 2024-03-05 605 /** @data: Pointer to actual per-file sample data. */
93e3ba65963905 Adrián Larumbe 2024-03-05 606 struct panthor_gpu_usage *data;
93e3ba65963905 Adrián Larumbe 2024-03-05 607
93e3ba65963905 Adrián Larumbe 2024-03-05 608 /**
93e3ba65963905 Adrián Larumbe 2024-03-05 609 * @lock: Mutex to govern concurrent access from drm file's fdinfo callback
93e3ba65963905 Adrián Larumbe 2024-03-05 610 * and job post-completion processing function
93e3ba65963905 Adrián Larumbe 2024-03-05 611 */
93e3ba65963905 Adrián Larumbe 2024-03-05 612 struct mutex lock;
93e3ba65963905 Adrián Larumbe 2024-03-05 613 } fdinfo;
de85488138247d Boris Brezillon 2024-02-29 614
de85488138247d Boris Brezillon 2024-02-29 615 /** @state: Group state. */
de85488138247d Boris Brezillon 2024-02-29 616 enum panthor_group_state state;
de85488138247d Boris Brezillon 2024-02-29 617
de85488138247d Boris Brezillon 2024-02-29 618 /**
de85488138247d Boris Brezillon 2024-02-29 619 * @suspend_buf: Suspend buffer.
de85488138247d Boris Brezillon 2024-02-29 620 *
de85488138247d Boris Brezillon 2024-02-29 621 * Stores the state of the group and its queues when a group is suspended.
de85488138247d Boris Brezillon 2024-02-29 622 * Used at resume time to restore the group in its previous state.
de85488138247d Boris Brezillon 2024-02-29 623 *
de85488138247d Boris Brezillon 2024-02-29 624 * The size of the suspend buffer is exposed through the FW interface.
de85488138247d Boris Brezillon 2024-02-29 625 */
de85488138247d Boris Brezillon 2024-02-29 626 struct panthor_kernel_bo *suspend_buf;
de85488138247d Boris Brezillon 2024-02-29 627
de85488138247d Boris Brezillon 2024-02-29 628 /**
de85488138247d Boris Brezillon 2024-02-29 629 * @protm_suspend_buf: Protection mode suspend buffer.
de85488138247d Boris Brezillon 2024-02-29 630 *
de85488138247d Boris Brezillon 2024-02-29 631 * Stores the state of the group and its queues when a group that's in
de85488138247d Boris Brezillon 2024-02-29 632 * protection mode is suspended.
de85488138247d Boris Brezillon 2024-02-29 633 *
de85488138247d Boris Brezillon 2024-02-29 634 * Used at resume time to restore the group in its previous state.
de85488138247d Boris Brezillon 2024-02-29 635 *
de85488138247d Boris Brezillon 2024-02-29 636 * The size of the protection mode suspend buffer is exposed through the
de85488138247d Boris Brezillon 2024-02-29 637 * FW interface.
de85488138247d Boris Brezillon 2024-02-29 638 */
de85488138247d Boris Brezillon 2024-02-29 639 struct panthor_kernel_bo *protm_suspend_buf;
de85488138247d Boris Brezillon 2024-02-29 640
de85488138247d Boris Brezillon 2024-02-29 641 /** @sync_upd_work: Work used to check/signal job fences. */
de85488138247d Boris Brezillon 2024-02-29 642 struct work_struct sync_upd_work;
de85488138247d Boris Brezillon 2024-02-29 643
de85488138247d Boris Brezillon 2024-02-29 644 /** @tiler_oom_work: Work used to process tiler OOM events happening on this group. */
de85488138247d Boris Brezillon 2024-02-29 645 struct work_struct tiler_oom_work;
de85488138247d Boris Brezillon 2024-02-29 646
de85488138247d Boris Brezillon 2024-02-29 647 /** @term_work: Work used to finish the group termination procedure. */
de85488138247d Boris Brezillon 2024-02-29 648 struct work_struct term_work;
de85488138247d Boris Brezillon 2024-02-29 649
de85488138247d Boris Brezillon 2024-02-29 650 /**
de85488138247d Boris Brezillon 2024-02-29 651 * @release_work: Work used to release group resources.
de85488138247d Boris Brezillon 2024-02-29 652 *
de85488138247d Boris Brezillon 2024-02-29 653 * We need to postpone the group release to avoid a deadlock when
de85488138247d Boris Brezillon 2024-02-29 654 * the last ref is released in the tick work.
de85488138247d Boris Brezillon 2024-02-29 655 */
de85488138247d Boris Brezillon 2024-02-29 656 struct work_struct release_work;
de85488138247d Boris Brezillon 2024-02-29 657
de85488138247d Boris Brezillon 2024-02-29 658 /**
de85488138247d Boris Brezillon 2024-02-29 659 * @run_node: Node used to insert the group in the
de85488138247d Boris Brezillon 2024-02-29 660 * panthor_group::groups::{runnable,idle} and
de85488138247d Boris Brezillon 2024-02-29 661 * panthor_group::reset.stopped_groups lists.
de85488138247d Boris Brezillon 2024-02-29 662 */
de85488138247d Boris Brezillon 2024-02-29 663 struct list_head run_node;
de85488138247d Boris Brezillon 2024-02-29 664
de85488138247d Boris Brezillon 2024-02-29 665 /**
de85488138247d Boris Brezillon 2024-02-29 666 * @wait_node: Node used to insert the group in the
de85488138247d Boris Brezillon 2024-02-29 667 * panthor_group::groups::waiting list.
de85488138247d Boris Brezillon 2024-02-29 668 */
de85488138247d Boris Brezillon 2024-02-29 669 struct list_head wait_node;
de85488138247d Boris Brezillon 2024-02-29 @670 };
de85488138247d Boris Brezillon 2024-02-29 671
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2024-03-08 8:47 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-05 21:05 [PATCH 0/2] Support fdinfo runtime and memory stats on Panthor Adrián Larumbe
2024-03-05 21:05 ` [PATCH 1/2] drm/panthor: Enable fdinfo for cycle and time measurements Adrián Larumbe
2024-03-08 8:47 ` kernel test robot [this message]
2024-03-28 15:49 ` Liviu Dudau
2024-04-23 15:51 ` Adrián Larumbe
2024-03-05 21:05 ` [PATCH 2/2] drm/panthor: Enable fdinfo for memory stats Adrián Larumbe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202403081627.Y50ZoOIS-lkp@intel.com \
--to=lkp@intel.com \
--cc=adrian.larumbe@collabora.com \
--cc=airlied@gmail.com \
--cc=boris.brezillon@collabora.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=kernel@collabora.com \
--cc=linux-kernel@vger.kernel.org \
--cc=liviu.dudau@arm.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=steven.price@arm.com \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.