From: peterz@infradead.org (Peter Zijlstra)
To: linux-snps-arc@lists.infradead.org
Subject: [PATCH v2 18/19] ARC: [plat-eznps] replace sync with proper cpu barrier
Date: Tue, 17 Nov 2015 14:59:32 +0100 [thread overview]
Message-ID: <20151117135932.GA3816@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <564B2C50.3080401@synopsys.com>
On Tue, Nov 17, 2015@07:02:00PM +0530, Vineet Gupta wrote:
> > You should never report more than PERF_MAX_STACK_DEPTH thingies anyway,
> > so once you've done that many loops, you're good to bail, right?
>
> Yeah, although I need to ensure if arch code needs to check that. Plus the
> unwinder is also used for things like ps wchan, /proc/<pid>/stack, crash dump etc.
Ah, ok. On x86 we have a separate unwinder for perf. Trying to touch
userspace memory from NMI context is a tad tricky.
(imagine the NMI interrupting a page-fault and then itself triggering a
page-fault again)
> > You're likely to call this code from interrupt/NMI context, there is no
> > ^C or scheduling going to help you there.
>
> For perf case, but there are other uses of unwinder as described above.
>
> So in light of above, do u think that the cond_resched() + signal_pending check is
> not needed and the bail if over N iters will be fine !
It can't hurt, but you want to engineer it to be robust for the most
constrained environment, so I would say the bail over N iters had
better be robust, otherwise you're screwed anyhow ;-)
WARNING: multiple messages have this Message-ID (diff)
From: Peter Zijlstra <peterz@infradead.org>
To: Vineet Gupta <Vineet.Gupta1@synopsys.com>
Cc: gilf@ezchip.com, talz@ezchip.com, linux-kernel@vger.kernel.org,
cmetcalf@ezchip.com, Noam Camus <noamc@ezchip.com>,
linux-snps-arc@lists.infradead.org
Subject: Re: [PATCH v2 18/19] ARC: [plat-eznps] replace sync with proper cpu barrier
Date: Tue, 17 Nov 2015 14:59:32 +0100 [thread overview]
Message-ID: <20151117135932.GA3816@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <564B2C50.3080401@synopsys.com>
On Tue, Nov 17, 2015 at 07:02:00PM +0530, Vineet Gupta wrote:
> > You should never report more than PERF_MAX_STACK_DEPTH thingies anyway,
> > so once you've done that many loops, you're good to bail, right?
>
> Yeah, although I need to ensure if arch code needs to check that. Plus the
> unwinder is also used for things like ps wchan, /proc/<pid>/stack, crash dump etc.
Ah, ok. On x86 we have a separate unwinder for perf. Trying to touch
userspace memory from NMI context is a tad tricky.
(imagine the NMI interrupting a page-fault and then itself triggering a
page-fault again)
> > You're likely to call this code from interrupt/NMI context, there is no
> > ^C or scheduling going to help you there.
>
> For perf case, but there are other uses of unwinder as described above.
>
> So in light of above, do u think that the cond_resched() + signal_pending check is
> not needed and the bail if over N iters will be fine !
It can't hurt, but you want to engineer it to be robust for the most
constrained environment, so I would say the bail over N iters had
better be robust, otherwise you're screwed anyhow ;-)
next prev parent reply other threads:[~2015-11-17 13:59 UTC|newest]
Thread overview: 190+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-31 13:15 [PATCH v1 00/20] eznps a new ARC platform Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-10-31 13:15 ` [PATCH v1 01/20] Documentation: Add EZchip vendor to binding list Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-10-31 13:15 ` [PATCH v1 02/20] clocksource: Add NPS400 timers driver Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-11-01 20:44 ` Daniel Lezcano
2015-11-01 20:44 ` Daniel Lezcano
2015-11-02 7:57 ` Noam Camus
2015-11-02 7:57 ` Noam Camus
2015-11-02 11:03 ` Vineet Gupta
2015-11-02 11:03 ` Vineet Gupta
2015-11-03 15:18 ` Noam Camus
2015-11-03 15:18 ` Noam Camus
2015-10-31 13:15 ` [PATCH v1 03/20] irqchip: add nps Internal and external irqchips Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-10-31 13:15 ` [PATCH v1 04/20] ARC: Set vmalloc size from configuration Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-10-31 13:15 ` [PATCH v1 05/20] ARC: rwlock: disable interrupts in !LLSC variant Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-11-02 9:16 ` Peter Zijlstra
2015-11-02 9:16 ` Peter Zijlstra
2015-11-02 9:42 ` Vineet Gupta
2015-11-02 9:42 ` Vineet Gupta
2015-11-02 10:03 ` Peter Zijlstra
2015-11-02 10:03 ` Peter Zijlstra
2015-10-31 13:15 ` [PATCH v1 06/20] ARC: Mark cpu online only after it has executed the per cpu init hook Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-10-31 13:15 ` [PATCH v1 07/20] ARC: mm: use generic macros _BITUL() Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-11-02 6:23 ` Vineet Gupta
2015-11-02 6:23 ` Vineet Gupta
2015-11-02 6:27 ` Noam Camus
2015-11-02 6:27 ` Noam Camus
2015-10-31 13:15 ` [PATCH v1 08/20] ARC: Use res_service as entry point for secondaries Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-11-02 6:38 ` Vineet Gupta
2015-11-02 6:38 ` Vineet Gupta
2015-11-02 8:05 ` Noam Camus
2015-11-02 8:05 ` Noam Camus
2015-10-31 13:15 ` [PATCH v1 09/20] ARC: add CONFIG_CLKSRC_OF support to time_init() Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-11-02 6:32 ` Vineet Gupta
2015-11-02 6:32 ` Vineet Gupta
2015-10-31 13:15 ` [PATCH v1 10/20] ARC: [plat-eznps] Add eznps board defconfig and dts Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-10-31 13:15 ` [PATCH v1 11/20] ARC: [plat-eznps] Add eznps platform Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-11-02 10:56 ` Vineet Gupta
2015-11-02 10:56 ` Vineet Gupta
2015-11-03 15:59 ` Noam Camus
2015-11-03 15:59 ` Noam Camus
2015-11-04 12:38 ` Noam Camus
2015-11-04 12:38 ` Noam Camus
2015-11-05 5:09 ` Vineet Gupta
2015-11-05 5:09 ` Vineet Gupta
2015-10-31 13:15 ` [PATCH v1 12/20] ARC: [plat-eznps] Use dedicated user stack top Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-10-31 13:15 ` [PATCH v1 13/20] ARC: [plat-eznps] Use dedicated bitops/atomic/cmpxchg Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-11-02 11:56 ` Vineet Gupta
2015-11-02 11:56 ` Vineet Gupta
2015-10-31 13:15 ` [PATCH v1 14/20] ARC: [plat-eznps] Use dedicated SMP barriers Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-11-02 8:02 ` Vineet Gupta
2015-11-02 8:02 ` Vineet Gupta
2015-11-02 13:08 ` Noam Camus
2015-11-02 13:08 ` Noam Camus
2015-10-31 13:15 ` [PATCH v1 15/20] ARC: [plat-eznps] Use dedicated identity auxiliary register Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-10-31 13:15 ` [PATCH v1 16/20] ARC: [plat-eznps] Use dedicated cpu_relax() Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-11-02 7:54 ` Vineet Gupta
2015-11-02 7:54 ` Vineet Gupta
2015-11-02 9:21 ` Peter Zijlstra
2015-11-02 9:21 ` Peter Zijlstra
2015-11-03 14:02 ` Noam Camus
2015-11-03 14:02 ` Noam Camus
2015-10-31 13:15 ` [PATCH v1 17/20] ARC: [plat-eznps] Use dedicated COMMAND_LINE_SIZE Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-10-31 13:15 ` [PATCH v1 18/20] ARC: [plat-eznps] define IPI_IRQ Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-11-02 7:52 ` Vineet Gupta
2015-11-02 7:52 ` Vineet Gupta
2015-11-02 12:16 ` Noam Camus
2015-11-02 12:16 ` Noam Camus
2015-10-31 13:15 ` [PATCH v1 19/20] ARC: [plat-eznps] replace sync with proper cpu barrier Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-11-02 7:48 ` Vineet Gupta
2015-11-02 7:48 ` Vineet Gupta
2015-11-02 9:26 ` Peter Zijlstra
2015-11-02 9:26 ` Peter Zijlstra
2015-11-17 13:48 ` [PATCH] ARC: remove SYNC from __switch_to() Vineet Gupta
2015-11-17 13:48 ` Vineet Gupta
2015-10-31 13:15 ` [PATCH v1 20/20] ARC: Add eznps platform to Kconfig and Makefile Noam Camus
2015-10-31 13:15 ` Noam Camus
2015-11-02 11:06 ` Vineet Gupta
2015-11-02 11:06 ` Vineet Gupta
2015-11-03 15:32 ` Noam Camus
2015-11-03 15:32 ` Noam Camus
2015-11-04 15:35 ` [PATCH v1 00/20] eznps a new ARC platform Vineet Gupta
2015-11-04 15:35 ` Vineet Gupta
2015-11-04 15:53 ` Noam Camus
2015-11-04 15:53 ` Noam Camus
2015-11-04 17:42 ` Vineet Gupta
2015-11-04 17:42 ` Vineet Gupta
2015-11-07 10:52 ` [PATCH v2 00/19] " Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-07 10:52 ` [PATCH v2 01/19] Documentation: Add EZchip vendor to binding list Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-07 10:52 ` [PATCH v2 02/19] ARC: [plat-eznps] define IPI_IRQ Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-07 10:52 ` [PATCH v2 03/19] clocksource: Add NPS400 timers driver Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-07 11:26 ` Thomas Gleixner
2015-11-07 11:26 ` Thomas Gleixner
2015-11-20 11:59 ` Noam Camus
2015-11-20 11:59 ` Noam Camus
2015-11-07 10:52 ` [PATCH v2 04/19] irqchip: add nps Internal and external irqchips Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-07 11:38 ` Thomas Gleixner
2015-11-07 11:38 ` Thomas Gleixner
2015-11-07 20:52 ` Noam Camus
2015-11-07 20:52 ` Noam Camus
2015-11-07 23:52 ` Thomas Gleixner
2015-11-07 23:52 ` Thomas Gleixner
2015-11-07 10:52 ` [PATCH v2 05/19] ARC: Set vmalloc size from configuration Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-07 10:52 ` [PATCH v2 06/19] ARC: rwlock: disable interrupts in !LLSC variant Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-07 10:52 ` [PATCH v2 07/19] ARC: rename smp operation init_irq_cpu() to init_per_cpu() Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-17 11:15 ` Vineet Gupta
2015-11-17 11:15 ` Vineet Gupta
2015-11-17 11:38 ` Noam Camus
2015-11-17 11:38 ` Noam Camus
2015-11-17 11:42 ` Vineet Gupta
2015-11-17 11:42 ` Vineet Gupta
2015-11-07 10:52 ` [PATCH v2 08/19] ARC: Mark secondary cpu online only after all HW setup is done Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-17 11:17 ` Vineet Gupta
2015-11-17 11:17 ` Vineet Gupta
2015-11-07 10:52 ` [PATCH v2 09/19] ARC: add CONFIG_CLKSRC_OF support to time_init() Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-07 10:52 ` [PATCH v2 10/19] ARC: [plat-eznps] Add eznps board defconfig and dts Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-07 10:52 ` [PATCH v2 11/19] ARC: [plat-eznps] Add eznps platform Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-07 10:52 ` [PATCH v2 12/19] ARC: [plat-eznps] Use dedicated user stack top Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-07 10:52 ` [PATCH v2 13/19] ARC: [plat-eznps] Use dedicated atomic/bitops/cmpxchg Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-07 10:52 ` [PATCH v2 14/19] ARC: [plat-eznps] Use dedicated SMP barriers Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-07 10:52 ` [PATCH v2 15/19] ARC: [plat-eznps] Use dedicated identity auxiliary register Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-07 10:52 ` [PATCH v2 16/19] ARC: [plat-eznps] Use dedicated cpu_relax() Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-09 10:05 ` Peter Zijlstra
2015-11-09 10:05 ` Peter Zijlstra
2015-11-09 10:22 ` Vineet Gupta
2015-11-09 10:22 ` Vineet Gupta
2015-11-09 10:45 ` Peter Zijlstra
2015-11-09 10:45 ` Peter Zijlstra
2015-11-09 12:27 ` Vineet Gupta
2015-11-09 12:27 ` Vineet Gupta
2015-11-09 12:51 ` Peter Zijlstra
2015-11-09 12:51 ` Peter Zijlstra
2015-11-07 10:52 ` [PATCH v2 17/19] ARC: [plat-eznps] Use dedicated COMMAND_LINE_SIZE Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-07 10:52 ` [PATCH v2 18/19] ARC: [plat-eznps] replace sync with proper cpu barrier Noam Camus
2015-11-07 10:52 ` Noam Camus
2015-11-17 11:12 ` Vineet Gupta
2015-11-17 11:12 ` Vineet Gupta
2015-11-17 11:23 ` Peter Zijlstra
2015-11-17 11:23 ` Peter Zijlstra
2015-11-17 11:37 ` Vineet Gupta
2015-11-17 11:37 ` Vineet Gupta
2015-11-17 12:22 ` Peter Zijlstra
2015-11-17 12:22 ` Peter Zijlstra
2015-11-17 12:37 ` Vineet Gupta
2015-11-17 12:37 ` Vineet Gupta
2015-11-17 12:44 ` Peter Zijlstra
2015-11-17 12:44 ` Peter Zijlstra
2015-11-17 13:32 ` Vineet Gupta
2015-11-17 13:32 ` Vineet Gupta
2015-11-17 13:59 ` Peter Zijlstra [this message]
2015-11-17 13:59 ` Peter Zijlstra
2015-11-07 10:52 ` [PATCH v2 19/19] ARC: Add eznps platform to Kconfig and Makefile Noam Camus
2015-11-07 10:52 ` Noam Camus
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=20151117135932.GA3816@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=linux-snps-arc@lists.infradead.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.