All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Zanussi <zanussi@kernel.org>
To: Julia Cartwright <julia@ni.com>
Cc: linux-rt-users@vger.kernel.org, rostedt@goodmis.org,
	tglx@linutronix.de, C.Emde@osadl.org, jkacur@redhat.com,
	bigeasy@linutronix.de, daniel.wagner@siemens.com
Subject: Re: [PATCH 09/15] squashfs: make use of local lock in multi_cpu decompressor
Date: Tue, 14 Aug 2018 15:58:14 -0500	[thread overview]
Message-ID: <1534280294.30734.2.camel@kernel.org> (raw)
In-Reply-To: <20180814203621.GA9506@jcartwri.amer.corp.natinst.com>

Hi Julia,

On Tue, 2018-08-14 at 15:36 -0500, Julia Cartwright wrote:
> Hey Tom-
> 
> On Tue, Aug 14, 2018 at 01:54:02PM -0500, Tom Zanussi wrote:
> > v3.18.117-rt105 rt-stable review patch.  If anyone has any
> > objections,
> > please let me know.
> > 
> > ------------------
> > 
> > From: Julia Cartwright <julia@ni.com>
> > 
> > [ Upstream rt-devel 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: Tom Zanussi <tom.zanussi@linux.intel.com>
> > ---
> 
> [..]
> >  void *squashfs_decompressor_create(struct squashfs_sb_info *msblk,
> >  						void *comp_opts)
> >  {
> > @@ -79,10 +82,15 @@ int squashfs_decompress(struct squashfs_sb_info
> > *msblk, struct buffer_head **bh,
> >  {
> >  	struct squashfs_stream __percpu *percpu =
> >  			(struct squashfs_stream __percpu *) msblk-
> > >stream;
> > -	struct squashfs_stream *stream = get_cpu_ptr(percpu);
> > -	int res = msblk->decompressor->decompress(msblk, stream-
> > >stream, bh, b,
> > -		offset, length, output);
> > -	put_cpu_ptr(stream);
> > +	struct squashfs_stream *stream;
> > +	int res;
> > +
> > +	stream = get_locked_ptr(stream_lock, percpu);
> 
> This patch depends on the introduction of the {get,put}_locked_ptr()
> per-cpu access variants.  So, you'll want to also pull commit
> 
>  3d45cf23db4f76cd3 ("locallock: provide {get,put}_locked_ptr()
> variants")
> 
> From rt-devel as well.
> 

Yep, missed that one - thought I had squashfs enabled, sigh.  Thanks
for pointing that out, Julia.

Tom

  reply	other threads:[~2018-08-14 23:47 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-14 18:53 [PATCH 00/15] [ANNOUNCE] 3.18.117-rt105-rc2 Tom Zanussi
2018-08-14 18:53 ` [PATCH 01/15] sched: Remove TASK_ALL Tom Zanussi
2018-08-14 18:53 ` [PATCH 02/15] arm*: disable NEON in kernel mode Tom Zanussi
2018-08-14 18:53 ` [PATCH 03/15] posix-timers: move the rcu head out of the union Tom Zanussi
2018-08-14 18:53 ` [PATCH 04/15] tracing: Fix rcu splat from idle CPU on boot Tom Zanussi
2018-08-14 18:53 ` [PATCH 05/15] alarmtimer: Prevent live lock in alarm_cancel() Tom Zanussi
2018-08-14 18:53 ` [PATCH 06/15] locking: add types.h Tom Zanussi
2018-08-14 18:54 ` [PATCH 07/15] net: use task_struct instead of CPU number as the queue owner on -RT Tom Zanussi
2018-08-14 18:54 ` [PATCH 08/15] seqlock: provide the same ordering semantics as mainline Tom Zanussi
2018-08-14 18:54 ` [PATCH 09/15] squashfs: make use of local lock in multi_cpu decompressor Tom Zanussi
2018-08-14 20:36   ` Julia Cartwright
2018-08-14 20:58     ` Tom Zanussi [this message]
2018-08-14 18:54 ` [PATCH 10/15] Revert "fs, jbd: pull your plug when waiting for space" Tom Zanussi
2018-08-14 18:54 ` [PATCH 11/15] powerpc/vdso64: Use double word compare on pointers Tom Zanussi
2018-08-14 18:54 ` [PATCH 12/15] powerpc: ps3/device-init.c - adapt to completions using swait vs wait Tom Zanussi
2018-08-14 18:54 ` [PATCH 13/15] s390/mm: Fix missed tsk->pagefault_disabled conversion to pagefault_disable() Tom Zanussi
2018-08-14 18:54 ` [PATCH 14/15] um: Use POSIX ucontext_t instead of struct ucontext Tom Zanussi
2018-08-14 18:54 ` [PATCH 15/15] Linux 3.18.117-rt105-rc2 Tom Zanussi
  -- strict thread matches above, loose matches on Subject: below --
2018-08-02 22:25 [PATCH 00/15][ANNOUNCE] 3.18.117-rt105-rc1 Tom Zanussi
2018-08-02 22:25 ` [PATCH 09/15] squashfs: make use of local lock in multi_cpu decompressor Tom Zanussi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1534280294.30734.2.camel@kernel.org \
    --to=zanussi@kernel.org \
    --cc=C.Emde@osadl.org \
    --cc=bigeasy@linutronix.de \
    --cc=daniel.wagner@siemens.com \
    --cc=jkacur@redhat.com \
    --cc=julia@ni.com \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.