mbox series

[00/34] Fix kernelshark issues introduced by the migration to Qt6

Message ID 20240114171723.14092-1-dev@benjarobin.fr (mailing list archive)
Headers show
Series Fix kernelshark issues introduced by the migration to Qt6 | expand

Message

Benjamin ROBIN Jan. 14, 2024, 5:16 p.m. UTC
There were 3 majors issues:
 - A segfault when loading a trace file (patch 0001)
 - The trace table height was very small (patch 0032)
 - The trace table columns width were reducing when clicking
   Marker A or B (patch 0032)

Also fix most of the warnings reported by Clang-Tidy and Clazy, and by
gcc with -Wextra.


Benjamin ROBIN (34):
  kernelshark: Fix modelReset() signaling, rename update to updateGeom
  kernelshark: Add .gitignore
  kernelshark: Remove function param when not used, whenever possible
  kernelshark: Do not create a temporary container for looping over QMap
  kernelshark: Prevent potential detach of QMap container
  kernelshark: Fix used after free of QByteArray raw data
  kernelshark: Fix potential memory leak in KsGLWidget
  kernelshark: Use lambda parameter instead of captured local variable
  kernelshark: Keep overridden method protected instead of public
  kernelshark: Use sliced() or first() instead of mid/right/left()
  kernelshark: Prevent potential divide by zero in Shape::center()
  kernelshark: Fix potential access to uninitialized variable
  kernelshark: Remove unused locals variables
  kernelshark: Fix range-loop-reference Clazy warning
  kernelshark: Fix moving a temp object prevents copy elision warning
  kernelshark: Add receiver object to connect() call
  kernelshark: Return by reference the list of header in KsModels
  kernelshark: Fix detaching-temporary Clazy warning
  kernelshark: Fix qfileinfo-exists Clazy warning
  kernelshark: Fix potential memory leaks in libkshark-configio
  kernelshark: Fix potential access to uninitialized variable
  kernelshark: Fix potential double free of histo->map, histo->bin_count
  kernelshark: Fix 'const' type qualifier on return type has no effect
  kernelshark: Fix potential memory leaks in libkshark-tepdata
  kernelshark: Fix typo in comment of KsGLWidget::resizeGL()
  kernelshark: Remove unused KsDataWidget::wipPtr() and broken function
  kernelshark: In KsTimeOffsetDialog() constructor use parent param
  kernelshark: Fixed loop counter incremented suspiciously twice
  kernelshark: Fix tepdata_dump_entry() for event_id = KS_EVENT_OVERFLOW
  kernelshark: Use static_cast instead of C cast in KsMainWindow
  kernelshark: Fix comparison of integers of different signs warnings
  kernelshark: Fix KsTableView columns width, and KsTraceViewer size
  kernelshark: Allow to reduce a bit more the graph height
  kernelshark: Cleanup of KsDualMarker methods

 .gitignore                     | 15 ++++++
 examples/configio.c            |  3 +-
 examples/datafilter.c          | 15 +++---
 examples/datahisto.c           |  2 +-
 src/KsAdvFilteringDialog.cpp   | 24 ++++------
 src/KsAdvFilteringDialog.hpp   |  2 +-
 src/KsDualMarker.hpp           | 10 +---
 src/KsGLWidget.cpp             | 48 +++++++++----------
 src/KsGLWidget.hpp             | 43 ++++++++---------
 src/KsMainWindow.cpp           |  8 ++--
 src/KsModels.hpp               | 11 +++--
 src/KsPlotTools.cpp            | 14 +++---
 src/KsPlotTools.hpp            |  2 +-
 src/KsSession.cpp              |  4 +-
 src/KsTraceGraph.cpp           |  7 ++-
 src/KsTraceViewer.cpp          | 71 ++++++++--------------------
 src/KsTraceViewer.hpp          | 11 +++--
 src/KsUtils.cpp                |  9 ++--
 src/KsUtils.hpp                |  4 +-
 src/KsWidgetsLib.cpp           |  2 +-
 src/KsWidgetsLib.hpp           | 15 ++----
 src/libkshark-collection.c     | 14 +++---
 src/libkshark-configio.c       | 84 +++++++++++++++++++---------------
 src/libkshark-hash.c           |  5 +-
 src/libkshark-model.c          | 19 ++++----
 src/libkshark-tepdata.c        | 31 ++++++++-----
 src/libkshark.c                | 17 +++----
 src/libkshark.h                | 20 ++++----
 src/plugins/KVMComboDialog.cpp |  7 +--
 src/plugins/sched_events.c     |  2 +-
 tests/test-input.c             |  4 +-
 tests/test-input_ctrl.c        |  4 +-
 32 files changed, 257 insertions(+), 270 deletions(-)
 create mode 100644 .gitignore

