Linux-Trace-Devel Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH 0/3] Fixes needed befor KS 1.0
@ 2019-07-23 12:52 Yordan Karadzhov (VMware)
  2019-07-23 12:52 ` [PATCH 1/3] kernel-shark: Make KsEventsCheckBoxWidget::removeSystem more robust Yordan Karadzhov (VMware)
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Yordan Karadzhov (VMware) @ 2019-07-23 12:52 UTC (permalink / raw)
  To: rostedt; +Cc: linux-trace-devel, howaboutsynergy, Yordan Karadzhov (VMware)

Adderssing the issues reported by "howaboutsynergy" here:

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204277

Yordan Karadzhov (VMware) (3):
  kernel-shark: Make KsEventsCheckBoxWidget::removeSystem more robust
  kernel-shark: Better error message for the constructor of
    KsCaptureControl
  kernel-shark: Disable Capture if trace-cmd can't function

 kernel-shark/src/KsCaptureDialog.cpp | 25 ++++++++++++++++++++++---
 kernel-shark/src/KsWidgetsLib.cpp    |  9 ++++++---
 2 files changed, 28 insertions(+), 6 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/3] kernel-shark: Make KsEventsCheckBoxWidget::removeSystem more robust
  2019-07-23 12:52 [PATCH 0/3] Fixes needed befor KS 1.0 Yordan Karadzhov (VMware)
@ 2019-07-23 12:52 ` Yordan Karadzhov (VMware)
  2019-07-23 12:52 ` [PATCH 2/3] kernel-shark: Better error message for the constructor of KsCaptureControl Yordan Karadzhov (VMware)
  2019-07-23 12:52 ` [PATCH 3/3] kernel-shark: Disable Capture if trace-cmd can't function Yordan Karadzhov (VMware)
  2 siblings, 0 replies; 6+ messages in thread
From: Yordan Karadzhov (VMware) @ 2019-07-23 12:52 UTC (permalink / raw)
  To: rostedt; +Cc: linux-trace-devel, howaboutsynergy, Yordan Karadzhov (VMware)

The function has to be able to handle safely the case when the Checkbox
tree widget is empty or it does not contain the item to be removed.

Reported-by: howaboutsynergy <howaboutsynergy@pm.me>
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204277
Fixes: 4a02481fff (Remove all system=ftrace events from Record dialog)
Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
---
 kernel-shark/src/KsWidgetsLib.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/kernel-shark/src/KsWidgetsLib.cpp b/kernel-shark/src/KsWidgetsLib.cpp
index 84afec9..330230e 100644
--- a/kernel-shark/src/KsWidgetsLib.cpp
+++ b/kernel-shark/src/KsWidgetsLib.cpp
@@ -749,10 +749,13 @@ QStringList KsEventsCheckBoxWidget::getCheckedEvents(bool option)
 
 /** Remove a System from the Checkbox tree. */
 void KsEventsCheckBoxWidget::removeSystem(QString name) {
-	QTreeWidgetItem *item =
-		_tree.findItems(name, Qt::MatchFixedString, 0)[0];
+	auto itemList = _tree.findItems(name, Qt::MatchFixedString, 0);
+	int index;
 
-	int index = _tree.indexOfTopLevelItem(item);
+	if (itemList.isEmpty())
+		return;
+
+	index = _tree.indexOfTopLevelItem(itemList[0]);
 	if (index >= 0)
 		_tree.takeTopLevelItem(index);
 }
