squashfs: make use of local lock in multi_cpu decompressor
[ Upstream commit c160736542d7b3d67da32848d2f028b8e35730e5 ] Currently, the squashfs multi_cpu decompressor makes use of get_cpu_ptr()/put_cpu_ptr(), which unconditionally disable preemption during decompression. Because the workload is distributed across CPUs, all CPUs can observe a very high wakeup latency, which has been seen to be as much as 8000us. Convert this decompressor to make use of a local lock, which will allow execution of the decompressor with preemption-enabled, but also ensure concurrent accesses to the percpu compressor data on the local CPU will be serialized. Cc: stable-rt@vger.kernel.org Reported-by:Alexander Stein <alexander.stein@systec-electronic.com> Tested-by:
Alexander Stein <alexander.stein@systec-electronic.com> Signed-off-by:
Julia Cartwright <julia@ni.com> Signed-off-by:
Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by:
Steven Rostedt (VMware) <rostedt@goodmis.org>
Loading
Please sign in to comment