Vinay Devadas wrote: >> And never executed halt, right? >> > > No, I just made the sampling thread sleep for the "interval length". I did > not halt the CPU. >
Sorry. I don't think it is supposed to matter anyway. If I read the System Programmer's Guide description of APERF/MPERF correctly, these counters only increment when in the C0 state anyway. So, OK, I give up. If we are in P0 for the entire interval, then why isn't APERF/MPERF equal to 1. Aubrey, do you have any ideas? > -Vinay > > ----- Original Message ----- > From: Mark Haywood <Mark.Haywood at Sun.COM> > Date: Wednesday, July 23, 2008 1:51 pm > Subject: Re: [tesla-dev] Experiment Results on APERF/MPERF registers - Need > Clarification > To: Vinay Devadas <Vinay.Devadas at Sun.COM> > Cc: tesla-dev at opensolaris.org > > > >> Vinay Devadas wrote: >> >>> Actually, I don't think that's right. I think that the only time you >>> >> would see APERF/MPERF equal to 1, is if the CPU was at P0 and never >> >>> went idle. >>> >>> The whole experiment, CPU was in P0. >>> >>> >> And never executed halt, right? >> >> >>> ----- Original Message ----- >>> From: Mark Haywood <Mark.Haywood at Sun.COM> >>> Date: Wednesday, July 23, 2008 1:29 pm >>> Subject: Re: [tesla-dev] Experiment Results on APERF/MPERF registers >>> >> - Need Clarification >> >>> To: Vinay Devadas <Vinay.Devadas at Sun.COM> >>> Cc: tesla-dev at opensolaris.org >>> >>> >>> >>> >>>> Vinay Devadas wrote: >>>> >>>> >>>>> Hi, >>>>> >>>>> Here are the intial results I obtained for Turbo Mode using >>>>> >>>>> >>>> APERF/MPERF, I need some clarification on the results. >>>> >>>> >>>>> Remaining in P0, I sampled the ratio APERF and MPERF for different >>>>> >>>>> >>>>> >>>> interval lengths. The computer I ran these experiments on does not >>>> >>>> have Turbo Mode feature, so the clock is expected to be in P0 >>>> throughout the experiment. I took 10 samples per interval length. I >>>> >>>> reset APERF/MPERF registers after every read. >>>> >>>> >>>>> Interval Length = 1sec >>>>> 1 ratio = 0.953074 >>>>> 2 ratio = 0.950529 >>>>> 3 ratio = 0.955870 >>>>> 4 ratio = 0.950900 >>>>> 5 ratio = 0.947259 >>>>> 6 ratio = 0.950799 >>>>> 7 ratio = 0.947093 >>>>> 8 ratio = 0.949705 >>>>> 9 ratio = 0.947057 >>>>> 10 ratio = 0.951851 >>>>> >>>>> Interval Length = 10sec >>>>> 1 ratio = 0.852206 >>>>> 2 ratio = 0.852150 >>>>> 3 ratio = 0.846130 >>>>> 4 ratio = 0.825831 >>>>> 5 ratio = 0.763463 >>>>> 6 ratio = 0.751499 >>>>> 7 ratio = 0.782461 >>>>> 8 ratio = 0.772478 >>>>> 9 ratio = 0.750490 >>>>> 10 ratio = 0.855870 >>>>> >>>>> Ideally since we are in P0, I believe we expect the ratio = >>>>> >>>>> >>>> APERF/MPERF to be 1 (correct me if I am wrong). When the interval >>>> >> is >> >>>> 1sec we see that the ratio is around 0.95, on the other hand when >>>> interval is 10sec, the ratio is around 0.85 and during some >>>> >> sampling >> >>>> it goes down to 0.75 as well. >>>> >>>> >>>>> >>>>> >>>>> >>>> Actually, I don't think that's right. I think that the only time >>>> >> you >> >>>> would see APERF/MPERF equal to 1 is if the CPU was at P0 and never >>>> >>>> went >>>> idle. >>>> >>>> >>>>> I understand the ratio cannot be one, as we have to execute 2 >>>>> >>>>> >>>> instructions to read both regs (APERF MPERF) and these two cannot >>>> occur concurently. So practically, the ratio should be close to one >>>> >>>> (when in P0). But, I see values like 0.85 and 0.75, is this normal >>>> >> ? >> >>>> and this happens when the interval is large (10sec) in my example. >>>> >>>> >>>>> By the way, I am taking care to make the 2 reads happens as >>>>> >> quickly >> >>>>> >>>>> >>>> as possible, >>>> >>>> >>>>> spl_high() >>>>> rdmsr (APERF) >>>>> rdmsr (MPERF) >>>>> spl0() >>>>> >>>>> Please let me know of any suggestions/explanations possible. >>>>> >>>>> Thanks, >>>>> Vinay >>>>> >>>>> _______________________________________________ >>>>> tesla-dev mailing list >>>>> tesla-dev at opensolaris.org >>>>> http://mail.opensolaris.org/mailman/listinfo/tesla-dev >>>>> >>>>> >>>>> > _______________________________________________ > tesla-dev mailing list > tesla-dev at opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/tesla-dev >