-- 
2.20.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 2/3] kernel-shark: Better error message for the constructor of KsCaptureControl
  2019-07-23 12:52 [PATCH 0/3] Fixes needed befor KS 1.0 Yordan Karadzhov (VMware)
  2019-07-23 12:52 ` [PATCH 1/3] kernel-shark: Make KsEventsCheckBoxWidget::removeSystem more robust Yordan Karadzhov (VMware)
@ 2019-07-23 12:52 ` Yordan Karadzhov (VMware)
  2019-07-23 12:52 ` [PATCH 3/3] kernel-shark: Disable Capture if trace-cmd can't function Yordan Karadzhov (VMware)
  2 siblings, 0 replies; 6+ messages in thread
From: Yordan Karadzhov (VMware) @ 2019-07-23 12:52 UTC (permalink / raw)
  To: rostedt; +Cc: linux-trace-devel, howaboutsynergy, Yordan Karadzhov (VMware)

The error message includes the case when the tracing directory cannot be
found or mounted.

Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
---
 kernel-shark/src/KsCaptureDialog.cpp | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/kernel-shark/src/KsCaptureDialog.cpp b/kernel-shark/src/KsCaptureDialog.cpp
index 0a29518..2e6e8f9 100644
--- a/kernel-shark/src/KsCaptureDialog.cpp
+++ b/kernel-shark/src/KsCaptureDialog.cpp
@@ -55,13 +55,19 @@ KsCaptureControl::KsCaptureControl(QWidget *parent)
 		_topLayout.addWidget(line);
 	};
 
-	if (pluginList.count() == 0) {
+	if (pluginList.count() == 0 || !_localTEP) {
 		/*
-		 * No plugins have been found. Most likely this is because
-		 * the process has no Root privileges.
+		 * No plugins or events have been found. Most likely this is
+		 * because the process has no Root privileges or because
+		 * tracefs cannot be mounted.
 		 */
 		QString message("Error: No events or plugins found.\n");
-		message += "Root privileges are required.";
+
+		if (!_localTEP)
+			message += "Cannot find or mount tracing directory.\n";
+		if (!pluginList.count())
+			message += "Root privileges are required.\n";
+
 		QLabel *errorLabel = new QLabel(message);
 
 		errorLabel->setStyleSheet("QLabel {color : red;}");
-- 
2.20.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 3/3] kernel-shark: Disable Capture if trace-cmd can't function
  2019-07-23 12:52 [PATCH 0/3] Fixes needed befor KS 1.0 Yordan Karadzhov (VMware)
  2019-07-23 12:52 ` [PATCH 1/3] kernel-shark: Make KsEventsCheckBoxWidget::removeSystem more robust Yordan Karadzhov (VMware)
  2019-07-23 12:52 ` [PATCH 2/3] kernel-shark: Better error message for the constructor of KsCaptureControl Yordan Karadzhov (VMware)
@ 2019-07-23 12:52 ` Yordan Karadzhov (VMware)
  2019-07-23 23:06   ` Steven Rostedt
  2 siblings, 1 reply; 6+ messages in thread
From: Yordan Karadzhov (VMware) @ 2019-07-23 12:52 UTC (permalink / raw)
  To: rostedt; +Cc: linux-trace-devel, howaboutsynergy, Yordan Karadzhov (VMware)

In the case of an error all key buttons of the Record dialog are
disabled.

Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
---
 kernel-shark/src/KsCaptureDialog.cpp | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/kernel-shark/src/KsCaptureDialog.cpp b/kernel-shark/src/KsCaptureDialog.cpp
index 2e6e8f9..2962917 100644
--- a/kernel-shark/src/KsCaptureDialog.cpp
+++ b/kernel-shark/src/KsCaptureDialog.cpp
@@ -74,6 +74,19 @@ KsCaptureControl::KsCaptureControl(QWidget *parent)
 		_topLayout.addWidget(errorLabel);
 
 		lamAddLine();
+
+		/* Disable all key buttons. */
+		QVector<QWidget *> widgets =
+			{&_importSettingsButton,
+			 &_exportSettingsButton,
+			 &_outputBrowseButton,
+			 &_pluginsComboBox,
+			 &_commandCheckBox,
+			 &_applyButton,
+			 &_captureButton};
+
+		for (auto &b: widgets)
+			b->setDisabled(true);
 	}
 
 	pluginList.prepend("nop");
-- 
2.20.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 3/3] kernel-shark: Disable Capture if trace-cmd can't function
  2019-07-23 12:52 ` [PATCH 3/3] kernel-shark: Disable Capture if trace-cmd can't function Yordan Karadzhov (VMware)
