mbox series

[v8,0/7] drm/i915: use ref_tracker library for tracking wakerefs

Message ID 20230224-track_gt-v8-0-4b6517e61be6@intel.com (mailing list archive)
Headers show
Series drm/i915: use ref_tracker library for tracking wakerefs | expand

Message

Andrzej Hajda April 24, 2023, 10:05 p.m. UTC
This is revived patchset improving ref_tracker library and converting
i915 internal tracker to ref_tracker.
The old thread ended without consensus about small kernel allocations,
which are performed under spinlock.
I have tried to solve the problem by splitting the calls, but it results
in complicated API, so I went back to original solution.
If there are better solutions I am glad to discuss them.
Meanwhile I send original patchset with addressed remaining comments.

To: Jani Nikula <jani.nikula@linux.intel.com>
To: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
To: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: David Airlie <airlied@gmail.com>
To: Daniel Vetter <daniel@ffwll.ch>
To: Eric Dumazet <edumazet@google.com>
Cc: linux-kernel@vger.kernel.org
Cc: intel-gfx@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: netdev@vger.kernel.org
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Andi Shyti <andi.shyti@linux.intel.com>
Cc: Das, Nirmoy <nirmoy.das@linux.intel.com>
Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com>

---
Changes in v8:
- addressed comments from Eric, Zhou and CI, thanks,
- added ref_tracker_dir_init name argument to all callers in one patch
- moved intel_wakeref_tracker_show to *.c
- s/intel_wakeref_tracker_show/intel_ref_tracker_show/
- removed 'default n' from Kconfig
- changed strlcpy to strscpy,
- removed assignement from if condition,
- removed long lines from patch description
- added tags
- Link to v7: https://lore.kernel.org/r/20230224-track_gt-v7-0-11f08358c1ec@intel.com

Changes in v7:
- removed 8th patch (hold wakeref), as it was already merged
- added tags (thx Andi)
- Link to v6: https://lore.kernel.org/r/20230224-track_gt-v6-0-0dc8601fd02f@intel.com

Changes in v6:
- rebased to solve minor conflict and allow CI testing
- Link to v5: https://lore.kernel.org/r/20230224-track_gt-v5-0-77be86f2c872@intel.com

Changes in v5 (thx Andi for review):
- use *_locked convention instead of __*,
- improved commit messages,
- re-worked i915 patches, squashed separation and conversion patches,
- added tags,
- Link to v4: https://lore.kernel.org/r/20230224-track_gt-v4-0-464e8ab4c9ab@intel.com

Changes in v4:
- split "Separate wakeref tracking" to smaller parts
- fixed typos,
- Link to v1-v3: https://patchwork.freedesktop.org/series/100327/

---
Andrzej Hajda (7):
      lib/ref_tracker: add unlocked leak print helper
      lib/ref_tracker: improve printing stats
      lib/ref_tracker: add printing to memory buffer
      lib/ref_tracker: remove warnings in case of allocation failure
      drm/i915: Correct type of wakeref variable
      drm/i915: Replace custom intel runtime_pm tracker with ref_tracker library
      drm/i915: Track gt pm wakerefs

 drivers/gpu/drm/i915/Kconfig.debug                 |  18 ++
 drivers/gpu/drm/i915/display/intel_display_power.c |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |   7 +-
 .../drm/i915/gem/selftests/i915_gem_coherency.c    |  10 +-
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  14 +-
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.c        |  13 +-
 drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h  |   3 +-
 drivers/gpu/drm/i915/gt/intel_context.h            |   4 +-
 drivers/gpu/drm/i915/gt/intel_context_types.h      |   2 +
 drivers/gpu/drm/i915/gt/intel_engine_pm.c          |   7 +-
 drivers/gpu/drm/i915/gt/intel_engine_types.h       |   2 +
 .../gpu/drm/i915/gt/intel_execlists_submission.c   |   2 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm.c              |  12 +-
 drivers/gpu/drm/i915/gt/intel_gt_pm.h              |  38 +++-
 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c      |   4 +-
 drivers/gpu/drm/i915/gt/selftest_engine_cs.c       |  20 +-
 drivers/gpu/drm/i915/gt/selftest_gt_pm.c           |   5 +-
 drivers/gpu/drm/i915/gt/selftest_reset.c           |  10 +-
 drivers/gpu/drm/i915/gt/selftest_rps.c             |  17 +-
 drivers/gpu/drm/i915/gt/selftest_slpc.c            |   5 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  12 +-
 drivers/gpu/drm/i915/i915_driver.c                 |   2 +-
 drivers/gpu/drm/i915/i915_pmu.c                    |  16 +-
 drivers/gpu/drm/i915/intel_runtime_pm.c            | 221 ++-------------------
 drivers/gpu/drm/i915/intel_runtime_pm.h            |  11 +-
 drivers/gpu/drm/i915/intel_wakeref.c               |  35 +++-
 drivers/gpu/drm/i915/intel_wakeref.h               |  73 ++++++-
 include/linux/ref_tracker.h                        |  25 ++-
 lib/ref_tracker.c                                  | 179 ++++++++++++++---
 lib/test_ref_tracker.c                             |   2 +-
 net/core/dev.c                                     |   2 +-
 net/core/net_namespace.c                           |   4 +-
 32 files changed, 445 insertions(+), 332 deletions(-)
---
base-commit: 4d0066a1c0763d50b6fb017e27d12b081ce21b57
change-id: 20230224-track_gt-1b3da8bdacd7

Best regards,

Comments

Andi Shyti April 25, 2023, 8:01 p.m. UTC | #1
Hi,

> Andrzej Hajda (7):
>       lib/ref_tracker: add unlocked leak print helper
>       lib/ref_tracker: improve printing stats
>       lib/ref_tracker: add printing to memory buffer
>       lib/ref_tracker: remove warnings in case of allocation failure
>       drm/i915: Correct type of wakeref variable
>       drm/i915: Replace custom intel runtime_pm tracker with ref_tracker library
>       drm/i915: Track gt pm wakerefs

where are we going to get this series merged? Should we merge it
in our intel repository? In the netdev repository? or do we split
it (which will cause some dependency delay)?

Andi
Andrzej Hajda May 4, 2023, 4:27 p.m. UTC | #2
Hi maintainers of net and i915,

On 25.04.2023 00:05, Andrzej Hajda wrote:
> This is revived patchset improving ref_tracker library and converting
> i915 internal tracker to ref_tracker.
> The old thread ended without consensus about small kernel allocations,
> which are performed under spinlock.
> I have tried to solve the problem by splitting the calls, but it results
> in complicated API, so I went back to original solution.
> If there are better solutions I am glad to discuss them.
> Meanwhile I send original patchset with addressed remaining comments.
> 
> To: Jani Nikula <jani.nikula@linux.intel.com>
> To: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> To: Rodrigo Vivi <rodrigo.vivi@intel.com>
> To: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> To: David Airlie <airlied@gmail.com>
> To: Daniel Vetter <daniel@ffwll.ch>
> To: Eric Dumazet <edumazet@google.com>
> Cc: linux-kernel@vger.kernel.org
> Cc: intel-gfx@lists.freedesktop.org
> Cc: dri-devel@lists.freedesktop.org
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: netdev@vger.kernel.org
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: Dmitry Vyukov <dvyukov@google.com>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Andi Shyti <andi.shyti@linux.intel.com>
> Cc: Das, Nirmoy <nirmoy.das@linux.intel.com>
> Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com>
> 
> ---
> Changes in v8:
> - addressed comments from Eric, Zhou and CI, thanks,
> - added ref_tracker_dir_init name argument to all callers in one patch
> - moved intel_wakeref_tracker_show to *.c
> - s/intel_wakeref_tracker_show/intel_ref_tracker_show/
> - removed 'default n' from Kconfig
> - changed strlcpy to strscpy,
> - removed assignement from if condition,
> - removed long lines from patch description
> - added tags
> - Link to v7: https://lore.kernel.org/r/20230224-track_gt-v7-0-11f08358c1ec@intel.com
> 
> Changes in v7:
> - removed 8th patch (hold wakeref), as it was already merged
> - added tags (thx Andi)
> - Link to v6: https://lore.kernel.org/r/20230224-track_gt-v6-0-0dc8601fd02f@intel.com
> 
> Changes in v6:
> - rebased to solve minor conflict and allow CI testing
> - Link to v5: https://lore.kernel.org/r/20230224-track_gt-v5-0-77be86f2c872@intel.com
> 
> Changes in v5 (thx Andi for review):
> - use *_locked convention instead of __*,
> - improved commit messages,
> - re-worked i915 patches, squashed separation and conversion patches,
> - added tags,
> - Link to v4: https://lore.kernel.org/r/20230224-track_gt-v4-0-464e8ab4c9ab@intel.com
> 
> Changes in v4:
> - split "Separate wakeref tracking" to smaller parts
> - fixed typos,
> - Link to v1-v3: https://patchwork.freedesktop.org/series/100327/
> 
> ---
> Andrzej Hajda (7):
>        lib/ref_tracker: add unlocked leak print helper
>        lib/ref_tracker: improve printing stats
>        lib/ref_tracker: add printing to memory buffer
>        lib/ref_tracker: remove warnings in case of allocation failure
>        drm/i915: Correct type of wakeref variable
>        drm/i915: Replace custom intel runtime_pm tracker with ref_tracker library
>        drm/i915: Track gt pm wakerefs

