All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH v3 0/2] regmap: provide simple bitops and use them in a driver
From: Mark Brown @ 2020-05-29 16:57 UTC (permalink / raw)
  To: Bartosz Golaszewski, Sean Wang, John Crispin, Matthias Brugger,
	Mark Lee, Jakub Kicinski, David S . Miller
  Cc: Stephane Le Provost, Fabien Parent, Pedro Tsai, linux-kernel,
	Bartosz Golaszewski, linux-mediatek, Andrew Perepech, netdev,
	linux-arm-kernel
In-Reply-To: <159077110913.28779.5053923375043778782.b4-ty@kernel.org>


[-- Attachment #1.1: Type: text/plain, Size: 354 bytes --]

On Fri, May 29, 2020 at 05:52:00PM +0100, Mark Brown wrote:

> [1/1] regmap: provide helpers for simple bit operations
>       commit: aa2ff9dbaeddabb5ad166db5f9f1a0580a8bbba8

Let me know if you need a pull request for this, given the merge window
is likely to open over the weekend I figured it's likely too late to
apply the second patch before then.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: [PATCH v3 0/2] regmap: provide simple bitops and use them in a driver
From: Mark Brown @ 2020-05-29 16:57 UTC (permalink / raw)
  To: Bartosz Golaszewski, Sean Wang, John Crispin, Matthias Brugger,
	Mark Lee, Jakub Kicinski, David S . Miller
  Cc: linux-arm-kernel, linux-mediatek, Pedro Tsai, Andrew Perepech,
	netdev, linux-kernel, Bartosz Golaszewski, Fabien Parent,
	Stephane Le Provost
In-Reply-To: <159077110913.28779.5053923375043778782.b4-ty@kernel.org>

[-- Attachment #1: Type: text/plain, Size: 354 bytes --]

On Fri, May 29, 2020 at 05:52:00PM +0100, Mark Brown wrote:

> [1/1] regmap: provide helpers for simple bit operations
>       commit: aa2ff9dbaeddabb5ad166db5f9f1a0580a8bbba8

Let me know if you need a pull request for this, given the merge window
is likely to open over the weekend I figured it's likely too late to
apply the second patch before then.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply

* Re: [virtio-comment] [PATCH v4 1/3] content: Document balloon feature page poison
From: Alexander Duyck @ 2020-05-29 16:57 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Michael S. Tsirkin, Cornelia Huck, virtio-comment, virtio-dev,
	Wang, Wei W
In-Reply-To: <1fc7b0ba-4af8-8161-d683-a28e9502a70a@redhat.com>

On Fri, May 29, 2020 at 1:13 AM David Hildenbrand <david@redhat.com> wrote:
>
> On 27.05.20 06:06, Alexander Duyck wrote:
> > From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
> >
> > Page poison provides a way for the guest to notify the host that it is
> > initializing or poisoning freed pages with some specific poison value. As a
> > result of this we can infer a couple traits about the guest:
> >
> > 1. Free pages will contain a specific pattern within the guest.
> > 2. Modifying free pages from this value may cause an error in the guest.
> > 3. Pages will be immediately written to by the driver when deflated.
> >
> > There are currently no existing features that make use of this data. In the
> > upcoming feature free page reporting we will need to make use of this to
> > identify if we can evict pages from the guest without causing data
> > corruption.
> >
> > Add documentation for the page poison feature describing the basic
> > functionality and requirements.
> >
> > Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
> > ---
> >  conformance.tex |    2 ++
> >  content.tex     |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++----
> >  2 files changed, 57 insertions(+), 4 deletions(-)
> >
> > diff --git a/conformance.tex b/conformance.tex
> > index b6fdec090383..4ed9d62e8088 100644
> > --- a/conformance.tex
> > +++ b/conformance.tex
> > @@ -149,6 +149,7 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets}
> >  \item \ref{drivernormative:Device Types / Memory Balloon Device / Feature bits}
> >  \item \ref{drivernormative:Device Types / Memory Balloon Device / Device Operation}
> >  \item \ref{drivernormative:Device Types / Memory Balloon Device / Device Operation / Memory Statistics}
> > +\item \ref{drivernormative:Device Types / Memory Balloon Device / Device Operation / Page Poison}
> >  \end{itemize}
> >
> >  \conformance{\subsection}{SCSI Host Driver Conformance}\label{sec:Conformance / Driver Conformance / SCSI Host Driver Conformance}
> > @@ -331,6 +332,7 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets}
> >  \item \ref{devicenormative:Device Types / Memory Balloon Device / Feature bits}
> >  \item \ref{devicenormative:Device Types / Memory Balloon Device / Device Operation}
> >  \item \ref{devicenormative:Device Types / Memory Balloon Device / Device Operation / Memory Statistics}
> > +\item \ref{devicenormative:Device Types / Memory Balloon Device / Device Operation / Page Poison}
> >  \end{itemize}
> >
> >  \conformance{\subsection}{SCSI Host Device Conformance}\label{sec:Conformance / Device Conformance / SCSI Host Device Conformance}
> > diff --git a/content.tex b/content.tex
> > index 91735e3eb018..4a0ab90260ff 100644
> > --- a/content.tex
> > +++ b/content.tex
> > @@ -5019,6 +5019,9 @@ \subsection{Feature bits}\label{sec:Device Types / Memory Balloon Device / Featu
> >      memory statistics is present.
> >  \item[VIRTIO_BALLOON_F_DEFLATE_ON_OOM (2) ] Deflate balloon on
> >      guest out of memory condition.
> > +\item[ VIRTIO_BALLOON_F_PAGE_POISON(4) ] A hint to the device, that the driver
> > +    will immediately write \field{poison_val} to pages after deflating them.
> > +    Configuration field \field{poison_val} is valid.
> >
>
> Here we have "that the driver will immediately" ...
>
> But we never document that in form of a normative statement (e.g., "The
> driver MUST initialize pages with \field{poison_val} after deflating").

I'm pretty sure we did document that. In the normative statement for
the driver below we have:
+The driver MUST initialize the deflated pages with \field{poison_val} when
+they are reused by the driver.

> Just wondering if that is intended (I imagine it will be different with
> free page reporting)?

I think we add some additional items with page reporting, but I think
those are in the page reporting section if I recall correctly.

> Apart from that looks good to me!
>
> --
> Thanks,
>
> David / dhildenb
>

Thanks for taking all the time to review this.

- Alex

This publicly archived list offers a means to provide input to the
OASIS Virtual I/O Device (VIRTIO) TC.

In order to verify user consent to the Feedback License terms and
to minimize spam in the list archive, subscription is required
before posting.

Subscribe: virtio-comment-subscribe@lists.oasis-open.org
Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org
List help: virtio-comment-help@lists.oasis-open.org
List archive: https://lists.oasis-open.org/archives/virtio-comment/
Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf
List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists
Committee: https://www.oasis-open.org/committees/virtio/
Join OASIS: https://www.oasis-open.org/join/


^ permalink raw reply

* Re: mmotm 2020-05-13-20-30 uploaded (objtool warnings)
From: Peter Zijlstra @ 2020-05-29 16:54 UTC (permalink / raw)
  To: Josh Poimboeuf
  Cc: Christoph Hellwig, Randy Dunlap, Andrew Morton, broonie,
	linux-fsdevel, linux-kernel, linux-mm, linux-next, mhocko,
	mm-commits, sfr, Linus Torvalds, viro, x86, Steven Rostedt
In-Reply-To: <20200529165011.o7vvhn4wcj6zjxux@treble>

On Fri, May 29, 2020 at 11:50:11AM -0500, Josh Poimboeuf wrote:
> The nested likelys seem like overkill anyway -- user_access_begin() is
> __always_inline and it already has unlikely(), which should be
> propagated.
> 
> So just remove the outer likelys?

That fixes it. Ack!

> diff --git a/arch/x86/lib/csum-wrappers_64.c b/arch/x86/lib/csum-wrappers_64.c
> index a12b8629206d..ee63d7576fd2 100644
> --- a/arch/x86/lib/csum-wrappers_64.c
> +++ b/arch/x86/lib/csum-wrappers_64.c
> @@ -27,7 +27,7 @@ csum_and_copy_from_user(const void __user *src, void *dst,
>  	might_sleep();
>  	*errp = 0;
>  
> -	if (!likely(user_access_begin(src, len)))
> +	if (!user_access_begin(src, len))
>  		goto out_err;
>  
>  	/*
> @@ -89,7 +89,7 @@ csum_and_copy_to_user(const void *src, void __user *dst,
>  
>  	might_sleep();
>  
> -	if (unlikely(!user_access_begin(dst, len))) {
> +	if (!user_access_begin(dst, len)) {
>  		*errp = -EFAULT;
>  		return 0;
>  	}
> 

^ permalink raw reply

* [lttng-dev] [PATCH lttng-tools] tests: introduce --with-babeltrace-test-bin
From: Mathieu Desnoyers via lttng-dev @ 2020-05-29 16:56 UTC (permalink / raw)
  To: jgalar; +Cc: lttng-dev

Introduce --with-babeltrace-test-bin to allow specifying which
babeltrace binary should be used in tests.

If this option is not specified, use the babeltrace2 binary if found,
else fall back on babeltrace.

When looking for babeltrace2 and babeltrace, abide by
--with-babeltrace2-bin and --with-babeltrace-bin. If any of those are
not set, respectively use "babeltrace2" and "babeltrace".

Ensure all shell scripts and python tests use the BABELTRACE_BIN
environment variable.

Fixes #1270

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Co-developed-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Change-Id: I09006c4863df66f2f73980dce02ddc46e8f384ab
---
 .gitignore                                         |  1 +
 configure.ac                                       | 11 +++++++++
 tests/regression/tools/exclusion/test_exclusion    |  2 +-
 tests/regression/tools/filtering/test_valid_filter |  2 +-
 .../tools/streaming/test_high_throughput_limits    |  2 +-
 .../tools/tracefile-limits/test_tracefile_count    |  2 +-
 .../ust/baddr-statedump/test_baddr-statedump.py    |  2 +-
 tests/regression/ust/blocking/test_blocking        |  2 +-
 tests/regression/ust/buffers-pid/test_buffers_pid  |  4 ++--
 tests/regression/ust/daemon/test_daemon.py         |  2 +-
 tests/regression/ust/exit-fast/test_exit-fast.py   |  2 +-
 tests/regression/ust/fork/test_fork.py             |  2 +-
 .../ust/high-throughput/test_high_throughput       |  2 +-
 .../ust/libc-wrapper/test_libc-wrapper.py          |  2 +-
 tests/regression/ust/linking/test_linking.py       |  2 +-
 .../ust/low-throughput/test_low_throughput         |  2 +-
 .../ust/multi-session/test_multi_session           |  2 +-
 .../test_periodical_metadata_flush                 |  2 +-
 .../type-declarations/test_type_declarations.py    |  2 +-
 tests/regression/ust/ust-dl/test_ust-dl.py         |  2 +-
 tests/utils/babeltrace.sh.in                       | 28 ++++++++++++++++++++++
 tests/utils/utils.sh                               |  3 ++-
 22 files changed, 61 insertions(+), 20 deletions(-)
 create mode 100644 tests/utils/babeltrace.sh.in

diff --git a/.gitignore b/.gitignore
index 8f29a8623..1651cdf28 100644
--- a/.gitignore
+++ b/.gitignore
@@ -146,6 +146,7 @@ health_check
 /tests/utils/testapp/userspace-probe-sdt-binary/foobar_provider.h
 /tests/utils/testapp/userspace-probe-sdt-binary/userspace-probe-sdt-binary
 /tests/utils/testapp/gen-ns-events/gen-ns-events
+/tests/utils/babeltrace.sh
 
 # man pages
 /doc/man/*.1
diff --git a/configure.ac b/configure.ac
index 4e186d471..86307f81a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -283,6 +283,13 @@ AC_ARG_WITH([babeltrace2-bin],
 	[BABELTRACE2_BIN=''])
 AC_SUBST([BABELTRACE2_BIN])
 
+AC_ARG_WITH([babeltrace-test-bin],
+	AS_HELP_STRING([--with-babeltrace-test-bin],
+	[Location of the babeltrace2 viewer executable (including the filename) to use for tests]),
+	[BABELTRACE_TEST_BIN="$withval"],
+	[BABELTRACE_TEST_BIN=''])
+AC_SUBST([BABELTRACE_TEST_BIN])
+
 AC_ARG_WITH([consumerd32-bin],
 	AS_HELP_STRING([--with-consumerd32-bin],
 	[Location of the 32-bit consumerd executable (including the filename)]),
@@ -350,6 +357,7 @@ AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD32_LIBDIR], "$CONSUMERD32_LIBDIR", [Search f
 AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD64_LIBDIR], "$CONSUMERD64_LIBDIR", [Search for consumerd 64-bit libraries in this location.])
 AC_DEFINE_UNQUOTED([CONFIG_BABELTRACE_BIN], "$BABELTRACE_BIN", [Location of the babeltrace viewer executable.])
 AC_DEFINE_UNQUOTED([CONFIG_BABELTRACE2_BIN], "$BABELTRACE2_BIN", [Location of the babeltrace2 viewer executable.])
+AC_DEFINE_UNQUOTED([CONFIG_BABELTRACE_TEST_BIN], "$BABELTRACE_TEST_BIN", [Location of the babeltrace2 viewer executable to use for tests.])
 AC_DEFINE_UNQUOTED([CONFIG_SESSIOND_BIN], "$SESSIOND_BIN", [Location of the sessiond executable.])
 AC_DEFINE_UNQUOTED([CONFIG_LTTNG_SYSTEM_RUNDIR], ["$LTTNG_SYSTEM_RUNDIR"], [LTTng system runtime directory])
 
@@ -1220,6 +1228,9 @@ AC_CONFIG_FILES([tests/regression/ust/python-logging/test_python_logging],[chmod
 AC_CONFIG_FILES([tests/perf/test_perf_raw],[chmod +x tests/perf/test_perf_raw])
 AC_CONFIG_FILES([tests/regression/ust/ust-dl/test_ust-dl],[chmod +x tests/regression/ust/ust-dl/test_ust-dl])
 
+# Inject BABELTRACE_BIN and test env script.
+AC_CONFIG_FILES([tests/utils/babeltrace.sh])
+
 AC_OUTPUT
 
 #
diff --git a/tests/regression/tools/exclusion/test_exclusion b/tests/regression/tools/exclusion/test_exclusion
index ce5e988e5..e5905f628 100755
--- a/tests/regression/tools/exclusion/test_exclusion
+++ b/tests/regression/tools/exclusion/test_exclusion
@@ -53,7 +53,7 @@ function dry_run
 	run_apps
 	stop_lttng_tracing_ok $SESSION_NAME
 
-	nb_events=$(babeltrace $trace_path | wc -l)
+	nb_events=$($BABELTRACE_BIN $trace_path | wc -l)
 	if [ "$nb_events" -ne "0" ]; then
 		ok 0 "Events were found during the dry run without exclusion"
 	else
diff --git a/tests/regression/tools/filtering/test_valid_filter b/tests/regression/tools/filtering/test_valid_filter
index 6d1009a48..f9c39d4bd 100755
--- a/tests/regression/tools/filtering/test_valid_filter
+++ b/tests/regression/tools/filtering/test_valid_filter
@@ -113,7 +113,7 @@ function test_valid_filter
 	# Destroy session
 	destroy_lttng_session_ok $SESSION_NAME
 
-	stats=`babeltrace $trace_path | $STATS_BIN --tracepoint $event_name`
+	stats=`$BABELTRACE_BIN $trace_path | $STATS_BIN --tracepoint $event_name`
 
 	rm -rf $trace_path
 
diff --git a/tests/regression/tools/streaming/test_high_throughput_limits b/tests/regression/tools/streaming/test_high_throughput_limits
index 352cf9aa6..23f67a8e6 100755
--- a/tests/regression/tools/streaming/test_high_throughput_limits
+++ b/tests/regression/tools/streaming/test_high_throughput_limits
@@ -130,7 +130,7 @@ function validate_event_count
 	TEMP_FILE=$(mktemp)
 	TEMP_FILE_2=$(mktemp)
 
-	traced=$(babeltrace $TRACE_PATH 2>/dev/null | wc -l)
+	traced=$($BABELTRACE_BIN $TRACE_PATH 2>/dev/null | wc -l)
 	babeltrace $TRACE_PATH >/dev/null 2>$TEMP_FILE_2
 
 	cat $TEMP_FILE_2 | cut -f4 -d " " >$TEMP_FILE
diff --git a/tests/regression/tools/tracefile-limits/test_tracefile_count b/tests/regression/tools/tracefile-limits/test_tracefile_count
index b44de63c0..af80f8605 100755
--- a/tests/regression/tools/tracefile-limits/test_tracefile_count
+++ b/tests/regression/tools/tracefile-limits/test_tracefile_count
@@ -124,7 +124,7 @@ function test_tracefile_count_limit ()
 
 	# Validate tracing data
 
-	stats=`babeltrace $trace_path | $STATS_BIN --tracepoint $event_name`
+	stats=`$BABELTRACE_BIN $trace_path | $STATS_BIN --tracepoint $event_name`
 
 	validate_min_max "$stats" "intfield" "[0-9]+" "$expected_max"
 	ok $? "Trace validation - intfield"
diff --git a/tests/regression/ust/baddr-statedump/test_baddr-statedump.py b/tests/regression/ust/baddr-statedump/test_baddr-statedump.py
index 026f08444..f255d3e2a 100644
--- a/tests/regression/ust/baddr-statedump/test_baddr-statedump.py
+++ b/tests/regression/ust/baddr-statedump/test_baddr-statedump.py
@@ -44,7 +44,7 @@ stop_session(session_info)
 
 # Check for statedump events in the resulting trace
 try:
-    babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 except FileNotFoundError:
     bail("Could not open babeltrace. Please make sure it is installed.", session_info)
 
diff --git a/tests/regression/ust/blocking/test_blocking b/tests/regression/ust/blocking/test_blocking
index abd50d459..ea6ed07cf 100755
--- a/tests/regression/ust/blocking/test_blocking
+++ b/tests/regression/ust/blocking/test_blocking
@@ -123,7 +123,7 @@ function test_ust_blocking_no_discard()
 	destroy_lttng_session_ok $SESSION_NAME
 	stop_lttng_sessiond
 
-	nr_events=$(babeltrace $TRACE_PATH 2>/dev/null | wc -l)
+	nr_events=$($BABELTRACE_BIN $TRACE_PATH 2>/dev/null | wc -l)
 
 	test $nr_events -eq $NUM_EVENT
 	ok $? "No event lost with UST blocking mode: found $nr_events expect $NUM_EVENT"
diff --git a/tests/regression/ust/buffers-pid/test_buffers_pid b/tests/regression/ust/buffers-pid/test_buffers_pid
index 59f218c85..17cc783f9 100755
--- a/tests/regression/ust/buffers-pid/test_buffers_pid
+++ b/tests/regression/ust/buffers-pid/test_buffers_pid
@@ -98,7 +98,7 @@ test_before_multiple_apps() {
 		rm -f ${file_sync_before_last}_${i}
 	done
 
-	out=$(babeltrace $TRACE_PATH | grep $EVENT_NAME | wc -l)
+	out=$($BABELTRACE_BIN $TRACE_PATH | grep $EVENT_NAME | wc -l)
 	if [ $out -eq 0 ]; then
 		fail "Trace validation"
 		diag "No event(s) found. We are supposed to have at least one."
@@ -165,7 +165,7 @@ test_before_app() {
 	rm -f ${file_sync_after_first}
 	rm -f ${file_sync_before_last}
 
-	out=$(babeltrace $TRACE_PATH | grep $EVENT_NAME | wc -l)
+	out=$($BABELTRACE_BIN $TRACE_PATH | grep $EVENT_NAME | wc -l)
 	if [ $out -eq 0 ]; then
 		fail "Trace validation"
 		diag "No event(s) found. We are supposed to have at least one."
diff --git a/tests/regression/ust/daemon/test_daemon.py b/tests/regression/ust/daemon/test_daemon.py
index 0351f1d21..03adb6c80 100644
--- a/tests/regression/ust/daemon/test_daemon.py
+++ b/tests/regression/ust/daemon/test_daemon.py
@@ -57,7 +57,7 @@ if daemon_process_return_code != 0:
 stop_session(session_info)
 
 try:
-    babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE)
+    babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE)
 except FileNotFoundError:
     bail("Could not open babeltrace. Please make sure it is installed.")
 
diff --git a/tests/regression/ust/exit-fast/test_exit-fast.py b/tests/regression/ust/exit-fast/test_exit-fast.py
index f61d540b3..1a4702b34 100644
--- a/tests/regression/ust/exit-fast/test_exit-fast.py
+++ b/tests/regression/ust/exit-fast/test_exit-fast.py
@@ -49,7 +49,7 @@ stop_session(session_info)
 
 # Check both events (normal exit and suicide messages) are present in the resulting trace
 try:
-    babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 except FileNotFoundError:
     bail("Could not open babeltrace. Please make sure it is installed.")
 
diff --git a/tests/regression/ust/fork/test_fork.py b/tests/regression/ust/fork/test_fork.py
index 4cb721f38..e08f2c106 100644
--- a/tests/regression/ust/fork/test_fork.py
+++ b/tests/regression/ust/fork/test_fork.py
@@ -52,7 +52,7 @@ stop_session(session_info)
 
 # Check both events (normal exit and suicide messages) are present in the resulting trace
 try:
-    babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 except FileNotFoundError:
     bail("Could not open babeltrace. Please make sure it is installed.", session_info)
 
diff --git a/tests/regression/ust/high-throughput/test_high_throughput b/tests/regression/ust/high-throughput/test_high_throughput
index a6dbdc758..57504656d 100755
--- a/tests/regression/ust/high-throughput/test_high_throughput
+++ b/tests/regression/ust/high-throughput/test_high_throughput
@@ -53,7 +53,7 @@ stop_lttng_sessiond
 TEMP_FILE=$(mktemp)
 TEMP_FILE_2=$(mktemp)
 
-traced=$(babeltrace $TRACE_PATH 2>/dev/null | wc -l)
+traced=$($BABELTRACE_BIN $TRACE_PATH 2>/dev/null | wc -l)
 babeltrace $TRACE_PATH >/dev/null 2>$TEMP_FILE_2
 
 cat $TEMP_FILE_2 | cut -f4 -d " " >$TEMP_FILE
diff --git a/tests/regression/ust/libc-wrapper/test_libc-wrapper.py b/tests/regression/ust/libc-wrapper/test_libc-wrapper.py
index f56fa50de..95e5db781 100644
--- a/tests/regression/ust/libc-wrapper/test_libc-wrapper.py
+++ b/tests/regression/ust/libc-wrapper/test_libc-wrapper.py
@@ -41,7 +41,7 @@ stop_session(session_info)
 
 # Check for malloc events in the resulting trace
 try:
-    babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 except FileNotFoundError:
     bail("Could not open babeltrace. Please make sure it is installed.", session_info)
 
diff --git a/tests/regression/ust/linking/test_linking.py b/tests/regression/ust/linking/test_linking.py
index 21941f0d2..28d4f52ce 100644
--- a/tests/regression/ust/linking/test_linking.py
+++ b/tests/regression/ust/linking/test_linking.py
@@ -133,7 +133,7 @@ for executable in test_executables:
         continue
 
     try:
-        babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+        babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
     except FileNotFoundError:
         bail("Could not open babeltrace. Please make sure it is installed.")
 
diff --git a/tests/regression/ust/low-throughput/test_low_throughput b/tests/regression/ust/low-throughput/test_low_throughput
index 16ef27347..33e6ba280 100755
--- a/tests/regression/ust/low-throughput/test_low_throughput
+++ b/tests/regression/ust/low-throughput/test_low_throughput
@@ -47,7 +47,7 @@ stop_lttng_sessiond
 last_val=0
 out=0
 
-babeltrace $TRACE_PATH | while read event;
+$BABELTRACE_BIN $TRACE_PATH | while read event;
 do
 	val=$(echo $event | cut -f10 -d" ")
 	val=${val%?}
diff --git a/tests/regression/ust/multi-session/test_multi_session b/tests/regression/ust/multi-session/test_multi_session
index ba73b7d20..013937285 100755
--- a/tests/regression/ust/multi-session/test_multi_session
+++ b/tests/regression/ust/multi-session/test_multi_session
@@ -40,7 +40,7 @@ test_multi_session() {
 	for i in `seq 0 3`; do
 		stop_lttng_tracing_ok "$SESSION_NAME-$i"
 		destroy_lttng_session_ok "$SESSION_NAME-$i"
-		out=$(babeltrace "$TRACE_PATH/$i" | grep "$EVENT_NAMEi$i" | wc -l)
+		out=$($BABELTRACE_BIN "$TRACE_PATH/$i" | grep "$EVENT_NAMEi$i" | wc -l)
 		if [ $out -ne $NR_ITER ]; then
 			fail "Trace validation of $SESSION_NAME-$i"
 			diag "No events found."
diff --git a/tests/regression/ust/periodical-metadata-flush/test_periodical_metadata_flush b/tests/regression/ust/periodical-metadata-flush/test_periodical_metadata_flush
index 848fc2f3e..2aa086837 100755
--- a/tests/regression/ust/periodical-metadata-flush/test_periodical_metadata_flush
+++ b/tests/regression/ust/periodical-metadata-flush/test_periodical_metadata_flush
@@ -68,7 +68,7 @@ function validate_trace()
 {
 	local out
 
-	out=$(babeltrace $TRACE_PATH | grep $EVENT_NAME | wc -l)
+	out=$($BABELTRACE_BIN $TRACE_PATH | grep $EVENT_NAME | wc -l)
 	if [ $out -eq 0 ]; then
 		fail "Trace validation"
 		diag "No event(s) found. We are supposed to have at least one."
diff --git a/tests/regression/ust/type-declarations/test_type_declarations.py b/tests/regression/ust/type-declarations/test_type_declarations.py
index 62eda73a3..a92545064 100644
--- a/tests/regression/ust/type-declarations/test_type_declarations.py
+++ b/tests/regression/ust/type-declarations/test_type_declarations.py
@@ -43,7 +43,7 @@ stop_session(session_info)
 
 # Check event fields using type declarations are present
 try:
-    babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 except FileNotFoundError:
     bail("Could not open babeltrace. Please make sure it is installed.")
 
diff --git a/tests/regression/ust/ust-dl/test_ust-dl.py b/tests/regression/ust/ust-dl/test_ust-dl.py
index 96509c7cf..3fc999111 100644
--- a/tests/regression/ust/ust-dl/test_ust-dl.py
+++ b/tests/regression/ust/ust-dl/test_ust-dl.py
@@ -52,7 +52,7 @@ stop_session(session_info)
 
 # Check for dl events in the resulting trace
 try:
-    babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 except FileNotFoundError:
     bail("Could not open babeltrace. Please make sure it is installed.", session_info)
 
diff --git a/tests/utils/babeltrace.sh.in b/tests/utils/babeltrace.sh.in
new file mode 100644
index 000000000..380559029
--- /dev/null
+++ b/tests/utils/babeltrace.sh.in
@@ -0,0 +1,28 @@
+user_defined_bt_test="@BABELTRACE_TEST_BIN@"
+user_defined_bt1="@BABELTRACE_BIN@"
+user_defined_bt2="@BABELTRACE2_BIN@"
+
+if [ -n "${user_defined_bt2}" ]; then
+	bt2_bin="${user_defined_bt2}"
+else
+	bt2_bin="babeltrace2"
+fi
+
+if [ -n "${user_defined_bt1}" ]; then
+	bt1_bin="${user_defined_bt1}"
+else
+	bt1_bin="babeltrace"
+fi
+
+# Use user-defined babeltrace test binary if specified. Else fallback
+# on using babeltrace2 if found, else fallback on babeltrace if found.
+
+if [ -n "${user_defined_bt_test}" ]; then
+	BABELTRACE_BIN="${user_defined_bt_test}"
+elif command -v "${bt2_bin}"; then
+	BABELTRACE_BIN="${bt2_bin}"
+elif command -v "${bt1_bin}"; then
+	BABELTRACE_BIN="${bt1_bin}"
+else
+	echo "Failed to find Babeltrace binaries: ${bt2_bin} ${bt1_bin}"
+fi
diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh
index 0583b5c19..1a5f7fc5c 100644
--- a/tests/utils/utils.sh
+++ b/tests/utils/utils.sh
@@ -12,10 +12,11 @@ CONSUMERD_MATCH=".*lttng-consumerd.*"
 RELAYD_BIN="lttng-relayd"
 RELAYD_MATCH=".*lttng-relayd.*"
 LTTNG_BIN="lttng"
-BABELTRACE_BIN="babeltrace"
 OUTPUT_DEST=/dev/null
 ERROR_OUTPUT_DEST=/dev/null
 
+source $TESTDIR/utils/babeltrace.sh
+
 # Minimal kernel version supported for session daemon tests
 KERNEL_MAJOR_VERSION=2
 KERNEL_MINOR_VERSION=6
-- 
2.11.0

_______________________________________________
lttng-dev mailing list
lttng-dev@lists.lttng.org
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

^ permalink raw reply related

* [PATCH lttng-tools] tests: introduce --with-babeltrace-test-bin
From: Mathieu Desnoyers via lttng-dev @ 2020-05-29 16:56 UTC (permalink / raw)
  To: jgalar; +Cc: lttng-dev

Introduce --with-babeltrace-test-bin to allow specifying which
babeltrace binary should be used in tests.

If this option is not specified, use the babeltrace2 binary if found,
else fall back on babeltrace.

When looking for babeltrace2 and babeltrace, abide by
--with-babeltrace2-bin and --with-babeltrace-bin. If any of those are
not set, respectively use "babeltrace2" and "babeltrace".

Ensure all shell scripts and python tests use the BABELTRACE_BIN
environment variable.

Fixes #1270

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Co-developed-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Change-Id: I09006c4863df66f2f73980dce02ddc46e8f384ab
---
 .gitignore                                         |  1 +
 configure.ac                                       | 11 +++++++++
 tests/regression/tools/exclusion/test_exclusion    |  2 +-
 tests/regression/tools/filtering/test_valid_filter |  2 +-
 .../tools/streaming/test_high_throughput_limits    |  2 +-
 .../tools/tracefile-limits/test_tracefile_count    |  2 +-
 .../ust/baddr-statedump/test_baddr-statedump.py    |  2 +-
 tests/regression/ust/blocking/test_blocking        |  2 +-
 tests/regression/ust/buffers-pid/test_buffers_pid  |  4 ++--
 tests/regression/ust/daemon/test_daemon.py         |  2 +-
 tests/regression/ust/exit-fast/test_exit-fast.py   |  2 +-
 tests/regression/ust/fork/test_fork.py             |  2 +-
 .../ust/high-throughput/test_high_throughput       |  2 +-
 .../ust/libc-wrapper/test_libc-wrapper.py          |  2 +-
 tests/regression/ust/linking/test_linking.py       |  2 +-
 .../ust/low-throughput/test_low_throughput         |  2 +-
 .../ust/multi-session/test_multi_session           |  2 +-
 .../test_periodical_metadata_flush                 |  2 +-
 .../type-declarations/test_type_declarations.py    |  2 +-
 tests/regression/ust/ust-dl/test_ust-dl.py         |  2 +-
 tests/utils/babeltrace.sh.in                       | 28 ++++++++++++++++++++++
 tests/utils/utils.sh                               |  3 ++-
 22 files changed, 61 insertions(+), 20 deletions(-)
 create mode 100644 tests/utils/babeltrace.sh.in

diff --git a/.gitignore b/.gitignore
index 8f29a8623..1651cdf28 100644
--- a/.gitignore
+++ b/.gitignore
@@ -146,6 +146,7 @@ health_check
 /tests/utils/testapp/userspace-probe-sdt-binary/foobar_provider.h
 /tests/utils/testapp/userspace-probe-sdt-binary/userspace-probe-sdt-binary
 /tests/utils/testapp/gen-ns-events/gen-ns-events
+/tests/utils/babeltrace.sh
 
 # man pages
 /doc/man/*.1
diff --git a/configure.ac b/configure.ac
index 4e186d471..86307f81a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -283,6 +283,13 @@ AC_ARG_WITH([babeltrace2-bin],
 	[BABELTRACE2_BIN=''])
 AC_SUBST([BABELTRACE2_BIN])
 
+AC_ARG_WITH([babeltrace-test-bin],
+	AS_HELP_STRING([--with-babeltrace-test-bin],
+	[Location of the babeltrace2 viewer executable (including the filename) to use for tests]),
+	[BABELTRACE_TEST_BIN="$withval"],
+	[BABELTRACE_TEST_BIN=''])
+AC_SUBST([BABELTRACE_TEST_BIN])
+
 AC_ARG_WITH([consumerd32-bin],
 	AS_HELP_STRING([--with-consumerd32-bin],
 	[Location of the 32-bit consumerd executable (including the filename)]),
@@ -350,6 +357,7 @@ AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD32_LIBDIR], "$CONSUMERD32_LIBDIR", [Search f
 AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD64_LIBDIR], "$CONSUMERD64_LIBDIR", [Search for consumerd 64-bit libraries in this location.])
 AC_DEFINE_UNQUOTED([CONFIG_BABELTRACE_BIN], "$BABELTRACE_BIN", [Location of the babeltrace viewer executable.])
 AC_DEFINE_UNQUOTED([CONFIG_BABELTRACE2_BIN], "$BABELTRACE2_BIN", [Location of the babeltrace2 viewer executable.])
+AC_DEFINE_UNQUOTED([CONFIG_BABELTRACE_TEST_BIN], "$BABELTRACE_TEST_BIN", [Location of the babeltrace2 viewer executable to use for tests.])
 AC_DEFINE_UNQUOTED([CONFIG_SESSIOND_BIN], "$SESSIOND_BIN", [Location of the sessiond executable.])
 AC_DEFINE_UNQUOTED([CONFIG_LTTNG_SYSTEM_RUNDIR], ["$LTTNG_SYSTEM_RUNDIR"], [LTTng system runtime directory])
 
@@ -1220,6 +1228,9 @@ AC_CONFIG_FILES([tests/regression/ust/python-logging/test_python_logging],[chmod
 AC_CONFIG_FILES([tests/perf/test_perf_raw],[chmod +x tests/perf/test_perf_raw])
 AC_CONFIG_FILES([tests/regression/ust/ust-dl/test_ust-dl],[chmod +x tests/regression/ust/ust-dl/test_ust-dl])
 
+# Inject BABELTRACE_BIN and test env script.
+AC_CONFIG_FILES([tests/utils/babeltrace.sh])
+
 AC_OUTPUT
 
 #
diff --git a/tests/regression/tools/exclusion/test_exclusion b/tests/regression/tools/exclusion/test_exclusion
index ce5e988e5..e5905f628 100755
--- a/tests/regression/tools/exclusion/test_exclusion
+++ b/tests/regression/tools/exclusion/test_exclusion
@@ -53,7 +53,7 @@ function dry_run
 	run_apps
 	stop_lttng_tracing_ok $SESSION_NAME
 
-	nb_events=$(babeltrace $trace_path | wc -l)
+	nb_events=$($BABELTRACE_BIN $trace_path | wc -l)
 	if [ "$nb_events" -ne "0" ]; then
 		ok 0 "Events were found during the dry run without exclusion"
 	else
diff --git a/tests/regression/tools/filtering/test_valid_filter b/tests/regression/tools/filtering/test_valid_filter
index 6d1009a48..f9c39d4bd 100755
--- a/tests/regression/tools/filtering/test_valid_filter
+++ b/tests/regression/tools/filtering/test_valid_filter
@@ -113,7 +113,7 @@ function test_valid_filter
 	# Destroy session
 	destroy_lttng_session_ok $SESSION_NAME
 
-	stats=`babeltrace $trace_path | $STATS_BIN --tracepoint $event_name`
+	stats=`$BABELTRACE_BIN $trace_path | $STATS_BIN --tracepoint $event_name`
 
 	rm -rf $trace_path
 
diff --git a/tests/regression/tools/streaming/test_high_throughput_limits b/tests/regression/tools/streaming/test_high_throughput_limits
index 352cf9aa6..23f67a8e6 100755
--- a/tests/regression/tools/streaming/test_high_throughput_limits
+++ b/tests/regression/tools/streaming/test_high_throughput_limits
@@ -130,7 +130,7 @@ function validate_event_count
 	TEMP_FILE=$(mktemp)
 	TEMP_FILE_2=$(mktemp)
 
-	traced=$(babeltrace $TRACE_PATH 2>/dev/null | wc -l)
+	traced=$($BABELTRACE_BIN $TRACE_PATH 2>/dev/null | wc -l)
 	babeltrace $TRACE_PATH >/dev/null 2>$TEMP_FILE_2
 
 	cat $TEMP_FILE_2 | cut -f4 -d " " >$TEMP_FILE
diff --git a/tests/regression/tools/tracefile-limits/test_tracefile_count b/tests/regression/tools/tracefile-limits/test_tracefile_count
index b44de63c0..af80f8605 100755
--- a/tests/regression/tools/tracefile-limits/test_tracefile_count
+++ b/tests/regression/tools/tracefile-limits/test_tracefile_count
@@ -124,7 +124,7 @@ function test_tracefile_count_limit ()
 
 	# Validate tracing data
 
-	stats=`babeltrace $trace_path | $STATS_BIN --tracepoint $event_name`
+	stats=`$BABELTRACE_BIN $trace_path | $STATS_BIN --tracepoint $event_name`
 
 	validate_min_max "$stats" "intfield" "[0-9]+" "$expected_max"
 	ok $? "Trace validation - intfield"
diff --git a/tests/regression/ust/baddr-statedump/test_baddr-statedump.py b/tests/regression/ust/baddr-statedump/test_baddr-statedump.py
index 026f08444..f255d3e2a 100644
--- a/tests/regression/ust/baddr-statedump/test_baddr-statedump.py
+++ b/tests/regression/ust/baddr-statedump/test_baddr-statedump.py
@@ -44,7 +44,7 @@ stop_session(session_info)
 
 # Check for statedump events in the resulting trace
 try:
-    babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 except FileNotFoundError:
     bail("Could not open babeltrace. Please make sure it is installed.", session_info)
 
diff --git a/tests/regression/ust/blocking/test_blocking b/tests/regression/ust/blocking/test_blocking
index abd50d459..ea6ed07cf 100755
--- a/tests/regression/ust/blocking/test_blocking
+++ b/tests/regression/ust/blocking/test_blocking
@@ -123,7 +123,7 @@ function test_ust_blocking_no_discard()
 	destroy_lttng_session_ok $SESSION_NAME
 	stop_lttng_sessiond
 
-	nr_events=$(babeltrace $TRACE_PATH 2>/dev/null | wc -l)
+	nr_events=$($BABELTRACE_BIN $TRACE_PATH 2>/dev/null | wc -l)
 
 	test $nr_events -eq $NUM_EVENT
 	ok $? "No event lost with UST blocking mode: found $nr_events expect $NUM_EVENT"
diff --git a/tests/regression/ust/buffers-pid/test_buffers_pid b/tests/regression/ust/buffers-pid/test_buffers_pid
index 59f218c85..17cc783f9 100755
--- a/tests/regression/ust/buffers-pid/test_buffers_pid
+++ b/tests/regression/ust/buffers-pid/test_buffers_pid
@@ -98,7 +98,7 @@ test_before_multiple_apps() {
 		rm -f ${file_sync_before_last}_${i}
 	done
 
-	out=$(babeltrace $TRACE_PATH | grep $EVENT_NAME | wc -l)
+	out=$($BABELTRACE_BIN $TRACE_PATH | grep $EVENT_NAME | wc -l)
 	if [ $out -eq 0 ]; then
 		fail "Trace validation"
 		diag "No event(s) found. We are supposed to have at least one."
@@ -165,7 +165,7 @@ test_before_app() {
 	rm -f ${file_sync_after_first}
 	rm -f ${file_sync_before_last}
 
-	out=$(babeltrace $TRACE_PATH | grep $EVENT_NAME | wc -l)
+	out=$($BABELTRACE_BIN $TRACE_PATH | grep $EVENT_NAME | wc -l)
 	if [ $out -eq 0 ]; then
 		fail "Trace validation"
 		diag "No event(s) found. We are supposed to have at least one."
diff --git a/tests/regression/ust/daemon/test_daemon.py b/tests/regression/ust/daemon/test_daemon.py
index 0351f1d21..03adb6c80 100644
--- a/tests/regression/ust/daemon/test_daemon.py
+++ b/tests/regression/ust/daemon/test_daemon.py
@@ -57,7 +57,7 @@ if daemon_process_return_code != 0:
 stop_session(session_info)
 
 try:
-    babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE)
+    babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE)
 except FileNotFoundError:
     bail("Could not open babeltrace. Please make sure it is installed.")
 
diff --git a/tests/regression/ust/exit-fast/test_exit-fast.py b/tests/regression/ust/exit-fast/test_exit-fast.py
index f61d540b3..1a4702b34 100644
--- a/tests/regression/ust/exit-fast/test_exit-fast.py
+++ b/tests/regression/ust/exit-fast/test_exit-fast.py
@@ -49,7 +49,7 @@ stop_session(session_info)
 
 # Check both events (normal exit and suicide messages) are present in the resulting trace
 try:
-    babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 except FileNotFoundError:
     bail("Could not open babeltrace. Please make sure it is installed.")
 
diff --git a/tests/regression/ust/fork/test_fork.py b/tests/regression/ust/fork/test_fork.py
index 4cb721f38..e08f2c106 100644
--- a/tests/regression/ust/fork/test_fork.py
+++ b/tests/regression/ust/fork/test_fork.py
@@ -52,7 +52,7 @@ stop_session(session_info)
 
 # Check both events (normal exit and suicide messages) are present in the resulting trace
 try:
-    babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 except FileNotFoundError:
     bail("Could not open babeltrace. Please make sure it is installed.", session_info)
 
diff --git a/tests/regression/ust/high-throughput/test_high_throughput b/tests/regression/ust/high-throughput/test_high_throughput
index a6dbdc758..57504656d 100755
--- a/tests/regression/ust/high-throughput/test_high_throughput
+++ b/tests/regression/ust/high-throughput/test_high_throughput
@@ -53,7 +53,7 @@ stop_lttng_sessiond
 TEMP_FILE=$(mktemp)
 TEMP_FILE_2=$(mktemp)
 
-traced=$(babeltrace $TRACE_PATH 2>/dev/null | wc -l)
+traced=$($BABELTRACE_BIN $TRACE_PATH 2>/dev/null | wc -l)
 babeltrace $TRACE_PATH >/dev/null 2>$TEMP_FILE_2
 
 cat $TEMP_FILE_2 | cut -f4 -d " " >$TEMP_FILE
diff --git a/tests/regression/ust/libc-wrapper/test_libc-wrapper.py b/tests/regression/ust/libc-wrapper/test_libc-wrapper.py
index f56fa50de..95e5db781 100644
--- a/tests/regression/ust/libc-wrapper/test_libc-wrapper.py
+++ b/tests/regression/ust/libc-wrapper/test_libc-wrapper.py
@@ -41,7 +41,7 @@ stop_session(session_info)
 
 # Check for malloc events in the resulting trace
 try:
-    babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 except FileNotFoundError:
     bail("Could not open babeltrace. Please make sure it is installed.", session_info)
 
diff --git a/tests/regression/ust/linking/test_linking.py b/tests/regression/ust/linking/test_linking.py
index 21941f0d2..28d4f52ce 100644
--- a/tests/regression/ust/linking/test_linking.py
+++ b/tests/regression/ust/linking/test_linking.py
@@ -133,7 +133,7 @@ for executable in test_executables:
         continue
 
     try:
-        babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+        babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
     except FileNotFoundError:
         bail("Could not open babeltrace. Please make sure it is installed.")
 
diff --git a/tests/regression/ust/low-throughput/test_low_throughput b/tests/regression/ust/low-throughput/test_low_throughput
index 16ef27347..33e6ba280 100755
--- a/tests/regression/ust/low-throughput/test_low_throughput
+++ b/tests/regression/ust/low-throughput/test_low_throughput
@@ -47,7 +47,7 @@ stop_lttng_sessiond
 last_val=0
 out=0
 
-babeltrace $TRACE_PATH | while read event;
+$BABELTRACE_BIN $TRACE_PATH | while read event;
 do
 	val=$(echo $event | cut -f10 -d" ")
 	val=${val%?}
diff --git a/tests/regression/ust/multi-session/test_multi_session b/tests/regression/ust/multi-session/test_multi_session
index ba73b7d20..013937285 100755
--- a/tests/regression/ust/multi-session/test_multi_session
+++ b/tests/regression/ust/multi-session/test_multi_session
@@ -40,7 +40,7 @@ test_multi_session() {
 	for i in `seq 0 3`; do
 		stop_lttng_tracing_ok "$SESSION_NAME-$i"
 		destroy_lttng_session_ok "$SESSION_NAME-$i"
-		out=$(babeltrace "$TRACE_PATH/$i" | grep "$EVENT_NAMEi$i" | wc -l)
+		out=$($BABELTRACE_BIN "$TRACE_PATH/$i" | grep "$EVENT_NAMEi$i" | wc -l)
 		if [ $out -ne $NR_ITER ]; then
 			fail "Trace validation of $SESSION_NAME-$i"
 			diag "No events found."
diff --git a/tests/regression/ust/periodical-metadata-flush/test_periodical_metadata_flush b/tests/regression/ust/periodical-metadata-flush/test_periodical_metadata_flush
index 848fc2f3e..2aa086837 100755
--- a/tests/regression/ust/periodical-metadata-flush/test_periodical_metadata_flush
+++ b/tests/regression/ust/periodical-metadata-flush/test_periodical_metadata_flush
@@ -68,7 +68,7 @@ function validate_trace()
 {
 	local out
 
-	out=$(babeltrace $TRACE_PATH | grep $EVENT_NAME | wc -l)
+	out=$($BABELTRACE_BIN $TRACE_PATH | grep $EVENT_NAME | wc -l)
 	if [ $out -eq 0 ]; then
 		fail "Trace validation"
 		diag "No event(s) found. We are supposed to have at least one."
diff --git a/tests/regression/ust/type-declarations/test_type_declarations.py b/tests/regression/ust/type-declarations/test_type_declarations.py
index 62eda73a3..a92545064 100644
--- a/tests/regression/ust/type-declarations/test_type_declarations.py
+++ b/tests/regression/ust/type-declarations/test_type_declarations.py
@@ -43,7 +43,7 @@ stop_session(session_info)
 
 # Check event fields using type declarations are present
 try:
-    babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 except FileNotFoundError:
     bail("Could not open babeltrace. Please make sure it is installed.")
 
diff --git a/tests/regression/ust/ust-dl/test_ust-dl.py b/tests/regression/ust/ust-dl/test_ust-dl.py
index 96509c7cf..3fc999111 100644
--- a/tests/regression/ust/ust-dl/test_ust-dl.py
+++ b/tests/regression/ust/ust-dl/test_ust-dl.py
@@ -52,7 +52,7 @@ stop_session(session_info)
 
 # Check for dl events in the resulting trace
 try:
-    babeltrace_process = subprocess.Popen(["babeltrace", session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    babeltrace_process = subprocess.Popen([os.environ['BABELTRACE_BIN'], session_info.trace_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 except FileNotFoundError:
     bail("Could not open babeltrace. Please make sure it is installed.", session_info)
 
diff --git a/tests/utils/babeltrace.sh.in b/tests/utils/babeltrace.sh.in
new file mode 100644
index 000000000..380559029
--- /dev/null
+++ b/tests/utils/babeltrace.sh.in
@@ -0,0 +1,28 @@
+user_defined_bt_test="@BABELTRACE_TEST_BIN@"
+user_defined_bt1="@BABELTRACE_BIN@"
+user_defined_bt2="@BABELTRACE2_BIN@"
+
+if [ -n "${user_defined_bt2}" ]; then
+	bt2_bin="${user_defined_bt2}"
+else
+	bt2_bin="babeltrace2"
+fi
+
+if [ -n "${user_defined_bt1}" ]; then
+	bt1_bin="${user_defined_bt1}"
+else
+	bt1_bin="babeltrace"
+fi
+
+# Use user-defined babeltrace test binary if specified. Else fallback
+# on using babeltrace2 if found, else fallback on babeltrace if found.
+
+if [ -n "${user_defined_bt_test}" ]; then
+	BABELTRACE_BIN="${user_defined_bt_test}"
+elif command -v "${bt2_bin}"; then
+	BABELTRACE_BIN="${bt2_bin}"
+elif command -v "${bt1_bin}"; then
+	BABELTRACE_BIN="${bt1_bin}"
+else
+	echo "Failed to find Babeltrace binaries: ${bt2_bin} ${bt1_bin}"
+fi
diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh
index 0583b5c19..1a5f7fc5c 100644
--- a/tests/utils/utils.sh
+++ b/tests/utils/utils.sh
@@ -12,10 +12,11 @@ CONSUMERD_MATCH=".*lttng-consumerd.*"
 RELAYD_BIN="lttng-relayd"
 RELAYD_MATCH=".*lttng-relayd.*"
 LTTNG_BIN="lttng"
-BABELTRACE_BIN="babeltrace"
 OUTPUT_DEST=/dev/null
 ERROR_OUTPUT_DEST=/dev/null
 
+source $TESTDIR/utils/babeltrace.sh
+
 # Minimal kernel version supported for session daemon tests
 KERNEL_MAJOR_VERSION=2
 KERNEL_MINOR_VERSION=6
-- 
2.11.0

^ permalink raw reply related

* Re: [PATCH] ASoC: img-i2s-out: Fix runtime PM imbalance on error
From: Mark Brown @ 2020-05-29 16:51 UTC (permalink / raw)
  To: Dinghao Liu, kjlu
  Cc: alsa-devel, linux-kernel, Kuninori Morimoto, Greg Kroah-Hartman,
	Liam Girdwood, Takashi Iwai, Thomas Gleixner, Allison Randal
In-Reply-To: <20200529012230.5863-1-dinghao.liu@zju.edu.cn>

On Fri, 29 May 2020 09:22:28 +0800, Dinghao Liu wrote:
> pm_runtime_get_sync() increments the runtime PM usage counter even
> the call returns an error code. Thus a pairing decrement is needed
> on the error handling path to keep the counter balanced.

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/1] ASoC: img-i2s-out: Fix runtime PM imbalance on error
      commit: 65bd91dd6957390c42a0491b9622cf31a2cdb140

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

^ permalink raw reply

* Re: [PATCH] ASoC: SOF: Intel: Baytrail: fix 'defined but not used' warnings
From: Mark Brown @ 2020-05-29 16:51 UTC (permalink / raw)
  To: Pierre-Louis Bossart, alsa-devel; +Cc: tiwai, Stephen Rothwell
In-Reply-To: <20200529150408.17236-1-pierre-louis.bossart@linux.intel.com>

On Fri, 29 May 2020 10:04:08 -0500, Pierre-Louis Bossart wrote:
> With the allmodconfig option, CONFIG_SND_SOC_SOF_BAYTRAIL is disabled
> due to mutual exclusion with the legacy driver. This generates
> 'defined by not used' warnings.
> 
> suspend/resume/remove are only supported for Baytrail for now, so move
> the code under the CONFIG_SND_SOC_SOF_BAYTRAIL checks.

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/1] ASoC: SOF: Intel: Baytrail: fix 'defined but not used' warnings
      commit: af89e7dac521f5e087b6b2706bb0623107f74c83

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

^ permalink raw reply

* [MPTCP] Re: [PATCH v2 mptcp-next] mptcp: add receive buffer auto-tuning
From: Christoph Paasch @ 2020-05-29 16:56 UTC (permalink / raw)
  To: mptcp 

[-- Attachment #1: Type: text/plain, Size: 11415 bytes --]

On 05/29/20 - 11:17, Florian Westphal wrote:
> When mptcp is used, userspace doesn't read from the tcp (subflow)
> socket but from the parent (mptcp) socket receive queue.
> 
> skbs are moved from the subflow socket to the mptcp rx queue either from
> 'data_ready' callback (if mptcp socket can be locked), a work queue, or
> the socket receive function.
> 
> This means tcp_rcv_space_adjust() is never called and thus no receive
> buffer size auto-tuning is done.
> 
> An earlier (not merged) patch added tcp_rcv_space_adjust() calls to the
> function that moves skbs from subflow to mptcp socket.
> While this enabled autotuning, it also meant tuning was done even if
> userspace was reading the mptcp socket very slowly.
> 
> This adds mptcp_rcv_space_adjust() and calls it after userspace has
> read data from the mptcp socket rx queue.
> 
> Its very similar to tcp_rcv_space_adjust, with two differences:
> 
> 1. The rtt estimate is the largest one observed on a subflow
> 2. The rcvbuf size and window clamp of all subflows is adjusted
>    to the mptcp-level rcvbuf.
> 
> Otherwise, we get spurious drops at tcp (subflow) socket level if
> the skbs are not moved to the mptcp socket fast enough and reduced
> throughput..
> 
> Before:
> time mptcp_connect.sh -t -f $((4*1024*1024)) -d 300 -l 0.01% -r 0 -e "" -m mmap
> [..]
> ns4 MPTCP -> ns3 (10.0.3.2:10108      ) MPTCP   (duration 40562ms) [ OK ]
> ns4 MPTCP -> ns3 (10.0.3.2:10109      ) TCP     (duration  5415ms) [ OK ]
> ns4 TCP   -> ns3 (10.0.3.2:10110      ) MPTCP   (duration  5413ms) [ OK ]
> ns4 MPTCP -> ns3 (dead:beef:3::2:10111) MPTCP   (duration 41331ms) [ OK ]
> ns4 MPTCP -> ns3 (dead:beef:3::2:10112) TCP     (duration  5415ms) [ OK ]
> ns4 TCP   -> ns3 (dead:beef:3::2:10113) MPTCP   (duration  5714ms) [ OK ]
> Time: 846 seconds
> 
> After:
> ns4 MPTCP -> ns3 (10.0.3.2:10108      ) MPTCP   (duration  5417ms) [ OK ]
> ns4 MPTCP -> ns3 (10.0.3.2:10109      ) TCP     (duration  5429ms) [ OK ]
> ns4 TCP   -> ns3 (10.0.3.2:10110      ) MPTCP   (duration  5418ms) [ OK ]
> ns4 MPTCP -> ns3 (dead:beef:3::2:10111) MPTCP   (duration  5423ms) [ OK ]
> ns4 MPTCP -> ns3 (dead:beef:3::2:10112) TCP     (duration  5715ms) [ OK ]
> ns4 TCP   -> ns3 (dead:beef:3::2:10113) MPTCP   (duration  5415ms) [ OK ]
> Time: 275 seconds
> 
> Signed-off-by: Florian Westphal <fw(a)strlen.de>
> ---
>  changes in v2:
>   - cache last rtt_us value used
>   - don't store seq value
>   - reset 'copied' to 0 when starting
>     new measurement to simplify adjust function.
>   - make sure space.space is not inited to 0, else div-by-0 occurs
> 
>  net/mptcp/protocol.c | 124 ++++++++++++++++++++++++++++++++++++++++---
>  net/mptcp/protocol.h |   6 +++
>  2 files changed, 123 insertions(+), 7 deletions(-)
> 
> diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
> index b2c8b57e7942..3827e4004877 100644
> --- a/net/mptcp/protocol.c
> +++ b/net/mptcp/protocol.c
> @@ -207,13 +207,6 @@ static bool __mptcp_move_skbs_from_subflow(struct mptcp_sock *msk,
>  		return false;
>  	}
>  
> -	if (!(sk->sk_userlocks & SOCK_RCVBUF_LOCK)) {
> -		int rcvbuf = max(ssk->sk_rcvbuf, sk->sk_rcvbuf);
> -
> -		if (rcvbuf > sk->sk_rcvbuf)
> -			sk->sk_rcvbuf = rcvbuf;
> -	}
> -
>  	tp = tcp_sk(ssk);
>  	do {
>  		u32 map_remaining, offset;
> @@ -928,6 +921,100 @@ static int __mptcp_recvmsg_mskq(struct mptcp_sock *msk,
>  	return copied;
>  }
>  
> +/* receive buffer autotuning.  See tcp_rcv_space_adjust for more information.
> + *
> + * Only difference: Use highest rtt estimate of the subflows in use.
> + */
> +static void mptcp_rcv_space_adjust(struct mptcp_sock *msk, int copied)
> +{
> +	struct mptcp_subflow_context *subflow;
> +	struct sock *sk = (struct sock *)msk;
> +	u32 time, advmss = 1;
> +	u64 rtt_us, mstamp;
> +
> +	sock_owned_by_me(sk);
> +
> +	if (copied <= 0)
> +		return;
> +
> +	msk->rcvq_space.copied += copied;
> +
> +	mstamp = div_u64(tcp_clock_ns(), NSEC_PER_USEC);
> +	time = tcp_stamp_us_delta(mstamp, msk->rcvq_space.time);
> +
> +	rtt_us = msk->rcvq_space.rtt_us;
> +	if (rtt_us && time < (rtt_us >> 3))
> +		return;
> +
> +	rtt_us = 0;
> +	mptcp_for_each_subflow(msk, subflow) {
> +		const struct tcp_sock *tp;
> +		u64 sf_rtt_us;
> +		u32 sf_advmss;
> +
> +		tp = tcp_sk(mptcp_subflow_tcp_sock(subflow));
> +
> +		sf_rtt_us = READ_ONCE(tp->rcv_rtt_est.rtt_us);
> +		sf_advmss = READ_ONCE(tp->advmss);
> +
> +		rtt_us = max(sf_rtt_us, rtt_us);
> +		advmss = max(sf_advmss, advmss);
> +	}
> +
> +	msk->rcvq_space.rtt_us = rtt_us;
> +	if (time < (rtt_us >> 3) || rtt_us == 0)
> +		return;
> +
> +	if (msk->rcvq_space.copied <= msk->rcvq_space.space)
> +		goto new_measure;
> +
> +	if (sock_net(sk)->ipv4.sysctl_tcp_moderate_rcvbuf &&
> +	    !(sk->sk_userlocks & SOCK_RCVBUF_LOCK)) {
> +		int rcvmem, rcvbuf;
> +		u64 rcvwin, grow;
> +
> +		rcvwin = ((u64)msk->rcvq_space.copied << 1) + 16 * advmss;
> +
> +		grow  = rcvwin *(msk->rcvq_space.copied - msk->rcvq_space.space);
> +
> +		do_div(grow, msk->rcvq_space.space);
> +		rcvwin += (grow << 1);
> +
> +		rcvmem = SKB_TRUESIZE(advmss + MAX_TCP_HEADER);
> +		while (tcp_win_from_space(sk, rcvmem) < advmss)
> +			rcvmem += 128;
> +
> +		do_div(rcvwin, advmss);
> +		rcvbuf = min_t(u64, rcvwin * rcvmem,
> +			       sock_net(sk)->ipv4.sysctl_tcp_rmem[2]);
> +
> +		if (rcvbuf > sk->sk_rcvbuf) {
> +			u32 window_clamp;
> +
> +			window_clamp = tcp_win_from_space(sk, rcvbuf);
> +			WRITE_ONCE(sk->sk_rcvbuf, rcvbuf);
> +
> +			/* Make subflows follow along.  If we do not do this, we
> +			 * get drops at subflow level if skbs can't be moved to
> +			 * the mptcp rx queue fast enough (announced rcv_win can
> +			 * exceed ssk->sk_rcvbuf).
> +			 */
> +			mptcp_for_each_subflow(msk, subflow) {
> +				struct sock *ssk;
> +
> +				ssk = mptcp_subflow_tcp_sock(subflow);
> +				WRITE_ONCE(ssk->sk_rcvbuf, rcvbuf);
> +				tcp_sk(ssk)->window_clamp = window_clamp;
> +			}
> +		}
> +	}
> +
> +	msk->rcvq_space.space = msk->rcvq_space.copied;
> +new_measure:
> +	msk->rcvq_space.copied = 0;
> +	msk->rcvq_space.time = mstamp;
> +}
> +
>  static bool __mptcp_move_skbs(struct mptcp_sock *msk)
>  {
>  	unsigned int moved = 0;
> @@ -1050,6 +1137,8 @@ static int mptcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
>  		set_bit(MPTCP_DATA_READY, &msk->flags);
>  	}
>  out_err:
> +	mptcp_rcv_space_adjust(msk, copied);
> +
>  	release_sock(sk);
>  	return copied;
>  }
> @@ -1280,6 +1369,7 @@ static int mptcp_init_sock(struct sock *sk)
>  		return ret;
>  
>  	sk_sockets_allocated_inc(sk);
> +	sk->sk_rcvbuf = sock_net(sk)->ipv4.sysctl_tcp_rmem[1];
>  	sk->sk_sndbuf = sock_net(sk)->ipv4.sysctl_tcp_wmem[2];
>  
>  	return 0;
> @@ -1475,6 +1565,23 @@ struct sock *mptcp_sk_clone(const struct sock *sk,
>  	return nsk;
>  }
>  
> +static void mptcp_rcv_space_init(struct mptcp_sock *msk, struct sock *ssk)
> +{
> +	struct tcp_sock *tp = tcp_sk(ssk);
> +
> +	msk->rcvq_space.copied = 0;
> +	msk->rcvq_space.rtt_us = 0;
> +
> +	tcp_mstamp_refresh(tp);
> +	msk->rcvq_space.time = tp->tcp_mstamp;
> +
> +	/* initial rcv_space offering made to peer */
> +	msk->rcvq_space.space = min_t(u32, tp->rcv_wnd,
> +				      TCP_INIT_CWND * tp->advmss);
> +	if (msk->rcvq_space.space == 0)
> +		msk->rcvq_space.space = TCP_INIT_CWND * TCP_MSS_DEFAULT;
> +}
> +
>  static struct sock *mptcp_accept(struct sock *sk, int flags, int *err,
>  				 bool kern)
>  {
> @@ -1524,6 +1631,7 @@ static struct sock *mptcp_accept(struct sock *sk, int flags, int *err,
>  		list_add(&subflow->node, &msk->conn_list);
>  		inet_sk_state_store(newsk, TCP_ESTABLISHED);
>  
> +		mptcp_rcv_space_init(msk, ssk);
>  		bh_unlock_sock(new_mptcp_sock);
>  
>  		__MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_MPCAPABLEPASSIVEACK);
> @@ -1678,6 +1786,8 @@ void mptcp_finish_connect(struct sock *ssk)
>  	atomic64_set(&msk->snd_una, msk->write_seq);
>  
>  	mptcp_pm_new_connection(msk, 0);
> +
> +	mptcp_rcv_space_init(msk, ssk);
>  }

Need to also handle the fallback to TCP-case. Otherwise there is a
divide-by-0:

server login: [ 1998.037445] divide error: 0000 [#1] SMP KASAN PTI
[ 1998.038321] CPU: 3 PID: 1671 Comm: http Kdump: loaded Not tainted 5.7.0-rc6.mptcp #43
[ 1998.039599] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
[ 1998.041526] RIP: 0010:mptcp_recvmsg+0x6ae/0xa40
[ 1998.042370] Code: 44 89 e0 89 da 4c 8b 44 24 08 45 8d b4 24 40 03 00 00 c1 e0 04 48 8d 0c 50 89 d8 49 8d b8 60 04 00 00 31 d2 29 e8 48 0f af c1 <48> f7 f5 4c 8d 2c 41 e8 66 6b 6a ff 4c 8b 44 24 08 41 8b a8 64
[ 1998.045394] RSP: 0018:ffff8881174bf968 EFLAGS: 00010206
[ 1998.046237] RAX: 0000000140764000 RBX: 000000000000b500 RCX: 000000000001c540
[ 1998.047397] RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffffffff8291b460
[ 1998.048564] RBP: 0000000000000000 R08: ffffffff8291b000 R09: ffffffff82f1d0c8
[ 1998.049724] R10: ffffffff82f1d0c3 R11: fffffbfff05e3a18 R12: 00000000000005b4
[ 1998.050872] R13: 000000000022b368 R14: 00000000000008f4 R15: ffff888118740000
[ 1998.052059] FS:  00007f081dd1ea40(0000) GS:ffff88811b980000(0000) knlGS:0000000000000000
[ 1998.053357] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 1998.054189] CR2: 000055b5364a7000 CR3: 0000000115d5e000 CR4: 00000000000006e0
[ 1998.055231] Call Trace:
[ 1998.057574]  inet_recvmsg+0x207/0x220
[ 1998.058832]  sock_read_iter+0x1fe/0x230
[ 1998.060656]  new_sync_read+0x33a/0x350
[ 1998.063934]  vfs_read+0xbc/0x1b0
[ 1998.064466]  ksys_read+0x11b/0x150
[ 1998.066975]  do_syscall_64+0xbc/0x790
[ 1998.070940]  entry_SYSCALL_64_after_hwframe+0x44/0xa9


This diff fixes it:

========
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 2820da7c787a..a5b36a4c04f7 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1533,7 +1533,7 @@ struct sock *mptcp_sk_clone(const struct sock *sk,
 	return nsk;
 }

-static void mptcp_rcv_space_init(struct mptcp_sock *msk, struct sock *ssk)
+void mptcp_rcv_space_init(struct mptcp_sock *msk, struct sock *ssk)
 {
 	struct tcp_sock *tp = tcp_sk(ssk);

diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
index e53410830ec3..cef677ebfd09 100644
--- a/net/mptcp/protocol.h
+++ b/net/mptcp/protocol.h
@@ -383,6 +383,7 @@ struct sock *mptcp_sk_clone(const struct sock *sk,
 void mptcp_get_options(const struct sk_buff *skb,
 		       struct mptcp_options_received *mp_opt);

+void mptcp_rcv_space_init(struct mptcp_sock *msk, struct sock *ssk);
 void mptcp_finish_connect(struct sock *sk);
 void mptcp_data_ready(struct sock *sk, struct sock *ssk);
 bool mptcp_finish_join(struct sock *sk);
diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
index 7222503b9583..0bf2b9d575fb 100644
--- a/net/mptcp/subflow.c
+++ b/net/mptcp/subflow.c
@@ -259,8 +259,10 @@ static void subflow_finish_connect(struct sock *sk, const struct sk_buff *skb)
 				MPTCP_MIB_MPCAPABLEACTIVEFALLBACK);
 	}

-	if (mptcp_check_fallback(sk))
+	if (mptcp_check_fallback(sk)) {
+		mptcp_rcv_space_init(mptcp_sk(parent), sk);
 		return;
+	}

 	if (subflow->mp_capable) {
 		pr_debug("subflow=%p, remote_key=%llu", mptcp_subflow_ctx(sk),

^ permalink raw reply related

* [PATCH] hw/display/cirrus_vga: Fix code mis-indentation
From: Philippe Mathieu-Daudé @ 2020-05-29 16:54 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-trivial, Peter Maydell, Gerd Hoffmann,
	Philippe Mathieu-Daudé

While replacing fprintf() by qemu_log_mask() in commit
2b55f4d3504, we incorrectly used a 'tab = 4 spaces'
alignment, leading to misindented new code. Fix now.

Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 hw/display/cirrus_vga.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c
index 92c197cdde..212d6f5e61 100644
--- a/hw/display/cirrus_vga.c
+++ b/hw/display/cirrus_vga.c
@@ -1032,9 +1032,9 @@ static void cirrus_bitblt_start(CirrusVGAState * s)
         } else {
 	    if (s->cirrus_blt_mode & CIRRUS_BLTMODE_TRANSPARENTCOMP) {
 		if (s->cirrus_blt_pixelwidth > 2) {
-            qemu_log_mask(LOG_GUEST_ERROR,
-                          "cirrus: src transparent without colorexpand "
-                          "must be 8bpp or 16bpp\n");
+                    qemu_log_mask(LOG_GUEST_ERROR,
+                                  "cirrus: src transparent without colorexpand "
+                                  "must be 8bpp or 16bpp\n");
 		    goto bitblt_ignore;
 		}
 		if (s->cirrus_blt_mode & CIRRUS_BLTMODE_BACKWARDS) {
-- 
2.21.3



^ permalink raw reply related

* Re: Subject: [PATCH v2] ASoC: soc-pcm: fix BE dai not hw_free and shutdown during mixer update
From: Mark Brown @ 2020-05-29 16:51 UTC (permalink / raw)
  To: lgirdwood, 朱灿灿, perex, linux-kernel, tiwai,
	alsa-devel
  Cc: kernel, 王文虎, trivial
In-Reply-To: <ALMAWwB5CP9aAcKXCU5FzqqF.1.1590747164172.Hmail.zhucancan@vivo.com>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1369 bytes --]

On Fri, 29 May 2020 18:12:44 +0800 (GMT+08:00), 朱灿灿 wrote:
> FE state is SND_SOC_DPCM_STATE_PREPARE now, BE1 is
> used by FE.
> 
> Later when new BE2 is added to FE by mixer update,
> it will call dpcm_run_update_startup() to update
> BE2's state, but unfortunately BE2 .prepare() meets
> error, it will disconnect all non started BE.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/1] Subject: [PATCH v2] ASoC: soc-pcm: fix BE dai not hw_free and shutdown during mixer update
      commit: 68f8043ed13e636c6f04ac1c0831e17681d392ab

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

^ permalink raw reply

* [PATCH] hw/display/cirrus_vga: Fix code mis-indentation
From: Philippe Mathieu-Daudé @ 2020-05-29 16:54 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-trivial, Gerd Hoffmann, Philippe Mathieu-Daudé,
	Peter Maydell

While replacing fprintf() by qemu_log_mask() in commit
2b55f4d3504, we incorrectly used a 'tab = 4 spaces'
alignment, leading to misindented new code. Fix now.

Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 hw/display/cirrus_vga.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c
index 92c197cdde..212d6f5e61 100644
--- a/hw/display/cirrus_vga.c
+++ b/hw/display/cirrus_vga.c
@@ -1032,9 +1032,9 @@ static void cirrus_bitblt_start(CirrusVGAState * s)
         } else {
 	    if (s->cirrus_blt_mode & CIRRUS_BLTMODE_TRANSPARENTCOMP) {
 		if (s->cirrus_blt_pixelwidth > 2) {
-            qemu_log_mask(LOG_GUEST_ERROR,
-                          "cirrus: src transparent without colorexpand "
-                          "must be 8bpp or 16bpp\n");
+                    qemu_log_mask(LOG_GUEST_ERROR,
+                                  "cirrus: src transparent without colorexpand "
+                                  "must be 8bpp or 16bpp\n");
 		    goto bitblt_ignore;
 		}
 		if (s->cirrus_blt_mode & CIRRUS_BLTMODE_BACKWARDS) {
-- 
2.21.3



^ permalink raw reply related

* Re: [PATCH] dt-bindings: sound: tlv320adcx140: Fix dt-binding-check issue
From: Mark Brown @ 2020-05-29 16:51 UTC (permalink / raw)
  To: Dan Murphy, lgirdwood, perex, robh, tiwai
  Cc: devicetree, alsa-devel, linux-kernel
In-Reply-To: <20200528144711.18065-1-dmurphy@ti.com>

On Thu, 28 May 2020 09:47:11 -0500, Dan Murphy wrote:
> Fix dt-binding-check issue
> 
> ti,gpi-config:0:0: 4 is greater than the maximum of 1
> ti,gpi-config:0:1: 5 is greater than the maximum of 1
> ti,gpi-config:0:2: 6 is greater than the maximum of 1
> ti,gpi-config:0:3: 7 is greater than the maximum of 1

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/1] ASoC: tlv320adcx140: Fix dt-binding-check issue
      commit: c8b47d63ad8755780b6b70dbe57ab8333bcc4a0f

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

^ permalink raw reply

* Re: [PATCH] ASoC: fsl_asrc_dma: Fix dma_chan leak when config DMA channel failed
From: Mark Brown @ 2020-05-29 16:51 UTC (permalink / raw)
  To: Xiyu Yang, Liam Girdwood, Takashi Iwai, Timur Tabi, linux-kernel,
	Jaroslav Kysela, alsa-devel, linuxppc-dev, Xiubo Li,
	Fabio Estevam, Nicolin Chen
  Cc: Xin Tan, yuanxzhang, kjlu
In-Reply-To: <1590415966-52416-1-git-send-email-xiyuyang19@fudan.edu.cn>

On Mon, 25 May 2020 22:12:46 +0800, Xiyu Yang wrote:
> fsl_asrc_dma_hw_params() invokes dma_request_channel() or
> fsl_asrc_get_dma_channel(), which returns a reference of the specified
> dma_chan object to "pair->dma_chan[dir]" with increased refcnt.
> 
> The reference counting issue happens in one exception handling path of
> fsl_asrc_dma_hw_params(). When config DMA channel failed for Back-End,
> the function forgets to decrease the refcnt increased by
> dma_request_channel() or fsl_asrc_get_dma_channel(), causing a refcnt
> leak.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/1] ASoC: fsl_asrc_dma: Fix dma_chan leak when config DMA channel failed
      commit: 36124fb19f1ae68a500cd76a76d40c6e81bee346

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

^ permalink raw reply

* Re: [PATCH] Enable class-D silence and clock detections
From: Mark Brown @ 2020-05-29 16:50 UTC (permalink / raw)
  To: lgirdwood, derek.fang@realtek.com
  Cc: oder_chiou, jack.yu, alsa-devel, lars, kent_chen, shumingf, flove
In-Reply-To: <1590750310-30085-1-git-send-email-derek.fang@realtek.com>

On Fri, 29 May 2020 19:05:10 +0800, derek.fang@realtek.com wrote:
> Avoid noise under bypass boost mode.

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/1] ASoC: rt1015: Enable class-D silence and clock detections
      commit: 2aec8ccc1a814ca41b70710e1960afd034d1e3ab

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

^ permalink raw reply

* [igt-dev] ✗ Fi.CI.IGT: failure for i915/gem_exec_balancer: Randomise bonded submission (rev3)
From: Patchwork @ 2020-05-29 16:53 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev
In-Reply-To: <20200529135802.1286704-1-chris@chris-wilson.co.uk>

== Series Details ==

Series: i915/gem_exec_balancer: Randomise bonded submission (rev3)
URL   : https://patchwork.freedesktop.org/series/77701/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_8553_full -> IGTPW_4624_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_4624_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_4624_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_4624_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_busy@close-race:
    - shard-hsw:          [PASS][1] -> [TIMEOUT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-hsw2/igt@gem_busy@close-race.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-hsw4/igt@gem_busy@close-race.html

  * {igt@gem_exec_balancer@bonded-dual} (NEW):
    - shard-iclb:         NOTRUN -> [FAIL][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-iclb2/igt@gem_exec_balancer@bonded-dual.html
    - shard-tglb:         NOTRUN -> [FAIL][4]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-tglb1/igt@gem_exec_balancer@bonded-dual.html

  * {igt@gem_exec_balancer@bonded-pair} (NEW):
    - shard-kbl:          NOTRUN -> [FAIL][5] +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-kbl4/igt@gem_exec_balancer@bonded-pair.html

  
New tests
---------

  New tests have been introduced between CI_DRM_8553_full and IGTPW_4624_full:

### New IGT tests (2) ###

  * igt@gem_exec_balancer@bonded-dual:
    - Statuses : 3 fail(s) 2 pass(s) 2 skip(s)
    - Exec time: [0.0, 33.09] s

  * igt@gem_exec_balancer@bonded-pair:
    - Statuses : 1 fail(s) 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 32.42] s

  

Known issues
------------

  Here are the changes found in IGTPW_4624_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [PASS][6] -> [FAIL][7] ([i915#1899])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-iclb2/igt@i915_pm_dc@dc6-psr.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-iclb4/igt@i915_pm_dc@dc6-psr.html

  * igt@kms_cursor_crc@pipe-b-cursor-64x21-onscreen:
    - shard-kbl:          [PASS][8] -> [FAIL][9] ([i915#54])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-kbl7/igt@kms_cursor_crc@pipe-b-cursor-64x21-onscreen.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-kbl3/igt@kms_cursor_crc@pipe-b-cursor-64x21-onscreen.html
    - shard-apl:          [PASS][10] -> [FAIL][11] ([i915#54])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-apl3/igt@kms_cursor_crc@pipe-b-cursor-64x21-onscreen.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-apl6/igt@kms_cursor_crc@pipe-b-cursor-64x21-onscreen.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
    - shard-hsw:          [PASS][12] -> [DMESG-FAIL][13] ([i915#1926])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-hsw2/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-hsw1/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-kbl:          [PASS][14] -> [INCOMPLETE][15] ([i915#155])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-kbl1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-kbl1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_plane@plane-position-covered-pipe-c-planes:
    - shard-kbl:          [PASS][16] -> [DMESG-WARN][17] ([i915#165] / [i915#78])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-kbl6/igt@kms_plane@plane-position-covered-pipe-c-planes.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-kbl2/igt@kms_plane@plane-position-covered-pipe-c-planes.html

  * igt@kms_plane_alpha_blend@pipe-a-coverage-vs-premult-vs-constant:
    - shard-apl:          [PASS][18] -> [FAIL][19] ([fdo#108145] / [i915#265] / [i915#95])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-apl7/igt@kms_plane_alpha_blend@pipe-a-coverage-vs-premult-vs-constant.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-apl3/igt@kms_plane_alpha_blend@pipe-a-coverage-vs-premult-vs-constant.html

  * igt@kms_psr2_su@frontbuffer:
    - shard-tglb:         [PASS][20] -> [SKIP][21] ([i915#1911])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-tglb5/igt@kms_psr2_su@frontbuffer.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-tglb1/igt@kms_psr2_su@frontbuffer.html
    - shard-iclb:         [PASS][22] -> [SKIP][23] ([fdo#109642] / [fdo#111068])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-iclb4/igt@kms_psr2_su@frontbuffer.html

  * igt@kms_psr@psr2_cursor_render:
    - shard-iclb:         [PASS][24] -> [SKIP][25] ([fdo#109441])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-iclb2/igt@kms_psr@psr2_cursor_render.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-iclb5/igt@kms_psr@psr2_cursor_render.html

  * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
    - shard-iclb:         [PASS][26] -> [INCOMPLETE][27] ([i915#1078] / [i915#1185])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-iclb6/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-iclb3/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html

  * igt@kms_vblank@pipe-b-accuracy-idle:
    - shard-glk:          [PASS][28] -> [TIMEOUT][29] ([i915#1958]) +1 similar issue
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-glk6/igt@kms_vblank@pipe-b-accuracy-idle.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-glk8/igt@kms_vblank@pipe-b-accuracy-idle.html

  
#### Possible fixes ####

  * igt@gem_softpin@noreloc-s3:
    - shard-kbl:          [INCOMPLETE][30] ([i915#1959]) -> [PASS][31]
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-kbl6/igt@gem_softpin@noreloc-s3.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-kbl1/igt@gem_softpin@noreloc-s3.html

  * igt@i915_pm_dc@dc3co-vpb-simulation:
    - shard-tglb:         [SKIP][32] ([i915#1904]) -> [PASS][33]
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-tglb2/igt@i915_pm_dc@dc3co-vpb-simulation.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-tglb8/igt@i915_pm_dc@dc3co-vpb-simulation.html

  * igt@i915_pm_dc@dc5-psr:
    - shard-iclb:         [FAIL][34] ([i915#1899]) -> [PASS][35]
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-iclb4/igt@i915_pm_dc@dc5-psr.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-iclb1/igt@i915_pm_dc@dc5-psr.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-kbl:          [DMESG-WARN][36] ([i915#180]) -> [PASS][37] +2 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-kbl1/igt@i915_suspend@fence-restore-untiled.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-kbl3/igt@i915_suspend@fence-restore-untiled.html

  * {igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-c}:
    - shard-kbl:          [DMESG-WARN][38] ([i915#165] / [i915#180]) -> [PASS][39]
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-kbl2/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-c.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-kbl1/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-c.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-toggle:
    - shard-glk:          [DMESG-FAIL][40] ([i915#1925] / [i915#1926]) -> [PASS][41]
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-glk7/igt@kms_cursor_legacy@cursora-vs-flipb-toggle.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-glk1/igt@kms_cursor_legacy@cursora-vs-flipb-toggle.html

  * igt@kms_draw_crc@draw-method-xrgb8888-blt-untiled:
    - shard-kbl:          [FAIL][42] ([i915#177] / [i915#52] / [i915#54] / [i915#93] / [i915#95]) -> [PASS][43] +1 similar issue
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-kbl4/igt@kms_draw_crc@draw-method-xrgb8888-blt-untiled.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-kbl3/igt@kms_draw_crc@draw-method-xrgb8888-blt-untiled.html

  * igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-untiled:
    - shard-apl:          [FAIL][44] ([i915#52] / [i915#54] / [i915#95]) -> [PASS][45] +1 similar issue
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-apl6/igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-untiled.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-apl6/igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-untiled.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-iclb:         [INCOMPLETE][46] ([i915#1185]) -> [PASS][47]
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-iclb3/igt@kms_fbcon_fbt@psr-suspend.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-iclb6/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_hdmi_inject@inject-audio:
    - shard-tglb:         [SKIP][48] ([i915#433]) -> [PASS][49]
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-tglb2/igt@kms_hdmi_inject@inject-audio.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-tglb2/igt@kms_hdmi_inject@inject-audio.html

  * igt@kms_panel_fitting@atomic-fastset:
    - shard-tglb:         [FAIL][50] ([i915#83]) -> [PASS][51]
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-tglb5/igt@kms_panel_fitting@atomic-fastset.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-tglb5/igt@kms_panel_fitting@atomic-fastset.html
    - shard-iclb:         [FAIL][52] ([i915#83]) -> [PASS][53]
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-iclb2/igt@kms_panel_fitting@atomic-fastset.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-iclb8/igt@kms_panel_fitting@atomic-fastset.html

  * igt@kms_plane_cursor@pipe-a-overlay-size-256:
    - shard-apl:          [FAIL][54] ([i915#1559] / [i915#95]) -> [PASS][55]
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-apl2/igt@kms_plane_cursor@pipe-a-overlay-size-256.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-apl3/igt@kms_plane_cursor@pipe-a-overlay-size-256.html

  * igt@kms_plane_cursor@pipe-a-viewport-size-64:
    - shard-kbl:          [FAIL][56] ([i915#1559] / [i915#93] / [i915#95]) -> [PASS][57] +1 similar issue
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-kbl4/igt@kms_plane_cursor@pipe-a-viewport-size-64.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-kbl4/igt@kms_plane_cursor@pipe-a-viewport-size-64.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [SKIP][58] ([fdo#109441]) -> [PASS][59] +1 similar issue
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-iclb4/igt@kms_psr@psr2_primary_mmap_cpu.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-apl:          [DMESG-WARN][60] ([i915#180]) -> [PASS][61] +1 similar issue
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-apl4/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-apl1/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
    - shard-kbl:          [INCOMPLETE][62] ([i915#155]) -> [PASS][63]
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-kbl3/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-kbl6/igt@kms_vblank@pipe-b-ts-continuation-suspend.html

  * igt@perf@mi-rpc:
    - shard-hsw:          [INCOMPLETE][64] ([i915#61]) -> [PASS][65]
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-hsw5/igt@perf@mi-rpc.html
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-hsw7/igt@perf@mi-rpc.html

  * {igt@perf@polling-parameterized}:
    - shard-hsw:          [FAIL][66] ([i915#1542]) -> [PASS][67]
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-hsw6/igt@perf@polling-parameterized.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-hsw7/igt@perf@polling-parameterized.html

  
#### Warnings ####

  * igt@i915_pm_dc@dc6-psr:
    - shard-tglb:         [FAIL][68] ([i915#454]) -> [FAIL][69] ([i915#1899])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-tglb1/igt@i915_pm_dc@dc6-psr.html
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-tglb1/igt@i915_pm_dc@dc6-psr.html

  * igt@kms_color_chamelium@pipe-c-ctm-0-75:
    - shard-glk:          [SKIP][70] ([fdo#109271] / [fdo#111827]) -> [TIMEOUT][71] ([i915#1366] / [i915#1958])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-glk7/igt@kms_color_chamelium@pipe-c-ctm-0-75.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-glk8/igt@kms_color_chamelium@pipe-c-ctm-0-75.html

  * igt@kms_content_protection@lic:
    - shard-apl:          [TIMEOUT][72] ([i915#1319]) -> [TIMEOUT][73] ([i915#1319] / [i915#1635])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-apl7/igt@kms_content_protection@lic.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-apl2/igt@kms_content_protection@lic.html

  * igt@kms_content_protection@uevent:
    - shard-kbl:          [FAIL][74] ([i915#357]) -> [FAIL][75] ([i915#357] / [i915#93] / [i915#95])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-kbl3/igt@kms_content_protection@uevent.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-kbl6/igt@kms_content_protection@uevent.html
    - shard-apl:          [FAIL][76] ([i915#357]) -> [FAIL][77] ([i915#357] / [i915#95])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-apl4/igt@kms_content_protection@uevent.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-apl1/igt@kms_content_protection@uevent.html

  * igt@kms_plane_lowres@pipe-b-tiling-yf:
    - shard-hsw:          [SKIP][78] ([fdo#109271] / [i915#1927]) -> [SKIP][79] ([fdo#109271])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-hsw2/igt@kms_plane_lowres@pipe-b-tiling-yf.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-hsw2/igt@kms_plane_lowres@pipe-b-tiling-yf.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [SKIP][80] ([fdo#109642] / [fdo#111068]) -> [FAIL][81] ([i915#608])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8553/shard-iclb7/igt@kms_psr2_su@page_flip.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/shard-iclb2/igt@kms_psr2_su@page_flip.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1078]: https://gitlab.freedesktop.org/drm/intel/issues/1078
  [i915#1185]: https://gitlab.freedesktop.org/drm/intel/issues/1185
  [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
  [i915#1366]: https://gitlab.freedesktop.org/drm/intel/issues/1366
  [i915#1519]: https://gitlab.freedesktop.org/drm/intel/issues/1519
  [i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
  [i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
  [i915#1559]: https://gitlab.freedesktop.org/drm/intel/issues/1559
  [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
  [i915#165]: https://gitlab.freedesktop.org/drm/intel/issues/165
  [i915#177]: https://gitlab.freedesktop.org/drm/intel/issues/177
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1899]: https://gitlab.freedesktop.org/drm/intel/issues/1899
  [i915#1904]: https://gitlab.freedesktop.org/drm/intel/issues/1904
  [i915#1911]: https://gitlab.freedesktop.org/drm/intel/issues/1911
  [i915#1925]: https://gitlab.freedesktop.org/drm/intel/issues/1925
  [i915#1926]: https://gitlab.freedesktop.org/drm/intel/issues/1926
  [i915#1927]: https://gitlab.freedesktop.org/drm/intel/issues/1927
  [i915#1958]: https://gitlab.freedesktop.org/drm/intel/issues/1958
  [i915#1959]: https://gitlab.freedesktop.org/drm/intel/issues/1959
  [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#357]: https://gitlab.freedesktop.org/drm/intel/issues/357
  [i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#52]: https://gitlab.freedesktop.org/drm/intel/issues/52
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#58]: https://gitlab.freedesktop.org/drm/intel/issues/58
  [i915#608]: https://gitlab.freedesktop.org/drm/intel/issues/608
  [i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61
  [i915#78]: https://gitlab.freedesktop.org/drm/intel/issues/78
  [i915#83]: https://gitlab.freedesktop.org/drm/intel/issues/83
  [i915#93]: https://gitlab.freedesktop.org/drm/intel/issues/93
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
  [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133


Participating hosts (11 -> 8)
------------------------------

  Missing    (3): pig-skl-6260u pig-glk-j5005 pig-icl-1065g7 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5683 -> IGTPW_4624
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_8553: 9f1b8b4fcb466dc714b1f825fd93e3bbd29c7de6 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4624: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/index.html
  IGT_5683: 757b6e72d546fd2dbc3801a73796d67b0854021b @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4624/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply

* Re: [PATCH v3 0/2] ASoC topology header parsing refinement
From: Mark Brown @ 2020-05-29 16:51 UTC (permalink / raw)
  To: Keyon Jie, alsa-devel
  Cc: cezary.rojewski, tiwai, ranjani.sridharan, pierre-louis.bossart,
	sathya.prakash.m.r, vamshi.krishna.gopal
In-Reply-To: <20200527022801.336264-1-yang.jie@linux.intel.com>

On Wed, 27 May 2020 10:27:59 +0800, Keyon Jie wrote:
> This small series is to optimize the header logging during the topology
> parsing. This is verified work fine on both SOF and SST drivers.
> 
> Change History:
> v3:
> - Remove using the separated soc_pass_load() function and merge it to the
>   soc_tplg_load_header() body.
> - Add more Tested-by tags.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/2] ASoC: topology: refine and log the header in the correct pass
      commit: 82ed7418736ded9c24529987d5aa9a39c185e4e9
[2/2] ASoC: topology: remove the redundant pass checks
      commit: c2cbd0a7194d05be501fe2cb48bcd10ff468aa87

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

^ permalink raw reply

* Re: [PATCH v3 0/2] regmap: provide simple bitops and use them in a driver
From: Mark Brown @ 2020-05-29 16:51 UTC (permalink / raw)
  To: Bartosz Golaszewski, Sean Wang, John Crispin, Matthias Brugger,
	Mark Lee, Jakub Kicinski, David S . Miller
  Cc: Stephane Le Provost, Fabien Parent, Pedro Tsai, linux-kernel,
	Bartosz Golaszewski, linux-mediatek, Andrew Perepech, netdev,
	linux-arm-kernel
In-Reply-To: <20200528154503.26304-1-brgl@bgdev.pl>

On Thu, 28 May 2020 17:45:01 +0200, Bartosz Golaszewski wrote:
> I noticed that oftentimes I use regmap_update_bits() for simple bit
> setting or clearing. In this case the fourth argument is superfluous as
> it's always 0 or equal to the mask argument.
> 
> This series proposes to add simple bit operations for setting, clearing
> and testing specific bits with regmap.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git for-next

Thanks!

[1/1] regmap: provide helpers for simple bit operations
      commit: aa2ff9dbaeddabb5ad166db5f9f1a0580a8bbba8

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply

* Re: [PATCH] watchdog: test_bit() => watchdog_active()
From: Guenter Roeck @ 2020-05-29 16:52 UTC (permalink / raw)
  To: Bumsik Kim; +Cc: wim, corbet, linux-kernel, linux-watchdog, Bumsik Kim
In-Reply-To: <20200529012428.84684-1-k.bumsik@gmail.com>

On Fri, May 29, 2020 at 10:24:28AM +0900, Bumsik Kim wrote:
> Use the dedicated function watchdog_active()
> instead of the generic test_bit() function.
> 
> It is done using the following Coccinelle script:
> 
> @@
> identifier wdd;
> @@
> - test_bit(WDOG_ACTIVE, &wdd->status)
> + watchdog_active(wdd)
> 
> Signed-off-by: Bumsik Kim <k.bumsik@gmail.com>

Reviewed-by: Guenter Roeck <linux@roeck-us.net>

> ---
>  drivers/watchdog/watchdog_dev.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c
> index 7e4cd34a8c20..3ae608d78af2 100644
> --- a/drivers/watchdog/watchdog_dev.c
> +++ b/drivers/watchdog/watchdog_dev.c
> @@ -916,7 +916,7 @@ static int watchdog_release(struct inode *inode, struct file *file)
>  	 * or if WDIOF_MAGICCLOSE is not set. If nowayout was set then
>  	 * watchdog_stop will fail.
>  	 */
> -	if (!test_bit(WDOG_ACTIVE, &wdd->status))
> +	if (!watchdog_active(wdd))
>  		err = 0;
>  	else if (test_and_clear_bit(_WDOG_ALLOW_RELEASE, &wd_data->status) ||
>  		 !(wdd->info->options & WDIOF_MAGICCLOSE))
> -- 
> 2.26.2
> 

^ permalink raw reply

* Re: [PATCH 0/2] Fix regulators coupling for Exynos5800
From: Mark Brown @ 2020-05-29 16:52 UTC (permalink / raw)
  To: linux-pm, Dmitry Osipenko, Marek Szyprowski, linux-kernel
  Cc: Krzysztof Kozlowski, Stephen Boyd, Bartlomiej Zolnierkiewicz,
	Viresh Kumar, Nishanth Menon, Chanwoo Choi, linux-samsung-soc,
	Liam Girdwood, Lucas Stach, peron.clem, Rafael Wysocki,
	Vincent Guittot
In-Reply-To: <20200529124940.10675-1-m.szyprowski@samsung.com>

On Fri, 29 May 2020 14:49:38 +0200, Marek Szyprowski wrote:
> This patchset is another attempt to fix the regulator coupling on
> Exynos5800/5422 SoCs. Here are links to the previous attempts:
> 
> https://lore.kernel.org/linux-samsung-soc/20191008101709.qVNy8eijBi0LynOteWFMnTg4GUwKG599n6OyYoX1Abs@z/
> https://lore.kernel.org/lkml/20191017102758.8104-1-m.szyprowski@samsung.com/
> https://lore.kernel.org/linux-pm/cover.1589528491.git.viresh.kumar@linaro.org/
> https://lore.kernel.org/linux-pm/20200528131130.17984-1-m.szyprowski@samsung.com/
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next

Thanks!

[1/1] regulator: extract voltage balancing code to the separate function
      commit: 752db83a5dfd4fd3a0624b9ab440ed947fa003ca

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

^ permalink raw reply

* Re: [PATCH v3 0/2] regmap: provide simple bitops and use them in a driver
From: Mark Brown @ 2020-05-29 16:51 UTC (permalink / raw)
  To: Bartosz Golaszewski, Sean Wang, John Crispin, Matthias Brugger,
	Mark Lee, Jakub Kicinski, David S . Miller
  Cc: Stephane Le Provost, Fabien Parent, Pedro Tsai, linux-kernel,
	Bartosz Golaszewski, linux-mediatek, Andrew Perepech, netdev,
	linux-arm-kernel
In-Reply-To: <20200528154503.26304-1-brgl@bgdev.pl>

On Thu, 28 May 2020 17:45:01 +0200, Bartosz Golaszewski wrote:
> I noticed that oftentimes I use regmap_update_bits() for simple bit
> setting or clearing. In this case the fourth argument is superfluous as
> it's always 0 or equal to the mask argument.
> 
> This series proposes to add simple bit operations for setting, clearing
> and testing specific bits with regmap.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git for-next

Thanks!

[1/1] regmap: provide helpers for simple bit operations
      commit: aa2ff9dbaeddabb5ad166db5f9f1a0580a8bbba8

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: [PATCH] regulator: core: Add regulator bypass trace points
From: Mark Brown @ 2020-05-29 16:52 UTC (permalink / raw)
  To: Charles Keepax; +Cc: patches, linux-kernel, lgirdwood
In-Reply-To: <20200529152216.9671-1-ckeepax@opensource.cirrus.com>

On Fri, 29 May 2020 16:22:16 +0100, Charles Keepax wrote:
> Add new trace points for the start and end of enabling bypass on a
> regulator, to allow monitoring of when regulators are moved into bypass
> and how long that takes.

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next

Thanks!

[1/1] regulator: core: Add regulator bypass trace points
      commit: 48325655290869dbcdc356478bde4606d79d600e

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

^ permalink raw reply

* Re: 50% regression in NFS direct WRITE throughput
From: Chuck Lever @ 2020-05-29 16:51 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: Linux NFS Mailing List
In-Reply-To: <B3EFAB24-4786-4D83-B17A-4EF5168266A8@oracle.com>



> On May 29, 2020, at 9:02 AM, Chuck Lever <chuck.lever@oracle.com> wrote:
> 
> While testing other things, I noticed that several iozone tests showed
> a significant regression in large direct WRITE performance with little
> to no drop in small WRITE IOPS.
> 
> One example (NFS/RDMA on FDR InfiniBand):
> 
> 	Machine = Linux manet.1015granger.net 5.7.0-rc7-00033-g8de6ca0614d4 #1071 SMP
> 	CPU utilization Resolution = 0.000 seconds.
> 	CPU utilization Excel chart enabled
> 	File size set to 1048576 kB
> 	Record Size 256 kB
> 	O_DIRECT feature enabled
> 	Command line used: /home/cel/bin/iozone -M -+u -i0 -i1 -s1g -r256k -t12 -I
> 	Output is in kBytes/sec
> 	Time Resolution = 0.000001 seconds.
> 	Processor cache size set to 1024 kBytes.
> 	Processor cache line size set to 32 bytes.
> 	File stride size set to 17 * record size.
> 	Throughput test with 12 processes
> 	Each process writes a 1048576 kByte file in 256 kByte records
> 
> 	Children see throughput for 12 initial writers 	= 2430898.66 kB/sec
> 	Parent sees throughput for 12 initial writers 	= 2425731.85 kB/sec
> 	Min throughput per process 			=  202025.03 kB/sec
> 	Max throughput per process 			=  202899.33 kB/sec
> 	Avg throughput per process 			=  202574.89 kB/sec
> 	Min xfer 					= 1044224.00 kB
> 	CPU Utilization: Wall time    5.179    CPU time    2.020    CPU utilization  39.00 %
> 
> 	Children see throughput for 12 rewriters 	= 2431774.06 kB/sec
> 	Parent sees throughput for 12 rewriters 	= 2431230.83 kB/sec
> 	Min throughput per process 			=  202230.42 kB/sec
> 	Max throughput per process 			=  202926.08 kB/sec
> 	Avg throughput per process 			=  202647.84 kB/sec
> 	Min xfer 					= 1045248.00 kB
> 	CPU utilization: Wall time    5.169    CPU time    2.015    CPU utilization  38.99 %
> 
> These numbers are half what they usually are.
> 
> I bisected between v5.6 and v5.7-rc7, and it terminated on 1f28476dcb98
> ("NFS: Fix O_DIRECT commit verifier handling").
> 
> This commit doesn't revert cleanly -- the kernel won't build after it is
> reverted, so I can't easily do the obvious test to confirm the bisect
> result.
> 
> I intend to look into the exact pathology, but wanted to get this regression
> reported first, in case someone has a thought about what is slowing things
> down.

The observed behavior is that the client sends every WRITE twice: once as
an UNSTABLE WRITE plus a COMMIT, and once as a FILE_SYNC WRITE.

This is because the nfs_write_match_verf() check in nfs_direct_commit_complete()
fails for every on-the-wire WRITE.

Buffered writes use nfs_write_completion(), which sets req->wb_verf correctly.

Direct writes use nfs_direct_write_completion(), which does not set req->wb_verf
at all. This leaves req->wb_verf set to all zeroes for every direct WRITE,
and thus nfs_direct_commit_completion always requests a resend.

I confirmed all this by adding temporary tracepoints in the write completion
paths. Seems like the fix is to duplicate the guts of nfs_write_completion() in
nfs_direct_write_completion() (or refactor the guts into helpers that both
functions invoke).


--
Chuck Lever




^ permalink raw reply

* Re: [PATCH v3 0/2] regmap: provide simple bitops and use them in a driver
From: Mark Brown @ 2020-05-29 16:51 UTC (permalink / raw)
  To: Bartosz Golaszewski, Sean Wang, John Crispin, Matthias Brugger,
	Mark Lee, Jakub Kicinski, David S . Miller
  Cc: linux-arm-kernel, linux-mediatek, Pedro Tsai, Andrew Perepech,
	netdev, linux-kernel, Bartosz Golaszewski, Fabien Parent,
	Stephane Le Provost
In-Reply-To: <20200528154503.26304-1-brgl@bgdev.pl>

On Thu, 28 May 2020 17:45:01 +0200, Bartosz Golaszewski wrote:
> I noticed that oftentimes I use regmap_update_bits() for simple bit
> setting or clearing. In this case the fourth argument is superfluous as
> it's always 0 or equal to the mask argument.
> 
> This series proposes to add simple bit operations for setting, clearing
> and testing specific bits with regmap.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git for-next

Thanks!

[1/1] regmap: provide helpers for simple bit operations
      commit: aa2ff9dbaeddabb5ad166db5f9f1a0580a8bbba8

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

^ permalink raw reply

* Re: [PATCH v2] ASoC: reduce verbosity of error messages for sof-dai and sof-link
From: Mark Brown @ 2020-05-29 16:50 UTC (permalink / raw)
  To: Pierre-Louis Bossart, alsa-devel; +Cc: tiwai, Kuninori Morimoto
In-Reply-To: <20200529123613.13447-1-pierre-louis.bossart@linux.intel.com>

On Fri, 29 May 2020 07:36:13 -0500, Pierre-Louis Bossart wrote:
> Recent changes result in multiple dmesg traces such as:
> 
> [ 14.410435] Audio Port: ASoC: error at snd_soc_link_startup on Audio
> Port: 1
> 
> [ 14.410446] sst-mfld-platform sst-mfld-platform: ASoC: error at
> snd_soc_dai_startup on media-cpu-dai: 1
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/1] ASoC: reduce verbosity of error messages for sof-dai and sof-link
      commit: 28ff437a44fa618a14bc7402c7472b278af4c9eb

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

^ permalink raw reply


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.