@ 2019-07-23 23:06   ` Steven Rostedt
  0 siblings, 0 replies; 6+ messages in thread
From: Steven Rostedt @ 2019-07-23 23:06 UTC (permalink / raw)
  To: Yordan Karadzhov (VMware); +Cc: linux-trace-devel, howaboutsynergy

On Tue, 23 Jul 2019 15:52:04 +0300
"Yordan Karadzhov (VMware)" <y.karadz@gmail.com> wrote:

> In the case of an error all key buttons of the Record dialog are
> disabled.

I applied and pushed out your other two patches, but didn't apply this
one. As we discussed at our 1:1, I think it's better to at a minimum,
just disable the "Capture" button, as that's the only thing that really
needs "root". If we can't read the events or the tracers, then they
will just stay empty or set to a single default value.

No reason to disable export and import settings, the user can do that,
but it wont help them much.

-- Steve


> 
> Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
> ---
>  kernel-shark/src/KsCaptureDialog.cpp | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/kernel-shark/src/KsCaptureDialog.cpp b/kernel-shark/src/KsCaptureDialog.cpp
> index 2e6e8f9..2962917 100644
> --- a/kernel-shark/src/KsCaptureDialog.cpp
> +++ b/kernel-shark/src/KsCaptureDialog.cpp
> @@ -74,6 +74,19 @@ KsCaptureControl::KsCaptureControl(QWidget *parent)
>  		_topLayout.addWidget(errorLabel);
>  
>  		lamAddLine();
> +
> +		/* Disable all key buttons. */
> +		QVector<QWidget *> widgets =
> +			{&_importSettingsButton,
> +			 &_exportSettingsButton,
> +			 &_outputBrowseButton,
> +			 &_pluginsComboBox,
> +			 &_commandCheckBox,
> +			 &_applyButton,
> +			 &_captureButton};
> +
> +		for (auto &b: widgets)
> +			b->setDisabled(true);
>  	}
>  
>  	pluginList.prepend("nop");


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 0/3] Fixes needed befor KS 1.0
@ 2019-07-15 13:20 Yordan Karadzhov (VMware)
  0 siblings, 0 replies; 6+ messages in thread
From: Yordan Karadzhov (VMware) @ 2019-07-15 13:20 UTC (permalink / raw)
  To: rostedt; +Cc: linux-trace-devel, Yordan Karadzhov (VMware)


Yordan Karadzhov (VMware) (3):
  kernel-shark: The graph widget must follow the active marker
  kernel-shark: Always clear the marker after resizing the table.
  kernel-shark: Don't try to update the markers if no data is loaded

 kernel-shark/src/KsMainWindow.cpp  | 18 ++++++++++++------
 kernel-shark/src/KsMainWindow.hpp  |  2 ++
 kernel-shark/src/KsTraceViewer.cpp | 17 +++++++++++++----
 3 files changed, 27 insertions(+), 10 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, back to index

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-23 12:52 [PATCH 0/3] Fixes needed befor KS 1.0 Yordan Karadzhov (VMware)
2019-07-23 12:52 ` [PATCH 1/3] kernel-shark: Make KsEventsCheckBoxWidget::removeSystem more robust Yordan Karadzhov (VMware)
2019-07-23 12:52 ` [PATCH 2/3] kernel-shark: Better error message for the constructor of KsCaptureControl Yordan Karadzhov (VMware)
2019-07-23 12:52 ` [PATCH 3/3] kernel-shark: Disable Capture if trace-cmd can't function Yordan Karadzhov (VMware)
2019-07-23 23:06   ` Steven Rostedt
  -- strict thread matches above, loose matches on Subject: below --
2019-07-15 13:20 [PATCH 0/3] Fixes needed befor KS 1.0 Yordan Karadzhov (VMware)

Linux-Trace-Devel Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-trace-devel/0 linux-trace-devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-trace-devel linux-trace-devel/ https://lore.kernel.org/linux-trace-devel \
		linux-trace-devel@vger.kernel.org linux-trace-devel@archiver.kernel.org
	public-inbox-index linux-trace-devel


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-trace-devel


AGPL code for this site: git clone https://public-inbox.org/ public-inbox