--
2.43.0

Comments

Yordan Karadzhov Jan. 21, 2024, 5:08 p.m. UTC | #1
Hi Benjamin,

I am applying most of the patches from your patch-set. I have some minor 
comments about few of the changes that I will make in the individual 
patches.

Once again, thanks a lot for helping us to improve kernelshark!

Cheers,
Yordan

On 1/14/24 19:16, Benjamin ROBIN wrote:
> There were 3 majors issues:
>   - A segfault when loading a trace file (patch 0001)
>   - The trace table height was very small (patch 0032)
>   - The trace table columns width were reducing when clicking
>     Marker A or B (patch 0032)
> 
> Also fix most of the warnings reported by Clang-Tidy and Clazy, and by
> gcc with -Wextra.
> 
> 
> Benjamin ROBIN (34):
>    kernelshark: Fix modelReset() signaling, rename update to updateGeom
>    kernelshark: Add .gitignore
>    kernelshark: Remove function param when not used, whenever possible
>    kernelshark: Do not create a temporary container for looping over QMap
>    kernelshark: Prevent potential detach of QMap container
>    kernelshark: Fix used after free of QByteArray raw data
>    kernelshark: Fix potential memory leak in KsGLWidget
>    kernelshark: Use lambda parameter instead of captured local variable
>    kernelshark: Keep overridden method protected instead of public
>    kernelshark: Use sliced() or first() instead of mid/right/left()
>    kernelshark: Prevent potential divide by zero in Shape::center()
>    kernelshark: Fix potential access to uninitialized variable
>    kernelshark: Remove unused locals variables
>    kernelshark: Fix range-loop-reference Clazy warning
>    kernelshark: Fix moving a temp object prevents copy elision warning
>    kernelshark: Add receiver object to connect() call
>    kernelshark: Return by reference the list of header in KsModels
>    kernelshark: Fix detaching-temporary Clazy warning
>    kernelshark: Fix qfileinfo-exists Clazy warning
>    kernelshark: Fix potential memory leaks in libkshark-configio
>    kernelshark: Fix potential access to uninitialized variable
>    kernelshark: Fix potential double free of histo->map, histo->bin_count
>    kernelshark: Fix 'const' type qualifier on return type has no effect
>    kernelshark: Fix potential memory leaks in libkshark-tepdata
>    kernelshark: Fix typo in comment of KsGLWidget::resizeGL()
>    kernelshark: Remove unused KsDataWidget::wipPtr() and broken function
>    kernelshark: In KsTimeOffsetDialog() constructor use parent param
>    kernelshark: Fixed loop counter incremented suspiciously twice
>    kernelshark: Fix tepdata_dump_entry() for event_id = KS_EVENT_OVERFLOW
>    kernelshark: Use static_cast instead of C cast in KsMainWindow
>    kernelshark: Fix comparison of integers of different signs warnings
>    kernelshark: Fix KsTableView columns width, and KsTraceViewer size
>    kernelshark: Allow to reduce a bit more the graph height
>    kernelshark: Cleanup of KsDualMarker methods
> 
>   .gitignore                     | 15 ++++++
>   examples/configio.c            |  3 +-
>   examples/datafilter.c          | 15 +++---
>   examples/datahisto.c           |  2 +-
>   src/KsAdvFilteringDialog.cpp   | 24 ++++------
>   src/KsAdvFilteringDialog.hpp   |  2 +-
>   src/KsDualMarker.hpp           | 10 +---
>   src/KsGLWidget.cpp             | 48 +++++++++----------
>   src/KsGLWidget.hpp             | 43 ++++++++---------
>   src/KsMainWindow.cpp           |  8 ++--
>   src/KsModels.hpp               | 11 +++--
>   src/KsPlotTools.cpp            | 14 +++---
>   src/KsPlotTools.hpp            |  2 +-
>   src/KsSession.cpp              |  4 +-
>   src/KsTraceGraph.cpp           |  7 ++-
>   src/KsTraceViewer.cpp          | 71 ++++++++--------------------
>   src/KsTraceViewer.hpp          | 11 +++--
>   src/KsUtils.cpp                |  9 ++--
>   src/KsUtils.hpp                |  4 +-
>   src/KsWidgetsLib.cpp           |  2 +-
>   src/KsWidgetsLib.hpp           | 15 ++----
>   src/libkshark-collection.c     | 14 +++---
>   src/libkshark-configio.c       | 84 +++++++++++++++++++---------------
>   src/libkshark-hash.c           |  5 +-
>   src/libkshark-model.c          | 19 ++++----
>   src/libkshark-tepdata.c        | 31 ++++++++-----
>   src/libkshark.c                | 17 +++----
>   src/libkshark.h                | 20 ++++----
>   src/plugins/KVMComboDialog.cpp |  7 +--
>   src/plugins/sched_events.c     |  2 +-
>   tests/test-input.c             |  4 +-
>   tests/test-input_ctrl.c        |  4 +-
>   32 files changed, 257 insertions(+), 270 deletions(-)
>   create mode 100644 .gitignore
> 
> --
> 2.43.0
>
Benjamin ROBIN March 3, 2024, 9:56 a.m. UTC | #2
On Sun, Jan 21, 2024 at 07:08:52PM +0200, Yordan Karadzhov wrote:
> Hi Benjamin,
> 
> I am applying most of the patches from your patch-set. I have some minor
> comments about few of the changes that I will make in the individual
> patches.
> 
> Once again, thanks a lot for helping us to improve kernelshark!
> 
> Cheers,
> Yordan
>

