All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Alex Neronskiy <zakmagnus@chromium.org>
Cc: linux-kernel@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
	Don Zickus <dzickus@redhat.com>,
	Mandeep Singh Baines <msb@chromium.org>,
	Alex Neronskiy <zakmagnus@chromium.com>
Subject: Re: [PATCH v6 2/2] Output stall data in debugfs
Date: Thu, 11 Aug 2011 21:43:11 +0200	[thread overview]
Message-ID: <1313091791.8491.33.camel@twins> (raw)
In-Reply-To: 1312999364-21104-2-git-send-email-zakmagnus@chromium.org

zakmagnus seems to bounce, so who am I talking to anyway..

On Thu, 2011-08-11 at 21:35 +0200, Peter Zijlstra wrote:
> 
> static void show_stall_trace(struct seq_file *f, void *v)
> {
>         struct stall *s = f->private;
>         int i, idx = ACCESS_ONCE(s->idx);
> 
>         mutex_lock(&stall_mutex);
> 
>         raw_spin_lock(&s->lock[idx]);
>         seq_printf(f, "stall: %d\n", s->worst);
>         for (i = 0; i < s->trace[idx].nr_entries; i++) {
>                 seq_printf(f, "[<%pK>] %pS\n", 
>                         (void *)s->trace->entries[i],
>                         (void *)s->trace->entries[i]);
>         }
>         raw_spin_unlock(&s->lock[idx]);
> 
>         mutex_unlock(&stall_mutex);
> }
> 
> 
> Yes its racy on s->worst, but who cares (if you do care you can keep a
> copy in s->delay[idx] or so). Also, it might be better to not do the
> spinlock but simply use an atomic bitop to set an in-use flag, there is
> no reason to disable preemption over the seq_printf() loop. 

That also cures another problem you have, a seq_file buffer is only 1
page large, you should be using the seqfile iterator interface and print
one line at a time.. now clearly that won't work with preemption
disabled either.



  parent reply	other threads:[~2011-08-11 19:43 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-10 18:02 [PATCH v6 1/2] Track hard and soft "short lockups" or "stalls." Alex Neronskiy
2011-08-10 18:02 ` [PATCH v6 2/2] Output stall data in debugfs Alex Neronskiy
2011-08-11 18:48   ` Andi Kleen
2011-08-11 19:04     ` Don Zickus
2011-08-11 21:05       ` Andi Kleen
2011-08-11 19:13   ` Peter Zijlstra
2011-08-11 19:35   ` Peter Zijlstra
2011-08-11 20:10     ` Alex Neronskiy
2011-08-11 20:23       ` Peter Zijlstra
2011-08-11 20:31         ` Alex Neronskiy
2011-08-11 21:17           ` Peter Zijlstra
2011-08-11 22:02             ` Alex Neronskiy
2011-08-11 23:00             ` Mandeep Singh Baines
2011-08-12 12:14               ` Peter Zijlstra
2011-08-16 19:32                 ` Mandeep Singh Baines
2011-08-12  9:06     ` Ingo Molnar
2011-08-12 19:46       ` Alex Neronskiy
2011-08-11 19:43   ` Peter Zijlstra [this message]
2011-08-11 19:51     ` Alex Neronskiy
2011-08-11 19:57       ` Peter Zijlstra
2011-08-11 19:09 ` [PATCH v6 1/2] Track hard and soft "short lockups" or "stalls." Peter Zijlstra

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=1313091791.8491.33.camel@twins \
    --to=peterz@infradead.org \
    --cc=dzickus@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=msb@chromium.org \
    --cc=zakmagnus@chromium.com \
    --cc=zakmagnus@chromium.org \
    /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.