xen-devel
Re: [Xen-devel] [PATCH 02/12] early PV on HVM
To: |
Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> |
Subject: |
Re: [Xen-devel] [PATCH 02/12] early PV on HVM |
From: |
Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> |
Date: |
Tue, 8 Jun 2010 17:25:52 +0100 |
Cc: |
"jeremy@xxxxxxxx" <jeremy@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Stefano Stabellini <Stefano.Stabellini@xxxxxxxxxxxxx>, "Yaozu \(Eddie\) Dong" <eddie.dong@xxxxxxxxx>, "linux-kernel@xxxxxxxxxxxxxxx" <linux-kernel@xxxxxxxxxxxxxxx>, "ddutile@xxxxxxxxxx" <ddutile@xxxxxxxxxx>, "sheng@xxxxxxxxxxxxxxx" <sheng@xxxxxxxxxxxxxxx> |
Delivery-date: |
Tue, 08 Jun 2010 09:27:33 -0700 |
Envelope-to: |
www-data@xxxxxxxxxxxxxxxxxxx |
In-reply-to: |
<20100608161233.GA4900@xxxxxxxxxxxxxxxxxxx> |
List-help: |
<mailto:xen-devel-request@lists.xensource.com?subject=help> |
List-id: |
Xen developer discussion <xen-devel.lists.xensource.com> |
List-post: |
<mailto:xen-devel@lists.xensource.com> |
List-subscribe: |
<http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe> |
List-unsubscribe: |
<http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe> |
References: |
<1275570645-27189-1-git-send-email-stefano.stabellini@xxxxxxxxxxxxx> <1275570645-27189-2-git-send-email-stefano.stabellini@xxxxxxxxxxxxx> <20100604202008.GB17645@xxxxxxxxxxxxxxxxxxx> <alpine.DEB.2.00.1006071518050.3401@kaball-desktop> <20100608134637.GA5998@xxxxxxxxxxxxxxxxxxx> <alpine.DEB.2.00.1006081643280.3401@kaball-desktop> <20100608161233.GA4900@xxxxxxxxxxxxxxxxxxx> |
Sender: |
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |
User-agent: |
Alpine 2.00 (DEB 1167 2008-08-23) |
On Tue, 8 Jun 2010, Konrad Rzeszutek Wilk wrote:
> On Tue, Jun 08, 2010 at 04:55:33PM +0100, Stefano Stabellini wrote:
> > On Tue, 8 Jun 2010, Konrad Rzeszutek Wilk wrote:
> > > > > > + HYPERVISOR_shared_info = (struct shared_info *)shared_info_page;
> > > > > > +
> > > > > > + /* Don't do the full vcpu_info placement stuff until we have a
> > > > > > + possible map and a non-dummy shared_info. */
> > > > >
> > > > > Might want to mention where the full vpcu placement is done.
> > > >
> > > > The comment is not accurate, we actually don't do any vcpu_info
> > > > placement on hvm because it is not very useful there.
> > > > Better just to remove the comment (I have done so in my tree).
> > > >
> > > > > > + per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0];
> > > > >
> > > So.. what is the purpose of the per_cpu(xen_vcpu, 0) then?
> > >
> >
> > the vcpu info placement memory area is stored in per_cpu(xen_vcpu_info,
> > cpu);
> > per_cpu(xen_vcpu, cpu) is just a pointer to that area if it is
> > available, otherwise it points to the vcpu_info struct in the shared
> > info page.
>
> I was just wondering why are we doing this when you say:
> " don't do any vcpu_info placement on hvm because it is not very useful
> there."
>
> So if it is not useful, why do it?
>
I think Jeremy replied to your question better than me: we still need
the vcpu_info stuff for the timer and event channels, but we don't need
it to be at a specific address in kernel memory.
That is useful only for the following pvops operations:
pv_irq_ops.save_fl = __PV_IS_CALLEE_SAVE(xen_save_fl_direct);
pv_irq_ops.restore_fl = __PV_IS_CALLEE_SAVE(xen_restore_fl_direct);
pv_irq_ops.irq_disable = __PV_IS_CALLEE_SAVE(xen_irq_disable_direct);
pv_irq_ops.irq_enable = __PV_IS_CALLEE_SAVE(xen_irq_enable_direct);
pv_mmu_ops.read_cr2 = xen_read_cr2_direct;
none of which are used in the hvm case.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|