[PATCH 04/15] ia64/pv_ops: introduce pv_info which describes some random info.
Jes Sorensen
jes at sgi.com
Tue Apr 22 03:37:06 PDT 2008
Isaku Yamahata wrote:
> Our justification is as follows.
> The difference is its scope. pv_ops for virtualization and
> machine vector is for platform difference.
>
> - pv_ops does cover the area which shouldn't belong to machine vector.
> For example, ia64 intrinsics paravirtualization.
> It shouldn't belong to the machine vector.
> It must be initialized very early before platform detection.
Hi Isaku,
Ok this is a good point.
> - pv_ops covers some performance critical part (e.g. ia64 intrinsics)
> so that in the future they should be optimized with binary patch like x86.
> We had the experimental patch to do that, but they are dropped for
> the merge. It reduced patch size greatly.
> After merging the first patch series, we're planning to optimize
> pv_ops with binary patch.
> The optimization with binary patch is out of the machine vector scope.
Rather than making these binary patches, why not make them fast syscalls
and using a vdso page. Some of the priviledged instructions are simply
reads and we could have that information in a read-only data page, so
there is no need to do a context switch at all. Others could benefit
from a fast system call that doesn't do a full context switch.
It would be nice if we could come up with a generic implementation for
such a vdso style interface that could be shared between xen/kvm/lguest.
> - The current pv_ops implements only one for only domU, but in future
> pv_ops will support dom0. It means dom0 linux would run with
> the underlying machine vector + pv_ops, i.e.
> {dig, hpzx1, hpzx1_swiotlb, ...} machine vector + xen pv_ops
>
> Probably some hooks of pv_ops could be replaced with
> enhancing machine vector. But from the above separating pv_ops from
> machine vector looks reasonable.
Would it make sense to make the pv_ops pointer part of the machine
vector?
Cheers,
Jes
More information about the Virtualization
mailing list