Finally all patches are reviewed.
Question to network and i915 maintainers, how to merge this patchset:
1. Patches 1-4 belongs rather to network domain (especially patch 2).
2. Patches 5-7 are for i915.

What would be the best way to do it?

Regards
Andrzej



> 
>   drivers/gpu/drm/i915/Kconfig.debug                 |  18 ++
>   drivers/gpu/drm/i915/display/intel_display_power.c |   2 +-
>   drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |   7 +-
>   .../drm/i915/gem/selftests/i915_gem_coherency.c    |  10 +-
>   drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  14 +-
>   drivers/gpu/drm/i915/gt/intel_breadcrumbs.c        |  13 +-
>   drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h  |   3 +-
>   drivers/gpu/drm/i915/gt/intel_context.h            |   4 +-
>   drivers/gpu/drm/i915/gt/intel_context_types.h      |   2 +
>   drivers/gpu/drm/i915/gt/intel_engine_pm.c          |   7 +-
>   drivers/gpu/drm/i915/gt/intel_engine_types.h       |   2 +
>   .../gpu/drm/i915/gt/intel_execlists_submission.c   |   2 +-
>   drivers/gpu/drm/i915/gt/intel_gt_pm.c              |  12 +-
>   drivers/gpu/drm/i915/gt/intel_gt_pm.h              |  38 +++-
>   drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c      |   4 +-
>   drivers/gpu/drm/i915/gt/selftest_engine_cs.c       |  20 +-
>   drivers/gpu/drm/i915/gt/selftest_gt_pm.c           |   5 +-
>   drivers/gpu/drm/i915/gt/selftest_reset.c           |  10 +-
>   drivers/gpu/drm/i915/gt/selftest_rps.c             |  17 +-
>   drivers/gpu/drm/i915/gt/selftest_slpc.c            |   5 +-
>   drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  12 +-
>   drivers/gpu/drm/i915/i915_driver.c                 |   2 +-
>   drivers/gpu/drm/i915/i915_pmu.c                    |  16 +-
>   drivers/gpu/drm/i915/intel_runtime_pm.c            | 221 ++-------------------
>   drivers/gpu/drm/i915/intel_runtime_pm.h            |  11 +-
>   drivers/gpu/drm/i915/intel_wakeref.c               |  35 +++-
>   drivers/gpu/drm/i915/intel_wakeref.h               |  73 ++++++-
>   include/linux/ref_tracker.h                        |  25 ++-
>   lib/ref_tracker.c                                  | 179 ++++++++++++++---
>   lib/test_ref_tracker.c                             |   2 +-
>   net/core/dev.c                                     |   2 +-
>   net/core/net_namespace.c                           |   4 +-
>   32 files changed, 445 insertions(+), 332 deletions(-)
> ---
> base-commit: 4d0066a1c0763d50b6fb017e27d12b081ce21b57
> change-id: 20230224-track_gt-1b3da8bdacd7
> 
> Best regards,
Rodrigo Vivi May 5, 2023, 8:06 p.m. UTC | #3
On Thu, May 04, 2023 at 06:27:53PM +0200, Andrzej Hajda wrote:
> Hi maintainers of net and i915,
> 
> On 25.04.2023 00:05, Andrzej Hajda wrote:
> > This is revived patchset improving ref_tracker library and converting
> > i915 internal tracker to ref_tracker.
> > The old thread ended without consensus about small kernel allocations,
> > which are performed under spinlock.
> > I have tried to solve the problem by splitting the calls, but it results
> > in complicated API, so I went back to original solution.
> > If there are better solutions I am glad to discuss them.
> > Meanwhile I send original patchset with addressed remaining comments.
> > 
> > To: Jani Nikula <jani.nikula@linux.intel.com>
> > To: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> > To: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > To: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> > To: David Airlie <airlied@gmail.com>
> > To: Daniel Vetter <daniel@ffwll.ch>
> > To: Eric Dumazet <edumazet@google.com>
> > Cc: linux-kernel@vger.kernel.org
> > Cc: intel-gfx@lists.freedesktop.org
> > Cc: dri-devel@lists.freedesktop.org
> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: netdev@vger.kernel.org
> > Cc: Jakub Kicinski <kuba@kernel.org>
> > Cc: Dmitry Vyukov <dvyukov@google.com>
> > Cc: "David S. Miller" <davem@davemloft.net>
> > Cc: Andi Shyti <andi.shyti@linux.intel.com>
> > Cc: Das, Nirmoy <nirmoy.das@linux.intel.com>
> > Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com>
> > 
> > ---
> > Changes in v8:
> > - addressed comments from Eric, Zhou and CI, thanks,
> > - added ref_tracker_dir_init name argument to all callers in one patch
> > - moved intel_wakeref_tracker_show to *.c
> > - s/intel_wakeref_tracker_show/intel_ref_tracker_show/
> > - removed 'default n' from Kconfig
> > - changed strlcpy to strscpy,
> > - removed assignement from if condition,
> > - removed long lines from patch description
> > - added tags
> > - Link to v7: https://lore.kernel.org/r/20230224-track_gt-v7-0-11f08358c1ec@intel.com
> > 
> > Changes in v7:
> > - removed 8th patch (hold wakeref), as it was already merged
> > - added tags (thx Andi)
> > - Link to v6: https://lore.kernel.org/r/20230224-track_gt-v6-0-0dc8601fd02f@intel.com
> > 
> > Changes in v6:
> > - rebased to solve minor conflict and allow CI testing
> > - Link to v5: https://lore.kernel.org/r/20230224-track_gt-v5-0-77be86f2c872@intel.com
> > 
> > Changes in v5 (thx Andi for review):
> > - use *_locked convention instead of __*,
> > - improved commit messages,
> > - re-worked i915 patches, squashed separation and conversion patches,
> > - added tags,
> > - Link to v4: https://lore.kernel.org/r/20230224-track_gt-v4-0-464e8ab4c9ab@intel.com
> > 
> > Changes in v4:
> > - split "Separate wakeref tracking" to smaller parts
> > - fixed typos,
> > - Link to v1-v3: https://patchwork.freedesktop.org/series/100327/
> > 
> > ---
> > Andrzej Hajda (7):
> >        lib/ref_tracker: add unlocked leak print helper
> >        lib/ref_tracker: improve printing stats
> >        lib/ref_tracker: add printing to memory buffer
> >        lib/ref_tracker: remove warnings in case of allocation failure
> >        drm/i915: Correct type of wakeref variable
> >        drm/i915: Replace custom intel runtime_pm tracker with ref_tracker library
> >        drm/i915: Track gt pm wakerefs
> 
> Finally all patches are reviewed.
> Question to network and i915 maintainers, how to merge this patchset:
> 1. Patches 1-4 belongs rather to network domain (especially patch 2).
> 2. Patches 5-7 are for i915.