Hi Yordan,

Do you think it is possible to create a new release since all the major bugs 
were resolved?
Indeed, the KernelShark version 2.3.0 is currently not usable, and this is this 
version that is provided in the Arch repository. The Arch maintainers would 
prefer a new release instead of applying a ton of patches.

Thanks,
Benjamin
 
> On 1/14/24 19:16, Benjamin ROBIN wrote:
> > There were 3 majors issues:
> >   - A segfault when loading a trace file (patch 0001)
> >   - The trace table height was very small (patch 0032)
> >   - The trace table columns width were reducing when clicking
> >     Marker A or B (patch 0032)
> > 
> > Also fix most of the warnings reported by Clang-Tidy and Clazy, and by
> > gcc with -Wextra.
> > 
> > 
> > Benjamin ROBIN (34):
> >    kernelshark: Fix modelReset() signaling, rename update to updateGeom
> >    kernelshark: Add .gitignore
> >    kernelshark: Remove function param when not used, whenever possible
> >    kernelshark: Do not create a temporary container for looping over QMap
> >    kernelshark: Prevent potential detach of QMap container
> >    kernelshark: Fix used after free of QByteArray raw data
> >    kernelshark: Fix potential memory leak in KsGLWidget
> >    kernelshark: Use lambda parameter instead of captured local variable
> >    kernelshark: Keep overridden method protected instead of public
> >    kernelshark: Use sliced() or first() instead of mid/right/left()
> >    kernelshark: Prevent potential divide by zero in Shape::center()
> >    kernelshark: Fix potential access to uninitialized variable
> >    kernelshark: Remove unused locals variables
> >    kernelshark: Fix range-loop-reference Clazy warning
> >    kernelshark: Fix moving a temp object prevents copy elision warning
> >    kernelshark: Add receiver object to connect() call
> >    kernelshark: Return by reference the list of header in KsModels
> >    kernelshark: Fix detaching-temporary Clazy warning
> >    kernelshark: Fix qfileinfo-exists Clazy warning
> >    kernelshark: Fix potential memory leaks in libkshark-configio
> >    kernelshark: Fix potential access to uninitialized variable
> >    kernelshark: Fix potential double free of histo->map, histo->bin_count
> >    kernelshark: Fix 'const' type qualifier on return type has no effect
> >    kernelshark: Fix potential memory leaks in libkshark-tepdata
> >    kernelshark: Fix typo in comment of KsGLWidget::resizeGL()
> >    kernelshark: Remove unused KsDataWidget::wipPtr() and broken function
> >    kernelshark: In KsTimeOffsetDialog() constructor use parent param
> >    kernelshark: Fixed loop counter incremented suspiciously twice
> >    kernelshark: Fix tepdata_dump_entry() for event_id = KS_EVENT_OVERFLOW
> >    kernelshark: Use static_cast instead of C cast in KsMainWindow
> >    kernelshark: Fix comparison of integers of different signs warnings
> >    kernelshark: Fix KsTableView columns width, and KsTraceViewer size
> >    kernelshark: Allow to reduce a bit more the graph height
> >    kernelshark: Cleanup of KsDualMarker methods
> > 
> >   .gitignore                     | 15 ++++++
> >   examples/configio.c            |  3 +-
> >   examples/datafilter.c          | 15 +++---
> >   examples/datahisto.c           |  2 +-
> >   src/KsAdvFilteringDialog.cpp   | 24 ++++------
> >   src/KsAdvFilteringDialog.hpp   |  2 +-
> >   src/KsDualMarker.hpp           | 10 +---
> >   src/KsGLWidget.cpp             | 48 +++++++++----------
> >   src/KsGLWidget.hpp             | 43 ++++++++---------
> >   src/KsMainWindow.cpp           |  8 ++--
> >   src/KsModels.hpp               | 11 +++--
> >   src/KsPlotTools.cpp            | 14 +++---
> >   src/KsPlotTools.hpp            |  2 +-
> >   src/KsSession.cpp              |  4 +-
> >   src/KsTraceGraph.cpp           |  7 ++-
> >   src/KsTraceViewer.cpp          | 71 ++++++++--------------------
> >   src/KsTraceViewer.hpp          | 11 +++--
> >   src/KsUtils.cpp                |  9 ++--
> >   src/KsUtils.hpp                |  4 +-
> >   src/KsWidgetsLib.cpp           |  2 +-
> >   src/KsWidgetsLib.hpp           | 15 ++----
> >   src/libkshark-collection.c     | 14 +++---
> >   src/libkshark-configio.c       | 84 +++++++++++++++++++---------------
> >   src/libkshark-hash.c           |  5 +-
> >   src/libkshark-model.c          | 19 ++++----
> >   src/libkshark-tepdata.c        | 31 ++++++++-----
> >   src/libkshark.c                | 17 +++----
> >   src/libkshark.h                | 20 ++++----
> >   src/plugins/KVMComboDialog.cpp |  7 +--
> >   src/plugins/sched_events.c     |  2 +-
> >   tests/test-input.c             |  4 +-
> >   tests/test-input_ctrl.c        |  4 +-
> >   32 files changed, 257 insertions(+), 270 deletions(-)
> >   create mode 100644 .gitignore
> > 
> > --
> > 2.43.0
> >
Yordan Karadzhov March 3, 2024, 3:47 p.m. UTC | #3
Hi Benjamin,

