Re: [patch] s390: do not use _local_bh_enable()

From: Martin Schwidefsky
Date: Fri Feb 23 2007 - 09:20:49 EST


On Fri, 2007-02-23 at 15:04 +0100, Ingo Molnar wrote:
> > [...] cio_tpi and sclp_sync_wait are used to wait for the interrupt of
> > the console device to make room in the buffer for a printk out of
> > disabled context.
>
> ouch. So you want/need to wait for a specific type of interrupt, in a
> section of code that has all interrupts disabled? Is this the only form
> of communication to the hypervisor, for this particular purpose? It
> seems to me that polling a bit in a buffer shared between the hypervisor
> and the guest OS [combined with cpu_relax()] would fit this scenario
> alot better (and wouldnt cause any such gymnastics to avoid regular
> Linux irq processing) than waiting for an interrupt to be injected by
> the hypervisor. Or is this interrupt-based interface an ABI property and
> the only way to do it?

This has nothing to do with the hypervisor. Even on bare metal (that
machine mode exists up to G7, newer machine always run a hypervisor) you
have to deal with your console device. If this is a 3270 green-screen
you have to do asynchronous i/o. To wait for some room in the console
buffer translates to waiting for the interrupt of a ccw device. The
memory of the machine is unchanged until the interrupt is received.
So yes, ouch!

--
blue skies, IBM Deutschland Entwicklung GmbH
Martin Vorsitzender des Aufsichtsrats: Johann Weihen
Geschäftsführung: Herbert Kircher
Martin Schwidefsky Sitz der Gesellschaft: Böblingen
Linux on zSeries Registergericht: Amtsgericht Stuttgart,
Development HRB 243294

"Reality continues to ruin my life." - Calvin.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/