Well, probably the easiest way to avoid conflicts would be to send
this right now through the net repo.

And hold patches 5-7 after drm-intel-next can backmerge them.

At this point I believe we would be looking at 6.5-rc2
backmerge to drm-intel-next in likely 11 weeks from now.

Do we have any urgency on them? Looking to all the changes in
i915 I believe we will get many conflicts if we let all these
i915 patches go through net tree as well.

> 
> What would be the best way to do it?
> 
> Regards
> Andrzej
> 
> 
> 
> > 
> >   drivers/gpu/drm/i915/Kconfig.debug                 |  18 ++
> >   drivers/gpu/drm/i915/display/intel_display_power.c |   2 +-
> >   drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |   7 +-
> >   .../drm/i915/gem/selftests/i915_gem_coherency.c    |  10 +-
> >   drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  14 +-
> >   drivers/gpu/drm/i915/gt/intel_breadcrumbs.c        |  13 +-
> >   drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h  |   3 +-
> >   drivers/gpu/drm/i915/gt/intel_context.h            |   4 +-
> >   drivers/gpu/drm/i915/gt/intel_context_types.h      |   2 +
> >   drivers/gpu/drm/i915/gt/intel_engine_pm.c          |   7 +-
> >   drivers/gpu/drm/i915/gt/intel_engine_types.h       |   2 +
> >   .../gpu/drm/i915/gt/intel_execlists_submission.c   |   2 +-
> >   drivers/gpu/drm/i915/gt/intel_gt_pm.c              |  12 +-
> >   drivers/gpu/drm/i915/gt/intel_gt_pm.h              |  38 +++-
> >   drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c      |   4 +-
> >   drivers/gpu/drm/i915/gt/selftest_engine_cs.c       |  20 +-
> >   drivers/gpu/drm/i915/gt/selftest_gt_pm.c           |   5 +-
> >   drivers/gpu/drm/i915/gt/selftest_reset.c           |  10 +-
> >   drivers/gpu/drm/i915/gt/selftest_rps.c             |  17 +-
> >   drivers/gpu/drm/i915/gt/selftest_slpc.c            |   5 +-
> >   drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  12 +-
> >   drivers/gpu/drm/i915/i915_driver.c                 |   2 +-
> >   drivers/gpu/drm/i915/i915_pmu.c                    |  16 +-
> >   drivers/gpu/drm/i915/intel_runtime_pm.c            | 221 ++-------------------
> >   drivers/gpu/drm/i915/intel_runtime_pm.h            |  11 +-
> >   drivers/gpu/drm/i915/intel_wakeref.c               |  35 +++-
> >   drivers/gpu/drm/i915/intel_wakeref.h               |  73 ++++++-
> >   include/linux/ref_tracker.h                        |  25 ++-
> >   lib/ref_tracker.c                                  | 179 ++++++++++++++---
> >   lib/test_ref_tracker.c                             |   2 +-
> >   net/core/dev.c                                     |   2 +-
> >   net/core/net_namespace.c                           |   4 +-
> >   32 files changed, 445 insertions(+), 332 deletions(-)
> > ---
> > base-commit: 4d0066a1c0763d50b6fb017e27d12b081ce21b57
> > change-id: 20230224-track_gt-1b3da8bdacd7
> > 
> > Best regards,
>
Andrzej Hajda May 8, 2023, 5:16 p.m. UTC | #4
On 05.05.2023 22:06, Rodrigo Vivi wrote:
> On Thu, May 04, 2023 at 06:27:53PM +0200, Andrzej Hajda wrote:
>> Hi maintainers of net and i915,
>>
>> On 25.04.2023 00:05, Andrzej Hajda wrote:
>>> This is revived patchset improving ref_tracker library and converting
>>> i915 internal tracker to ref_tracker.
>>> The old thread ended without consensus about small kernel allocations,
>>> which are performed under spinlock.
>>> I have tried to solve the problem by splitting the calls, but it results
>>> in complicated API, so I went back to original solution.
>>> If there are better solutions I am glad to discuss them.
>>> Meanwhile I send original patchset with addressed remaining comments.
>>>
>>> To: Jani Nikula <jani.nikula@linux.intel.com>
>>> To: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
>>> To: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>> To: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
>>> To: David Airlie <airlied@gmail.com>
>>> To: Daniel Vetter <daniel@ffwll.ch>
>>> To: Eric Dumazet <edumazet@google.com>
>>> Cc: linux-kernel@vger.kernel.org
>>> Cc: intel-gfx@lists.freedesktop.org
>>> Cc: dri-devel@lists.freedesktop.org
>>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>>> Cc: netdev@vger.kernel.org
>>> Cc: Jakub Kicinski <kuba@kernel.org>
>>> Cc: Dmitry Vyukov <dvyukov@google.com>
>>> Cc: "David S. Miller" <davem@davemloft.net>
>>> Cc: Andi Shyti <andi.shyti@linux.intel.com>
>>> Cc: Das, Nirmoy <nirmoy.das@linux.intel.com>
>>> Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com>
>>>
>>> ---
>>> Changes in v8:
>>> - addressed comments from Eric, Zhou and CI, thanks,
>>> - added ref_tracker_dir_init name argument to all callers in one patch
>>> - moved intel_wakeref_tracker_show to *.c
>>> - s/intel_wakeref_tracker_show/intel_ref_tracker_show/
>>> - removed 'default n' from Kconfig
>>> - changed strlcpy to strscpy,
>>> - removed assignement from if condition,
>>> - removed long lines from patch description
>>> - added tags
>>> - Link to v7: https://lore.kernel.org/r/20230224-track_gt-v7-0-11f08358c1ec@intel.com
>>>
>>> Changes in v7:
>>> - removed 8th patch (hold wakeref), as it was already merged
>>> - added tags (thx Andi)
>>> - Link to v6: https://lore.kernel.org/r/20230224-track_gt-v6-0-0dc8601fd02f@intel.com
>>>
>>> Changes in v6:
>>> - rebased to solve minor conflict and allow CI testing
>>> - Link to v5: https://lore.kernel.org/r/20230224-track_gt-v5-0-77be86f2c872@intel.com
>>>
>>> Changes in v5 (thx Andi for review):
>>> - use *_locked convention instead of __*,
>>> - improved commit messages,
>>> - re-worked i915 patches, squashed separation and conversion patches,
>>> - added tags,
>>> - Link to v4: https://lore.kernel.org/r/20230224-track_gt-v4-0-464e8ab4c9ab@intel.com
>>>
>>> Changes in v4:
>>> - split "Separate wakeref tracking" to smaller parts
>>> - fixed typos,
>>> - Link to v1-v3: https://patchwork.freedesktop.org/series/100327/
>>>
>>> ---
>>> Andrzej Hajda (7):
>>>         lib/ref_tracker: add unlocked leak print helper
>>>         lib/ref_tracker: improve printing stats
>>>         lib/ref_tracker: add printing to memory buffer
>>>         lib/ref_tracker: remove warnings in case of allocation failure
>>>         drm/i915: Correct type of wakeref variable
>>>         drm/i915: Replace custom intel runtime_pm tracker with ref_tracker library
>>>         drm/i915: Track gt pm wakerefs
>>
>> Finally all patches are reviewed.
>> Question to network and i915 maintainers, how to merge this patchset:
>> 1. Patches 1-4 belongs rather to network domain (especially patch 2).
>> 2. Patches 5-7 are for i915.
> 
> Well, probably the easiest way to avoid conflicts would be to send
> this right now through the net repo.
> 
> And hold patches 5-7 after drm-intel-next can backmerge them.
> 
> At this point I believe we would be looking at 6.5-rc2
> backmerge to drm-intel-next in likely 11 weeks from now.
> 
> Do we have any urgency on them? Looking to all the changes in
> i915 I believe we will get many conflicts if we let all these
> i915 patches go through net tree as well.


Eric, Dave, Jakub, could you take patches 1-4?

Regards
Andrzej


> 
>>
>> What would be the best way to do it?
>>
>> Regards
>> Andrzej
>>
>>
>>
>>>
>>>    drivers/gpu/drm/i915/Kconfig.debug                 |  18 ++
>>>    drivers/gpu/drm/i915/display/intel_display_power.c |   2 +-
>>>    drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |   7 +-
>>>    .../drm/i915/gem/selftests/i915_gem_coherency.c    |  10 +-
>>>    drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  14 +-
>>>    drivers/gpu/drm/i915/gt/intel_breadcrumbs.c        |  13 +-
>>>    drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h  |   3 +-
>>>    drivers/gpu/drm/i915/gt/intel_context.h            |   4 +-
>>>    drivers/gpu/drm/i915/gt/intel_context_types.h      |   2 +
>>>    drivers/gpu/drm/i915/gt/intel_engine_pm.c          |   7 +-
>>>    drivers/gpu/drm/i915/gt/intel_engine_types.h       |   2 +
>>>    .../gpu/drm/i915/gt/intel_execlists_submission.c   |   2 +-
>>>    drivers/gpu/drm/i915/gt/intel_gt_pm.c              |  12 +-
>>>    drivers/gpu/drm/i915/gt/intel_gt_pm.h              |  38 +++-
>>>    drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c      |   4 +-
>>>    drivers/gpu/drm/i915/gt/selftest_engine_cs.c       |  20 +-
>>>    drivers/gpu/drm/i915/gt/selftest_gt_pm.c           |   5 +-
>>>    drivers/gpu/drm/i915/gt/selftest_reset.c           |  10 +-
>>>    drivers/gpu/drm/i915/gt/selftest_rps.c             |  17 +-
>>>    drivers/gpu/drm/i915/gt/selftest_slpc.c            |   5 +-
>>>    drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  12 +-
>>>    drivers/gpu/drm/i915/i915_driver.c                 |   2 +-
>>>    drivers/gpu/drm/i915/i915_pmu.c                    |  16 +-
>>>    drivers/gpu/drm/i915/intel_runtime_pm.c            | 221 ++-------------------
>>>    drivers/gpu/drm/i915/intel_runtime_pm.h            |  11 +-
>>>    drivers/gpu/drm/i915/intel_wakeref.c               |  35 +++-
>>>    drivers/gpu/drm/i915/intel_wakeref.h               |  73 ++++++-
>>>    include/linux/ref_tracker.h                        |  25 ++-
>>>    lib/ref_tracker.c                                  | 179 ++++++++++++++---
>>>    lib/test_ref_tracker.c                             |   2 +-
>>>    net/core/dev.c                                     |   2 +-
>>>    net/core/net_namespace.c                           |   4 +-
>>>    32 files changed, 445 insertions(+), 332 deletions(-)
>>> ---
>>> base-commit: 4d0066a1c0763d50b6fb017e27d12b081ce21b57
>>> change-id: 20230224-track_gt-1b3da8bdacd7
>>>
>>> Best regards,
>>
Andrzej Hajda June 1, 2023, 5:14 p.m. UTC | #5
On 08.05.2023 19:16, Andrzej Hajda wrote:
> On 05.05.2023 22:06, Rodrigo Vivi wrote:
>> On Thu, May 04, 2023 at 06:27:53PM +0200, Andrzej Hajda wrote:
>>> Hi maintainers of net and i915,
>>>
>>> On 25.04.2023 00:05, Andrzej Hajda wrote:
>>>> This is revived patchset improving ref_tracker library and converting
>>>> i915 internal tracker to ref_tracker.
>>>> The old thread ended without consensus about small kernel allocations,
>>>> which are performed under spinlock.
>>>> I have tried to solve the problem by splitting the calls, but it 
>>>> results
>>>> in complicated API, so I went back to original solution.
>>>> If there are better solutions I am glad to discuss them.
>>>> Meanwhile I send original patchset with addressed remaining comments.