We still have one unresolved bug that was reported by Sudip.
I will do my best to get this sorted out and have a new release by the 
end of next week.

Thanks,
Y.

On 3/3/24 11:56, Benjamin ROBIN wrote:
> On Sun, Jan 21, 2024 at 07:08:52PM +0200, Yordan Karadzhov wrote:
>> Hi Benjamin,
>>
>> I am applying most of the patches from your patch-set. I have some minor
>> comments about few of the changes that I will make in the individual
>> patches.
>>
>> Once again, thanks a lot for helping us to improve kernelshark!
>>
>> Cheers,
>> Yordan
>>
> 
> Hi Yordan,
> 
> Do you think it is possible to create a new release since all the major bugs
> were resolved?
> Indeed, the KernelShark version 2.3.0 is currently not usable, and this is this
> version that is provided in the Arch repository. The Arch maintainers would
> prefer a new release instead of applying a ton of patches.
> 
> Thanks,
> Benjamin
>   
>> On 1/14/24 19:16, Benjamin ROBIN wrote:
>>> There were 3 majors issues:
>>>    - A segfault when loading a trace file (patch 0001)
>>>    - The trace table height was very small (patch 0032)
>>>    - The trace table columns width were reducing when clicking
>>>      Marker A or B (patch 0032)
>>>
>>> Also fix most of the warnings reported by Clang-Tidy and Clazy, and by
>>> gcc with -Wextra.
>>>
>>>
>>> Benjamin ROBIN (34):
>>>     kernelshark: Fix modelReset() signaling, rename update to updateGeom
>>>     kernelshark: Add .gitignore
>>>     kernelshark: Remove function param when not used, whenever possible
>>>     kernelshark: Do not create a temporary container for looping over QMap
>>>     kernelshark: Prevent potential detach of QMap container
>>>     kernelshark: Fix used after free of QByteArray raw data
>>>     kernelshark: Fix potential memory leak in KsGLWidget
>>>     kernelshark: Use lambda parameter instead of captured local variable
>>>     kernelshark: Keep overridden method protected instead of public
>>>     kernelshark: Use sliced() or first() instead of mid/right/left()
>>>     kernelshark: Prevent potential divide by zero in Shape::center()
>>>     kernelshark: Fix potential access to uninitialized variable
>>>     kernelshark: Remove unused locals variables
>>>     kernelshark: Fix range-loop-reference Clazy warning
>>>     kernelshark: Fix moving a temp object prevents copy elision warning
>>>     kernelshark: Add receiver object to connect() call
>>>     kernelshark: Return by reference the list of header in KsModels
>>>     kernelshark: Fix detaching-temporary Clazy warning
>>>     kernelshark: Fix qfileinfo-exists Clazy warning
>>>     kernelshark: Fix potential memory leaks in libkshark-configio
>>>     kernelshark: Fix potential access to uninitialized variable
>>>     kernelshark: Fix potential double free of histo->map, histo->bin_count
>>>     kernelshark: Fix 'const' type qualifier on return type has no effect
>>>     kernelshark: Fix potential memory leaks in libkshark-tepdata
>>>     kernelshark: Fix typo in comment of KsGLWidget::resizeGL()
>>>     kernelshark: Remove unused KsDataWidget::wipPtr() and broken function
>>>     kernelshark: In KsTimeOffsetDialog() constructor use parent param
>>>     kernelshark: Fixed loop counter incremented suspiciously twice
>>>     kernelshark: Fix tepdata_dump_entry() for event_id = KS_EVENT_OVERFLOW
>>>     kernelshark: Use static_cast instead of C cast in KsMainWindow
>>>     kernelshark: Fix comparison of integers of different signs warnings
>>>     kernelshark: Fix KsTableView columns width, and KsTraceViewer size
>>>     kernelshark: Allow to reduce a bit more the graph height
>>>     kernelshark: Cleanup of KsDualMarker methods
>>>
>>>    .gitignore                     | 15 ++++++
>>>    examples/configio.c            |  3 +-
>>>    examples/datafilter.c          | 15 +++---
>>>    examples/datahisto.c           |  2 +-
>>>    src/KsAdvFilteringDialog.cpp   | 24 ++++------
>>>    src/KsAdvFilteringDialog.hpp   |  2 +-
>>>    src/KsDualMarker.hpp           | 10 +---
>>>    src/KsGLWidget.cpp             | 48 +++++++++----------
>>>    src/KsGLWidget.hpp             | 43 ++++++++---------
>>>    src/KsMainWindow.cpp           |  8 ++--
>>>    src/KsModels.hpp               | 11 +++--
>>>    src/KsPlotTools.cpp            | 14 +++---
>>>    src/KsPlotTools.hpp            |  2 +-
>>>    src/KsSession.cpp              |  4 +-
>>>    src/KsTraceGraph.cpp           |  7 ++-
>>>    src/KsTraceViewer.cpp          | 71 ++++++++--------------------
>>>    src/KsTraceViewer.hpp          | 11 +++--
>>>    src/KsUtils.cpp                |  9 ++--
>>>    src/KsUtils.hpp                |  4 +-
>>>    src/KsWidgetsLib.cpp           |  2 +-
>>>    src/KsWidgetsLib.hpp           | 15 ++----
>>>    src/libkshark-collection.c     | 14 +++---
>>>    src/libkshark-configio.c       | 84 +++++++++++++++++++---------------
>>>    src/libkshark-hash.c           |  5 +-
>>>    src/libkshark-model.c          | 19 ++++----
>>>    src/libkshark-tepdata.c        | 31 ++++++++-----
>>>    src/libkshark.c                | 17 +++----
>>>    src/libkshark.h                | 20 ++++----
>>>    src/plugins/KVMComboDialog.cpp |  7 +--
>>>    src/plugins/sched_events.c     |  2 +-
>>>    tests/test-input.c             |  4 +-
>>>    tests/test-input_ctrl.c        |  4 +-
>>>    32 files changed, 257 insertions(+), 270 deletions(-)
>>>    create mode 100644 .gitignore
>>>
>>> --
>>> 2.43.0
>>>
Sudip Mukherjee March 3, 2024, 5:07 p.m. UTC | #4
Looking at these patches I think my issue should be fixed now. Let me
try the latest HEAD tonight.
Sudip Mukherjee March 3, 2024, 8:43 p.m. UTC | #5
I have now tested and can confirm that the patches from Benjamin has
fixed the problem I was seeing on Debian also. A new release will be
better for me also, instead of adding all those patches to Debian
package.

Thanks Benjamin for the fixes.