On Mon, 2005-10-10 at 21:57 +0200, Christian Borntraeger wrote:
> > You missed the point.
> > The point is that neither 'vmcp' nor /dev/vmcp offer even a hint of
> > the underlying DIAG interface.   Both 'vmcp' and /dev/vmcp obscure
> > the DIAG interface from the very programmers who should see it.
> >
> > In the CPINT case,  yes,  'hcp'  hides the DIAG details.
> > That's as it should be.
>
> Ah, now I get you. You are moving beyond cpint/vmcp and you want a generic
>
> diagnose interface which currently does not exist, right?
> At least I havent found a diag8 device in cpint which does not hide
> details.
> Am I still missing your intention?

Sorry to burst bubbles here. A generic diag interface doesn't make
sense. diag is a way to "call" the hypervisor from the guest kernel to
do something. What is done by the diag is up to the inventor of the
particular diagnose call. We are facing a number of problems here:
1) It depends on the diagnose how many and which registers are used
2) The semantics of the register contents depends on the diagnose. In
particular if one of the registers passed to the diag points to memory
then which piece of memory is meant? Usually the diag instructions take
real memory as input. The application that calls the diag service only
knows about virtual addresses. Who "converts" the virtual memory to a
real memory? You need to know about the semantics of the diagnose to be
able to do that. There are even diagnoses where the memory passed to the
diagnose contains additional pointers to more real memory.
3) The diagnoses do wildly different things. It is NOT a good idea to
have a single device driver that does a lot of different things. Each
function or group of functions that logically belong together should be
embedded in a stand-alone driver that can be used independently of all
the other functions.
4) Some of the diagnoses have side effects on other subsystems. E.g. the
diag250 does block i/o on a dasd, which naturally interferes with the
dasd driver.

--
blue skies,
   Martin

Martin Schwidefsky
Linux for zSeries Development & Services
IBM Deutschland Entwicklung GmbH

----------------------------------------------------------------------
For LINUX-390 subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: INFO LINUX-390 or visit
http://www.marist.edu/htbin/wlvindex?LINUX-390

Reply via email to