Ping on the series, everything reviewed.
Eric, Dave, Jakub, could you take patches 1-4 via net tree?

Regards
Andrzej

>>>>
>>>> To: Jani Nikula <jani.nikula@linux.intel.com>
>>>> To: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
>>>> To: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>>> To: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
>>>> To: David Airlie <airlied@gmail.com>
>>>> To: Daniel Vetter <daniel@ffwll.ch>
>>>> To: Eric Dumazet <edumazet@google.com>
>>>> Cc: linux-kernel@vger.kernel.org
>>>> Cc: intel-gfx@lists.freedesktop.org
>>>> Cc: dri-devel@lists.freedesktop.org
>>>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>>>> Cc: netdev@vger.kernel.org
>>>> Cc: Jakub Kicinski <kuba@kernel.org>
>>>> Cc: Dmitry Vyukov <dvyukov@google.com>
>>>> Cc: "David S. Miller" <davem@davemloft.net>
>>>> Cc: Andi Shyti <andi.shyti@linux.intel.com>
>>>> Cc: Das, Nirmoy <nirmoy.das@linux.intel.com>
>>>> Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com>
>>>>
>>>> ---
>>>> Changes in v8:
>>>> - addressed comments from Eric, Zhou and CI, thanks,
>>>> - added ref_tracker_dir_init name argument to all callers in one patch
>>>> - moved intel_wakeref_tracker_show to *.c
>>>> - s/intel_wakeref_tracker_show/intel_ref_tracker_show/
>>>> - removed 'default n' from Kconfig
>>>> - changed strlcpy to strscpy,
>>>> - removed assignement from if condition,
>>>> - removed long lines from patch description
>>>> - added tags
>>>> - Link to v7: 
>>>> https://lore.kernel.org/r/20230224-track_gt-v7-0-11f08358c1ec@intel.com
>>>>
>>>> Changes in v7:
>>>> - removed 8th patch (hold wakeref), as it was already merged
>>>> - added tags (thx Andi)
>>>> - Link to v6: 
>>>> https://lore.kernel.org/r/20230224-track_gt-v6-0-0dc8601fd02f@intel.com
>>>>
>>>> Changes in v6:
>>>> - rebased to solve minor conflict and allow CI testing
>>>> - Link to v5: 
>>>> https://lore.kernel.org/r/20230224-track_gt-v5-0-77be86f2c872@intel.com
>>>>
>>>> Changes in v5 (thx Andi for review):
>>>> - use *_locked convention instead of __*,
>>>> - improved commit messages,
>>>> - re-worked i915 patches, squashed separation and conversion patches,
>>>> - added tags,
>>>> - Link to v4: 
>>>> https://lore.kernel.org/r/20230224-track_gt-v4-0-464e8ab4c9ab@intel.com
>>>>
>>>> Changes in v4:
>>>> - split "Separate wakeref tracking" to smaller parts
>>>> - fixed typos,
>>>> - Link to v1-v3: https://patchwork.freedesktop.org/series/100327/
>>>>
>>>> ---
>>>> Andrzej Hajda (7):
>>>>         lib/ref_tracker: add unlocked leak print helper
>>>>         lib/ref_tracker: improve printing stats
>>>>         lib/ref_tracker: add printing to memory buffer
>>>>         lib/ref_tracker: remove warnings in case of allocation failure
>>>>         drm/i915: Correct type of wakeref variable
>>>>         drm/i915: Replace custom intel runtime_pm tracker with 
>>>> ref_tracker library
>>>>         drm/i915: Track gt pm wakerefs
>>>
>>> Finally all patches are reviewed.
>>> Question to network and i915 maintainers, how to merge this patchset:
>>> 1. Patches 1-4 belongs rather to network domain (especially patch 2).
>>> 2. Patches 5-7 are for i915.
>>
>> Well, probably the easiest way to avoid conflicts would be to send
>> this right now through the net repo.
>>
>> And hold patches 5-7 after drm-intel-next can backmerge them.
>>
>> At this point I believe we would be looking at 6.5-rc2
>> backmerge to drm-intel-next in likely 11 weeks from now.
>>
>> Do we have any urgency on them? Looking to all the changes in
>> i915 I believe we will get many conflicts if we let all these
>> i915 patches go through net tree as well.
> 
> 
> Eric, Dave, Jakub, could you take patches 1-4?
> 
> Regards
> Andrzej
> 
> 
>>
>>>
>>> What would be the best way to do it?
>>>
>>> Regards
>>> Andrzej
>>>
>>>
>>>
>>>>
>>>>    drivers/gpu/drm/i915/Kconfig.debug                 |  18 ++
>>>>    drivers/gpu/drm/i915/display/intel_display_power.c |   2 +-
>>>>    drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |   7 +-
>>>>    .../drm/i915/gem/selftests/i915_gem_coherency.c    |  10 +-
>>>>    drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  14 +-
>>>>    drivers/gpu/drm/i915/gt/intel_breadcrumbs.c        |  13 +-
>>>>    drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h  |   3 +-
>>>>    drivers/gpu/drm/i915/gt/intel_context.h            |   4 +-
>>>>    drivers/gpu/drm/i915/gt/intel_context_types.h      |   2 +
>>>>    drivers/gpu/drm/i915/gt/intel_engine_pm.c          |   7 +-
>>>>    drivers/gpu/drm/i915/gt/intel_engine_types.h       |   2 +
>>>>    .../gpu/drm/i915/gt/intel_execlists_submission.c   |   2 +-
>>>>    drivers/gpu/drm/i915/gt/intel_gt_pm.c              |  12 +-
>>>>    drivers/gpu/drm/i915/gt/intel_gt_pm.h              |  38 +++-
>>>>    drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c      |   4 +-
>>>>    drivers/gpu/drm/i915/gt/selftest_engine_cs.c       |  20 +-
>>>>    drivers/gpu/drm/i915/gt/selftest_gt_pm.c           |   5 +-
>>>>    drivers/gpu/drm/i915/gt/selftest_reset.c           |  10 +-
>>>>    drivers/gpu/drm/i915/gt/selftest_rps.c             |  17 +-
>>>>    drivers/gpu/drm/i915/gt/selftest_slpc.c            |   5 +-
>>>>    drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |  12 +-
>>>>    drivers/gpu/drm/i915/i915_driver.c                 |   2 +-
>>>>    drivers/gpu/drm/i915/i915_pmu.c                    |  16 +-
>>>>    drivers/gpu/drm/i915/intel_runtime_pm.c            | 221 
>>>> ++-------------------
>>>>    drivers/gpu/drm/i915/intel_runtime_pm.h            |  11 +-
>>>>    drivers/gpu/drm/i915/intel_wakeref.c               |  35 +++-
>>>>    drivers/gpu/drm/i915/intel_wakeref.h               |  73 ++++++-
>>>>    include/linux/ref_tracker.h                        |  25 ++-
>>>>    lib/ref_tracker.c                                  | 179 
>>>> ++++++++++++++---
>>>>    lib/test_ref_tracker.c                             |   2 +-
>>>>    net/core/dev.c                                     |   2 +-
>>>>    net/core/net_namespace.c                           |   4 +-
>>>>    32 files changed, 445 insertions(+), 332 deletions(-)
>>>> ---
>>>> base-commit: 4d0066a1c0763d50b6fb017e27d12b081ce21b57
>>>> change-id: 20230224-track_gt-1b3da8bdacd7
>>>>
>>>> Best regards,
>>>
>
Jakub Kicinski June 1, 2023, 5:18 p.m. UTC | #6
On Thu, 1 Jun 2023 19:14:50 +0200 Andrzej Hajda wrote:
> Ping on the series, everything reviewed.
> Eric, Dave, Jakub, could you take patches 1-4 via net tree?

Sure thing, would you mind reposting them separately?
Easier for us to apply and it's been over a month since posting,
a fresh run of build bots won't hurt either.