linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* Question: handling early hotplug interrupts
@ 2017-08-29 20:43 Daniel Henrique Barboza
  2017-08-29 21:55 ` Benjamin Herrenschmidt
  2017-08-30  5:59 ` Michael Ellerman
  0 siblings, 2 replies; 7+ messages in thread
From: Daniel Henrique Barboza @ 2017-08-29 20:43 UTC (permalink / raw)
  To: linuxppc-dev

Hi,

This is a scenario I've been facing when working in early device 
hotplugs in QEMU. When a device is added, a IRQ pulse is fired to warn 
the guest of the event, then the kernel fetches it by calling 
'check_exception' and handles it. If the hotplug is done too early 
(before SLOF, for example), the pulse is ignored and the hotplug event 
is left unchecked in the events queue.

One solution would be to pulse the hotplug queue interrupt after CAS, 
when we are sure that the hotplug queue is negotiated. However, this 
panics the kernel with sig 11 kernel access of bad area, which suggests 
that the kernel wasn't quite ready to handle it.

In my experiments using upstream 4.13 I saw that there is a 'safe time' 
to pulse the queue, sometime after CAS and before mounting the root fs, 
but I wasn't able to pinpoint it. From QEMU perspective, the last hcall 
done (an h_set_mode) is still too early to pulse it and the kernel 
panics. Looking at the kernel source I saw that the IRQ handling is 
initiated quite early in the init process.

So my question (ok, actually 2 questions):

- Is my analysis correct? Is there an unsafe time to fire a IRQ pulse 
before CAS that can break the kernel or am I overlooking/doing something 
wrong?
- is there a reliable way to know when can the kernel safely handle the 
hotplug interrupt?


Thanks,


Daniel

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

end of thread, other threads:[~2017-08-31  9:53 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-29 20:43 Question: handling early hotplug interrupts Daniel Henrique Barboza
2017-08-29 21:55 ` Benjamin Herrenschmidt
2017-08-29 23:53   ` Daniel Henrique Barboza
2017-08-30  6:09     ` Michael Ellerman
2017-08-30 14:37       ` Nathan Fontenot
2017-08-31  9:53         ` Michael Ellerman
2017-08-30  5:59 ` Michael Ellerman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).