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 _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/virtualization