From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Dan Magenheimer" Subject: RE: [PATCH] Add a timer mode that disables pending missed ticks Date: Fri, 25 Jan 2008 16:50:36 -0700 Message-ID: <20080125165036078.00000002440@djm-pc> References: <4784FBF3.3040503@virtualiron.com> Reply-To: "dan.magenheimer@oracle.com" Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=-------72c38c1b72c38c1b Return-path: In-Reply-To: <4784FBF3.3040503@virtualiron.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Dave Winchell , Keir Fraser Cc: "akira.ijuin@oracle.com" , "xen-devel@lists.xensource.com" , "deepak.patel@oracle.com" List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format ---------72c38c1b72c38c1b Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Sorry for the very late followup on this but we finally were able to get our testing set up again on stable 3.1 bits and have seen some very bad results on 3.1.3-rc1, on the order of 1%. Test enviroment was a 4-socket dual core machine with 24GB of memory running six two-vcpu 2GB domains, four hvm plus two pv. All six guests were running LTP simultaneously. The four hvm guests were: RHEL5u1-64, RHEL4u5-32, RHEL5-64, and RHEL4u5-64. Timer_mode was set to 2 for 64-bit guests and 0 for 32-bit guests. All four hvm guests experienced skew around -1%, even the 32-bit guest. Less intensive testing didn't exhibit much skew at all. A representative graph is attached. Dave, I wonder if some portion of your patches didn't end up in the xen trees? (xm dmesg shows 8x Xeon 3.2GHz stepping 04, Platform timer 14.318MHz HPET.) Thanks, Dan P.S. Many thanks to Deepak and Akira for running tests. > -----Original Message----- > From: xen-devel-bounces@lists.xensource.com > [mailto:xen-devel-bounces@lists.xensource.com]On Behalf Of = > Dave Winchell > Sent: Wednesday, January 09, 2008 9:53 AM > To: Keir Fraser > Cc: dan.magenheimer@oracle.com; xen-devel@lists.xensource.com; Dave > Winchell > Subject: Re: [Xen-devel] [PATCH] Add a timer mode that = > disables pending > missed ticks > = > = > Hi Keir, > = > The latest change, c/s 16690, looks fine. > I agree that the code in c/s 16690 is equivalent to > the code I submitted. Also, your version is more > concise. > = > The error tests confirm the equivalence. With overnight cpu loads, > the checked in version was accurate to +.048% for sles > and +.038% for red hat. My version was +.046% and +.032% in a = > 2 hour test. > I don't think the difference is significant. > = > i/o loads produced errors of +.01%. > = > Thanks for all your efforts on this issue. > = > Regards, > Dave > = > = > = > Keir Fraser wrote: > = > >Applied as c/s 16690, although the checked-in patch is = > smaller. I think the > >only important fix is to pt_intr_post() and the only bit of = > the patch I > >totally omitted was the change to pt_process_missed_ticks(). = > I don't think > >that change can be important, but let's see what happens to the error > >percentage... > > > > -- Keir > > > >On 4/1/08 23:24, "Dave Winchell" wrote: > > > > > > > >>Hi Dan and Keir, > >> > >>Attached is a patch that fixes some issues with the SYNC policy > >>(no_missed_ticks_pending). > >>I have not tried to make the change the minimal one, but, = > rather, just > >>ported into > >>the new code what I know to work well. The error for > >>no_missed_ticks_pending goes from > >>over 3% to .03% with this change according to my testing. > >> > >>Regards, > >>Dave > >> > >>Dan Magenheimer wrote: > >> > >> > >> > >>>Hi Dave -- > >>> > >>>Did you get your correction ported? If so, it would be = > nice to see this get > >>>into 3.1.3. > >>> > >>>Note that I just did some very limited testing with = > timer_mode=3D2(=3DSYNC=3Dno > >>>missed ticks pending) > >>>on tip of xen-3.1-testing (64-bit Linux hv guest) and the = > worst error I've > >>>seen so far > >>>is 0.012%. But I haven't tried any exotic loads, just LTP. > >>> > >>>Thanks, > >>>Dan > >>> > >>> > >>> > >>> > >>> > >>>>-----Original Message----- > >>>>From: Dave Winchell [mailto:dwinchell@virtualiron.com] > >>>>Sent: Wednesday, December 19, 2007 12:33 PM > >>>>To: dan.magenheimer@oracle.com > >>>>Cc: Keir Fraser; Shan, Haitao; = > xen-devel@lists.xensource.com; Dong, > >>>>Eddie; Jiang, Yunhong; Dave Winchell > >>>>Subject: Re: [Xen-devel] [PATCH] Add a timer mode that > >>>>disables pending > >>>>missed ticks > >>>> > >>>> > >>>>Dan, > >>>> > >>>>I did some testing with the constant tsc offset SYNC method > >>>>(now called > >>>>no_missed_ticks_pending) > >>>>and found the error to be very high, much larger than 1 %, as > >>>>I recall. > >>>>I have not had a chance to submit a correction. I will try to > >>>>do it later > >>>>this week or the first week in January. My version of constant tsc > >>>>offset SYNC method > >>>>produces .02 % error, so I just need to port that into the > >>>>current code. > >>>> > >>>>The error you got for both of those kernels is what I would expect > >>>>for the default mode, delay_for_missed_ticks. > >>>> > >>>>I'll let Keir answer on how to set the time mode. > >>>> > >>>>Regards, > >>>>Dave > >>>> > >>>>Dan Magenheimer wrote: > >>>> > >>>> > >>>> > >>>> > >>>> > >>>>>Anyone make measurements on the final patch? > >>>>> > >>>>>I just ran a 64-bit RHEL5.1 pvm kernel and saw a loss of > >>>>> > >>>>> > >>>>> > >>>>> > >>>>about 0.2% with no load. This was xen-unstable tip today > >>>>with no options specified. 32-bit was about 0.01%. > >>>> > >>>> > >>>> > >>>> > >>>>>I think I missed something... how do I run the various > >>>>> > >>>>> > >>>>> > >>>>> > >>>>accounting choices and which ones are known to be appropriate > >>>>for which kernels? > >>>> > >>>> > >>>> > >>>> > >>>>>Thanks, > >>>>>Dan > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>>>-----Original Message----- > >>>>>>From: xen-devel-bounces@lists.xensource.com > >>>>>>[mailto:xen-devel-bounces@lists.xensource.com]On Behalf Of > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>Keir Fraser > >>>> > >>>> > >>>> > >>>> > >>>>>>Sent: Thursday, December 06, 2007 4:57 AM > >>>>>>To: Dave Winchell > >>>>>>Cc: Shan, Haitao; xen-devel@lists.xensource.com; Dong, = > Eddie; Jiang, > >>>>>>Yunhong > >>>>>>Subject: Re: [Xen-devel] [PATCH] Add a timer mode that > >>>>>>disables pending > >>>>>>missed ticks > >>>>>> > >>>>>> > >>>>>>Please take a look at xen-unstable changeset 16545. > >>>>>> > >>>>>>-- Keir > >>>>>> > >>>>>>On 26/11/07 20:57, "Dave Winchell" > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>> wrote: > >>>> > >>>> > >>>> > >>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>Keir, > >>>>>>> > >>>>>>>The accuracy data I've collected for i/o loads for the > >>>>>>>various time protocols follows. In addition, the data > >>>>>>>for cpu loads is shown. > >>>>>>> > >>>>>>>The loads labeled cpu and i/o-8 are on an 8 processor AMD box. > >>>>>>>Two guests, red hat and sles 64 bit, 8 vcpu each. > >>>>>>>The cpu load is usex -e36 on each guest. > >>>>>>>(usex is available at http://people.redhat.com/anderson/usex.) > >>>>>>>i/o load is 8 instances of dd if=3D/dev/hda6 of=3D/dev/null. > >>>>>>> > >>>>>>>The loads labeled i/o-32 are 32 instances of dd. > >>>>>>>Also, these are run on 4 cpu AMD box. > >>>>>>>In addition, there is an idle rh-32bit guest. > >>>>>>>All three guests are 8vcpu. > >>>>>>> > >>>>>>>The loads labeled i/o-4/32 are the same as i/o-32 > >>>>>>>except that the redhat-64 guest has 4 instances of dd. > >>>>>>> > >>>>>>>Date Duration Protocol sles, rhat error load > >>>>>>> > >>>>>>>11/07 23 hrs 40 min ASYNC -4.96 sec, +4.42 sec -.006%, = > +.005% cpu > >>>>>>>11/09 3 hrs 19 min ASYNC -.13 sec, +1.44 sec, -.001%, = > +.012% cpu > >>>>>>> > >>>>>>>11/08 2 hrs 21 min SYNC -.80 sec, -.34 sec, -.009%, -.004% cpu > >>>>>>>11/08 1 hr 25 min SYNC -.24 sec, -.26 sec, -.005%, -.005% cpu > >>>>>>>11/12 65 hrs 40 min SYNC -18 sec, -8 sec, -.008%, -.003% cpu > >>>>>>> > >>>>>>>11/08 28 min MIXED -.75 sec, -.67 sec -.045%, -.040% cpu > >>>>>>>11/08 15 hrs 39 min MIXED -19. sec,-17.4 sec, -.034%, = > -.031% cpu > >>>>>>> > >>>>>>> > >>>>>>>11/14 17 hrs 17 min ASYNC -6.1 sec,-55.7 sec, -.01%, = > -.09% i/o-8 > >>>>>>>11/15 2 hrs 44 min ASYNC -1.47 sec,-14.0 sec, -.015% = > -.14% i/o-8 > >>>>>>> > >>>>>>>11/13 15 hrs 38 min SYNC -9.7 sec,-12.3 sec, -.017%, = > -.022% i/o-8 > >>>>>>>11/14 48 min SYNC - .46 sec, - .48 sec, -.017%, -.018% i/o-8 > >>>>>>> > >>>>>>>11/14 4 hrs 2 min MIXED -2.9 sec, -4.15 sec, -.020%, = > -.029% i/o-8 > >>>>>>>11/20 16 hrs 2 min MIXED -13.4 sec,-18.1 sec, -.023%, = > -.031% i/o-8 > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>>11/21 28 min MIXED -2.01 sec, -.67 sec, -.12%, -.04% i/o-32 > >>>>>>>11/21 2 hrs 25 min SYNC -.96 sec, -.43 sec, -.011%, = > -.005% i/o-32 > >>>>>>>11/21 40 min ASYNC -2.43 sec, -2.77 sec -.10%, -.11% i/o-32 > >>>>>>> > >>>>>>>11/26 113 hrs 46 min MIXED -297. sec, 13. sec -.07%, = > .003% i/o-4/32 > >>>>>>>11/26 4 hrs 50 min SYNC -3.21 sec, 1.44 sec, -.017%, = > .01% i/o-4/32 > >>>>>>> > >>>>>>> > >>>>>>>Overhead measurements: > >>>>>>> > >>>>>>>Progress in terms of number of passes through a fixed > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>system workload > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>on an 8 vcpu red hat with an 8 vcpu sles idle. > >>>>>>>The workload was usex -b48. > >>>>>>> > >>>>>>> > >>>>>>>ASYNC 167 min 145 passes .868 passes/min > >>>>>>>SYNC 167 min 144 passes .862 passes/min > >>>>>>>SYNC 1065 min 919 passes .863 passes/min > >>>>>>>MIXED 221 min 196 passes .887 passes/min > >>>>>>> > >>>>>>> > >>>>>>>Conclusions: > >>>>>>> > >>>>>>>The only protocol which meets the .05% accuracy = > requirement for ntp > >>>>>>>tracking under the loads > >>>>>>>above is the SYNC protocol. The worst case accuracies for > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>SYNC, MIXED, > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>and ASYNC > >>>>>>>are .022%, .12%, and .14%, respectively. > >>>>>>> > >>>>>>>We could reduce the cost of the SYNC method by only > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>scheduling the extra > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>wakeups if a certain number > >>>>>>>of ticks are missed. > >>>>>>> > >>>>>>>Regards, > >>>>>>>Dave > >>>>>>> > >>>>>>>Keir Fraser wrote: > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>>>On 9/11/07 19:22, "Dave Winchell" > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>> wrote: > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>>>Since I had a high error (~.03%) for the ASYNC method a > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>couple of days ago, > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>>I ran another ASYNC test. I think there may have = > been something > >>>>>>>>>wrong with the code I used a couple of days ago for > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>ASYNC. It may have been > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>>missing the immediate delivery of interrupt after context > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>switch in. > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>>My results indicate that either SYNC or ASYNC give > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>acceptable accuracy, > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>>each running consistently around or under .01%. MIXED has > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>a fairly high > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>>error of > >>>>>>>>>greater than .03%. Probably too close to .05% ntp > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>threshold for comfort. > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>>I don't have an overnight run with SYNC. I plan to leave > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>SYNC running > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>>over the weekend. If you'd rather I can leave MIXED > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>running instead. > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>>It may be too early to pick the protocol and I can run > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>more overnight tests > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>>next week. > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>I'm a bit worried about any unwanted side effects of the > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>SYNC+run_timer > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>approach -- e.g., whether timer wakeups will cause higher > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>system-wide CPU > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>contention. I find it easier to think through the > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>implications of ASYNC. I'm > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>surprised that MIXED loses time, and is less accurate than > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>ASYNC. Perhaps it > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>delivers more timer interrupts than the other approaches, > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>and each interrupt > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>event causes a small accumulated error? > >>>>>>>> > >>>>>>>>Overall I would consider MIXED and ASYNC as favourites and > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>if the latter is > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>actually more accurate then I can simply revert the = > changeset that > >>>>>>>>implemented MIXED. > >>>>>>>> > >>>>>>>>Perhaps rather than running more of the same workloads you > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>could try idle > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>VCPUs and I/O bound VCPUs (e.g., repeated large disc reads > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>to /dev/null)? We > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>don't have any data on workloads that aren't CPU bound, so > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>that's really an > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>>>>obvious place to put any further effort imo. > >>>>>>>> > >>>>>>>>-- Keir > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>_______________________________________________ > >>>>>>Xen-devel mailing list > >>>>>>Xen-devel@lists.xensource.com > >>>>>>http://lists.xensource.com/xen-devel > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>> > >>>> > >>>> > >>>> > >>> > >>> > >>> > >>> > >>diff -r cfdbdca5b831 xen/arch/x86/hvm/vpt.c > >>--- a/xen/arch/x86/hvm/vpt.c Thu Dec 06 15:36:07 2007 +0000 > >>+++ b/xen/arch/x86/hvm/vpt.c Fri Jan 04 17:58:16 2008 -0500 > >>@@ -58,7 +58,7 @@ static void pt_process_missed_ticks(stru > >> > >> missed_ticks =3D missed_ticks / (s_time_t) pt->period + 1; > >> if ( mode_is(pt->vcpu->domain, no_missed_ticks_pending) ) > >>- pt->do_not_freeze =3D !pt->pending_intr_nr; > >>+ pt->do_not_freeze =3D 1; > >> else > >> pt->pending_intr_nr +=3D missed_ticks; > >> pt->scheduled +=3D missed_ticks * pt->period; > >>@@ -127,7 +127,12 @@ static void pt_timer_fn(void *data) > >> > >> pt_lock(pt); > >> > >>- pt->pending_intr_nr++; > >>+ if ( mode_is(pt->vcpu->domain, no_missed_ticks_pending) ) { > >>+ pt->pending_intr_nr =3D 1; > >>+ pt->do_not_freeze =3D 0; > >>+ } > >>+ else > >>+ pt->pending_intr_nr++; > >> > >> if ( !pt->one_shot ) > >> { > >>@@ -221,8 +226,6 @@ void pt_intr_post(struct vcpu *v, struct > >> return; > >> } > >> > >>- pt->do_not_freeze =3D 0; > >>- > >> if ( pt->one_shot ) > >> { > >> pt->enabled =3D 0; > >>@@ -235,6 +238,10 @@ void pt_intr_post(struct vcpu *v, struct > >> pt->last_plt_gtime =3D hvm_get_guest_time(v); > >> pt->pending_intr_nr =3D 0; /* 'collapse' all = > missed ticks */ > >> } > >>+ else if ( mode_is(v->domain, no_missed_ticks_pending) ) { > >>+ pt->pending_intr_nr--; > >>+ pt->last_plt_gtime =3D hvm_get_guest_time(v); > >>+ } > >> else > >> { > >> pt->last_plt_gtime +=3D pt->period_cycles; > >> > >> > > > > > > > > > = > = > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel > ---------72c38c1b72c38c1b Content-Type: application/octet-stream; name="el4u5-32-hvm-ltp.png" Content-Disposition: attachment; filename="el4u5-32-hvm-ltp.png" Content-Transfer-Encoding: base64 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 vXX7uNv1tgFLnbJOKaa01OlHOVWpcawGB6iIqSx1YuwXE7I8YTtLHZjeUtcvNYq6IrJrFeMe nTb11i31dr1tYN3o8v0z7bpRd7gwRamoUFlzcbtupM7yfJm6wV+vGz1fereP6/b2dq1iXEY2 9dYt9Xa90YuBEGsoI0KsoYwIsYYyIsQayogQaygjQqyhjAixhjJaiP5qF1Y5nnUyuhWj1Gzt vqrur6l0/UTIJZTRonSbuUljvgar/re+NZGmiYDhDrXMM/IBymhR7L0K89w+04NZPwinmrme i29QRoty7deM/bbYPAD3FXE/EXeTMQecKBJfPPVX8P3SQaGlfF1m3/tZbXNUx8tm/DCUo+oa e0rhYCS9ZJoyW+8YlNGiXMtINoiJh7n6H9+KT7FyjdRgY4T8j+aOv8b/cOfXEdRVmfi0uyOr 77GNM0Gy6hwiWXi6iZDznMO6MSijRRmWUfcb+R/e1HKUOOpf//3l/ppLGUmPMrxdW34PQ+UD XZY4G7zGu8M4xmAfhw9mUUxlhH/7XuyXf39PRt2jhmXUtxzKfuIwDALlNU4ZjcMHsyimMqpr vTGvaw6wk5EK16J6I7XjqWkgHLEcYmex9H+U0Th8MItiKiO1bUwFeNLIbOcxGWG4JnMgJSMI CNsfRT5i1lDmDAkUw7nRLSijRTGXkVjqrrefKUvdIzJSW87KUoQBWx12oo5Z6kSotNSNQxl5 zhTrRmZw3WgcyshzbnsxTEdZMsnbOJSR90hsOtfQp+4WlBEh1lBGhFjz/zxZBG8Q/BSEAAAA PHRFWHRDb21tZW50ACBJbWFnZSBnZW5lcmF0ZWQgYnkgRVNQIEdob3N0c2NyaXB0IChkZXZp Y2U9cG5tcmF3KQqV01S1AAAAInRFWHRwczpIaVJlc0JvdW5kaW5nQm94ADQxOXg0MjArNzIr MTg0PNQ4sQAAABx0RVh0cHM6TGV2ZWwAQWRvYmUtMy4wIEVQU0YtMy4wCptwu+MAAAAASUVO RK5CYII= ---------72c38c1b72c38c1b Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel ---------72c38c1b72c38c1b--