Re: [PATCH RFC] paravirt_ops: refactor struct paravirt_ops into smaller pv_*_ops

Jeremy Fitzhardinge
2007-09-29T00:40:43Z

Nakajima, Jun wrote:
> Yes. For the native, "safe_halt" is "sti; hlt". The "native_halt" is
> just "hlt". So the para_virt part of "hlt" could be moved to pv_cpu_ops,
> and the "sti" part stays in pv_irq_ops.
>

By "sti part", you mean the full "sti; hlt" sequence of safe_halt,
right? Since it needs to be an atomic sequence to avoid race
conditions, so the native sequence has to be precisely "sti; hlt" to
take advantage of the sti shadow, and other pv-backends will need their
own way to guarantee this atomicity.

But I'm quite happy to put plain "hlt" into cpu_ops as halt_cpu() or
something (and perhaps rename safe_halt to something a bit more
descriptive).

> Actually my concern was that such misc ops might grow to include the
> things don't fit well anywhere else. To me, then pv_lazy_ops (with just
> .set_mode) might be better.
>

The lazy interface has needed a rethink anyway.

J