All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai] ipipe: issues with ARM exception handling
@ 2015-02-20 18:03 Jan Kiszka
  2015-02-20 18:13 ` Gilles Chanteperdrix
                   ` (2 more replies)
  0 siblings, 3 replies; 57+ messages in thread
From: Jan Kiszka @ 2015-02-20 18:03 UTC (permalink / raw)
  To: Gilles Chanteperdrix, Xenomai

Hi Gilles,

analyzing a lockdep warning on 3.16 with I-pipe enabled, I dug deeper
into the hard and virtual interrupt state management during exception
handling on ARM. I think there are several issues:

- ipipe_fault_entry should not fiddle with the root irq state if run
  over head, only when invoked over root.
- ipipe_fault_exit must not change the root state unless we entered over
  head and are about to leave over root - see x86. The current code may
  keep root incorrectly stalled after an exception, though this will
  probably be fixed up again in practice quickly.
- do_sect_fault is only called by do_DataAbort and do_PrefetchAbort,
  in both cases already wrapped in ipipe_fault_entry/exit, thus it
  shouldn't invoke them once again.

Room for optimization:
- ipipe_fault_entry is always called with hard IRQs off from
  do_page_fault and do_translation_fault. I suspect this applies to the
  remaining callers (do_DataAbort and do_PrefetchAbort ) as well. Thus
  the hard IRQ state is actually known at compile time, right?

I can hack up patches, but I'd like to confirm first that I'm not
missing anything subtle or ARM-specific here.

Jan


^ permalink raw reply	[flat|nested] 57+ messages in thread

end of thread, other threads:[~2015-02-24 16:50 UTC | newest]

Thread overview: 57+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-20 18:03 [Xenomai] ipipe: issues with ARM exception handling Jan Kiszka
2015-02-20 18:13 ` Gilles Chanteperdrix
2015-02-20 18:17 ` Jan Kiszka
2015-02-20 18:19   ` Jan Kiszka
2015-02-20 19:44   ` Philippe Gerum
2015-02-20 19:47     ` Philippe Gerum
2015-02-20 19:52       ` Philippe Gerum
2015-02-23 16:06         ` Jan Kiszka
2015-02-23 16:32           ` Philippe Gerum
2015-02-23 16:37             ` Gilles Chanteperdrix
2015-02-23 16:50               ` Jan Kiszka
2015-02-23 16:52                 ` Gilles Chanteperdrix
2015-02-23 17:02                   ` Jan Kiszka
2015-02-23 17:14                     ` Gilles Chanteperdrix
2015-02-23 17:38                       ` Jan Kiszka
2015-02-23 17:49                         ` Jan Kiszka
2015-02-23 17:52                           ` Jan Kiszka
2015-02-23 18:30                             ` Jan Kiszka
2015-02-24 16:23                               ` Jan Kiszka
2015-02-24 16:45                                 ` Gilles Chanteperdrix
2015-02-24 16:46                                   ` Jan Kiszka
2015-02-24 16:50                                     ` Gilles Chanteperdrix
2015-02-23 16:55                 ` Gilles Chanteperdrix
2015-02-23 17:01                   ` Philippe Gerum
2015-02-23 17:12                     ` Gilles Chanteperdrix
2015-02-23 17:21                       ` Gilles Chanteperdrix
2015-02-23 17:43                         ` Jan Kiszka
2015-02-23 17:51                           ` Gilles Chanteperdrix
2015-02-23 17:54                             ` Jan Kiszka
2015-02-23 18:04                               ` Gilles Chanteperdrix
2015-02-23 18:11                                 ` Gilles Chanteperdrix
2015-02-23 18:16                                   ` Jan Kiszka
2015-02-23 18:32                                     ` Jan Kiszka
2015-02-23 18:34                                       ` Gilles Chanteperdrix
2015-02-23 19:14                                         ` Jan Kiszka
2015-02-23 19:18                                           ` Gilles Chanteperdrix
2015-02-23 18:33                                     ` Gilles Chanteperdrix
2015-02-23 19:13                                   ` Gilles Chanteperdrix
2015-02-23 20:25                       ` Philippe Gerum
2015-02-23 20:27                         ` Gilles Chanteperdrix
2015-02-23 20:33                           ` Philippe Gerum
2015-02-23 20:38                             ` Gilles Chanteperdrix
2015-02-23 20:49                               ` Philippe Gerum
2015-02-23 20:54                                 ` Gilles Chanteperdrix
2015-02-23 20:43                       ` Philippe Gerum
2015-02-23 20:46                         ` Gilles Chanteperdrix
2015-02-23 17:02                   ` Gilles Chanteperdrix
2015-02-20 18:38 ` Gilles Chanteperdrix
2015-02-20 18:51   ` Jan Kiszka
2015-02-20 18:53     ` Gilles Chanteperdrix
2015-02-20 18:57       ` Jan Kiszka
2015-02-20 18:59         ` Gilles Chanteperdrix
2015-02-20 19:04           ` Jan Kiszka
2015-02-21  9:13     ` Philippe Gerum
2015-02-23 15:59       ` Jan Kiszka
2015-02-23 16:29         ` Philippe Gerum
2015-02-23 16:58           ` Jan Kiszka

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.