WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

RE: [Xen-ia64-devel] RFC: ptc.ga implementation for SMP-g

To: "Magenheimer, Dan \(HP Labs Fort Collins\)" <dan.magenheimer@xxxxxx>, "Tristan Gingold" <Tristan.Gingold@xxxxxxxx>, <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
Subject: RE: [Xen-ia64-devel] RFC: ptc.ga implementation for SMP-g
From: "Xu, Anthony" <anthony.xu@xxxxxxxxx>
Date: Wed, 5 Apr 2006 09:50:10 +0800
Delivery-date: Tue, 04 Apr 2006 18:50:49 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcZX+1SsKcDEeYmsQJCiYi6jVISCOAAAdEwwAAighpAAC5RasA==
Thread-topic: [Xen-ia64-devel] RFC: ptc.ga implementation for SMP-g
>From: Magenheimer, Dan 
>Sent: 2006?4?5? 3:46
>
>I think ptc.ga needs to execute as a "transaction", that is,
>it is not complete until all other processors' translations
>have been purged.  If not, consider (in the above):
>
>4.5. vcpu2 doesn't trap to the hypervisor for a very long time
>     and continues to use the unpurged translation, while vcpu1
>     assumes the translation has been successfully purged and
>     sets up a new translation and assumes that vcpu2 will "miss"
>     and use the new translation.
>

Thanks for comments,

Let's first analyze how linux uses ptc.ga.

In linux, a process is only running on a LP at one time, is this
correct?

Linux kernel (on behalf of a process that is running) uses ptc.ga to
purge this 
process's tlbs. But linux kernel will not purge processes' tlbs those
are not 
running on this LP, this is my understanding, if linux kernel does purge
other 
processes those are not running on this LP, linux kernel will reset
region 
registers, I didn't see this code.   Is this correct?

If above two are all correct.
When a process running on vcpu1 is executing ptc.ga, 
This process is not running on vcpu2 at the same time,
that means the tlbs which ptc.ga wants to purge is not used on vcpu2 
until this process is scheduled to vcpu2.
Before this process is scheduled to vcpu2, guest kernel will
Reset region registers for this process, and then hypervisor gets
control to
purge the tlbs.

Comments welcome

>Dan

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel