diff options
author | Otavio Salvador <otavio@ossystems.com.br> | 2017-11-09 11:34:59 -0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-12-04 17:14:32 +0000 |
commit | 56d01657934fe6e9e6c547fd58447c6a99a0779b (patch) | |
tree | a097267a29a6fd1fce3b375efed6e819fb875fb4 /meta/recipes-kernel/lttng/lttng-modules/0005-Fix-mmap-caches-aliased-on-virtual-addresses.patch | |
parent | 39193c6b30d34fd4c07e1a36581a1bd94fd76b29 (diff) | |
download | openembedded-core-56d01657934fe6e9e6c547fd58447c6a99a0779b.tar.gz |
lttng-modules: Upgrade to 2.9.5 release
This upgrade is critical as it fixes the support for Linux 4.14 LTS kernel.
The changlog is:
2017-10-05 LTTng modules 2.9.5
* Fix: update block instrumentation for 4.14 kernel
* Revert "Fix: update block instrumentation for kernel 4.14"
2017-10-03 (National Techies Day) LTTng modules 2.9.4
* Fix: version check error in btrfs instrumentation
* Fix: update btrfs instrumentation for kernel 4.14
* Fix: update writeback instrumentation for kernel 4.14
* Fix: update block instrumentation for kernel 4.14
* Fix: vmalloc wrapper on kernel < 2.6.38
* Fix: vmalloc wrapper on kernel >= 4.12
* Add kmalloc failover to vmalloc
* Fix: mmap: caches aliased on virtual addresses
* Fix: update ext4 instrumentation for kernel 4.13
* Fix: Sleeping function called from invalid context
* Fix: sched for v4.11.5-rt1
* Fix: handle missing ftrace header on v4.12
This also removes the previously backported patches as they are part
of 2.9.4 release and the missing fix is part of 2.9.5 release.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster@mvista.com>
Diffstat (limited to 'meta/recipes-kernel/lttng/lttng-modules/0005-Fix-mmap-caches-aliased-on-virtual-addresses.patch')
-rw-r--r-- | meta/recipes-kernel/lttng/lttng-modules/0005-Fix-mmap-caches-aliased-on-virtual-addresses.patch | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-mmap-caches-aliased-on-virtual-addresses.patch b/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-mmap-caches-aliased-on-virtual-addresses.patch deleted file mode 100644 index 7f25c6a709..0000000000 --- a/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-mmap-caches-aliased-on-virtual-addresses.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 90715ba61e3fa66c1bb438138c8716c6e72356f9 Mon Sep 17 00:00:00 2001 -From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> -Date: Tue, 19 Sep 2017 12:16:58 -0400 -Subject: [PATCH 5/8] Fix: mmap: caches aliased on virtual addresses -Organization: O.S. Systems Software LTDA. - -Some architectures (e.g. implementations of arm64) implement their -caches based on the virtual addresses (rather than physical address). -It has the upside of making the cache access faster (no TLB lookup -required to access the cache line), but the downside of requiring -virtual mappings (e.g. kernel vs user-space) to be aligned on the number -of bits used for cache aliasing. - -Perform dcache flushing for the entire sub-buffer in the get_subbuf -operation on those architectures, thus ensuring we don't end up with -cache aliasing issues. - -An alternative approach we could eventually take would be to create a -kernel mapping for the ring buffer that is aligned with the user-space -mapping. - -Upstream-Status: Backport [2.9.4] - -Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> ---- - lib/ringbuffer/ring_buffer_frontend.c | 44 +++++++++++++++++++++++++++++++++++ - 1 file changed, 44 insertions(+) - -diff --git a/lib/ringbuffer/ring_buffer_frontend.c b/lib/ringbuffer/ring_buffer_frontend.c -index dc1ee45..e77d789 100644 ---- a/lib/ringbuffer/ring_buffer_frontend.c -+++ b/lib/ringbuffer/ring_buffer_frontend.c -@@ -54,6 +54,7 @@ - #include <linux/delay.h> - #include <linux/module.h> - #include <linux/percpu.h> -+#include <asm/cacheflush.h> - - #include <wrapper/ringbuffer/config.h> - #include <wrapper/ringbuffer/backend.h> -@@ -1149,6 +1150,47 @@ void lib_ring_buffer_move_consumer(struct lib_ring_buffer *buf, - } - EXPORT_SYMBOL_GPL(lib_ring_buffer_move_consumer); - -+#if ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE -+static void lib_ring_buffer_flush_read_subbuf_dcache( -+ const struct lib_ring_buffer_config *config, -+ struct channel *chan, -+ struct lib_ring_buffer *buf) -+{ -+ struct lib_ring_buffer_backend_pages *pages; -+ unsigned long sb_bindex, id, i, nr_pages; -+ -+ if (config->output != RING_BUFFER_MMAP) -+ return; -+ -+ /* -+ * Architectures with caches aliased on virtual addresses may -+ * use different cache lines for the linear mapping vs -+ * user-space memory mapping. Given that the ring buffer is -+ * based on the kernel linear mapping, aligning it with the -+ * user-space mapping is not straightforward, and would require -+ * extra TLB entries. Therefore, simply flush the dcache for the -+ * entire sub-buffer before reading it. -+ */ -+ id = buf->backend.buf_rsb.id; -+ sb_bindex = subbuffer_id_get_index(config, id); -+ pages = buf->backend.array[sb_bindex]; -+ nr_pages = buf->backend.num_pages_per_subbuf; -+ for (i = 0; i < nr_pages; i++) { -+ struct lib_ring_buffer_backend_page *backend_page; -+ -+ backend_page = &pages->p[i]; -+ flush_dcache_page(pfn_to_page(backend_page->pfn)); -+ } -+} -+#else -+static void lib_ring_buffer_flush_read_subbuf_dcache( -+ const struct lib_ring_buffer_config *config, -+ struct channel *chan, -+ struct lib_ring_buffer *buf) -+{ -+} -+#endif -+ - /** - * lib_ring_buffer_get_subbuf - get exclusive access to subbuffer for reading - * @buf: ring buffer -@@ -1291,6 +1333,8 @@ retry: - buf->get_subbuf_consumed = consumed; - buf->get_subbuf = 1; - -+ lib_ring_buffer_flush_read_subbuf_dcache(config, chan, buf); -+ - return 0; - - nodata: --- -2.14.1 - |