On Tue, 2019-01-22 at 16:23 +1100, Paul Mackerras wrote: > > Which ones of these could be implemented in QEMU? Are there any that > can't possibly be implemented in QEMU because they need to do things > that require calling internal interfaces that userspace doesn't have > access to?
Implementing them in qemu doesn't make a lot of sense. Qemu doesn't have access to most of the XIVE HW state. There's a XIVE model for full emulation but when using the real thing, almost none of it is visible. A lot of those hcalls effectively turn into OPAL calls. > How often do we expect each of these hypercalls to be called? It depends, I can't tell for AIX. For Linux, not often with one exception: H_INT_ESB which will be used whenever you EOI an emulated LSI. .../... > Why do we need to provide real-mode versions of these hypercall > handlers? I thought these hypercalls would only get called > infrequently, and in any case certainly much less frequently than once > per interrupt delivered. If they are infrequent, then let's leave out > the real-mode version and just handle them in book3s_hv.c. Agreed with the exception maybe of H_INT_ESB > > @@ -5153,6 +5169,19 @@ static unsigned int default_hcall_list[] = { > > H_IPOLL, > > H_XIRR, > > H_XIRR_X, > > +#endif > > +#ifdef CONFIG_KVM_XIVE > > + H_INT_GET_SOURCE_INFO, > > + H_INT_SET_SOURCE_CONFIG, > > + H_INT_GET_SOURCE_CONFIG, > > + H_INT_GET_QUEUE_INFO, > > + H_INT_SET_QUEUE_CONFIG, > > + H_INT_GET_QUEUE_CONFIG, > > + H_INT_SET_OS_REPORTING_LINE, > > + H_INT_GET_OS_REPORTING_LINE, > > + H_INT_ESB, > > + H_INT_SYNC, > > + H_INT_RESET, > > #endif > > The policy is not to add new hcalls to default_hcall_list[]. Is there > a strong reason for adding them here? > > Paul.