From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: Re: [PATCH v3 02/11] x86/intel_pstate: add some calculation related support Date: Thu, 18 Jun 2015 15:07:07 +0100 Message-ID: <5582ECAB0200007800086AB5@mail.emea.novell.com> References: <1434011189-16804-1-git-send-email-wei.w.wang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1434011189-16804-1-git-send-email-wei.w.wang@intel.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Wei Wang Cc: andrew.cooper3@citrix.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org >>> On 11.06.15 at 10:26, wrote: > The added calculation related functions will be used in the intel_pstate.c. > They are copied from the kernel(commit 2418f4f2, f3002134, eb18cba7). The _Linux_ kernel I assume? > --- a/xen/include/asm-x86/div64.h > +++ b/xen/include/asm-x86/div64.h > @@ -11,4 +11,76 @@ > __rem; \ > }) > > +static inline uint64_t div_u64_rem(uint64_t dividend, uint32_t divisor, > + uint32_t *remainder) > +{ > + *remainder = do_div(dividend, divisor); > + return dividend; > +} > + > +static inline uint64_t div_u64(uint64_t dividend, uint32_t divisor) > +{ > + uint32_t remainder; > + return div_u64_rem(dividend, divisor, &remainder); > +} > + > +/* > + * div64_u64 - unsigned 64bit divide with 64bit divisor > + * @dividend: 64bit dividend > + * @divisor: 64bit divisor > + * > + * This implementation is a modified version of the algorithm proposed > + * by the book 'Hacker's Delight'. The original source and full proof > + * can be found here and is available for use without restriction. > + * > + * 'http://www.hackersdelight.org/HDcode/newCode/divDouble.c.txt' > + */ > +static inline uint64_t div64_u64(uint64_t dividend, uint64_t divisor) > +{ > + uint32_t high = divisor >> 32; > + uint64_t quot; > + > + if (high == 0) { > + quot = div_u64(dividend, divisor); > + } else { You have changed indentation to be Xen-like (and match the little bit of code that was here before) - thanks. But once you do that, you should fully convert to code to Xen style, i.e. (just for the above): if ( high == 0 ) quot = div_u64(dividend, divisor); else { Jan