qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 05/19] host-utils: Add muldiv64_round_up


From: Nicholas Piggin
Subject: Re: [PATCH v2 05/19] host-utils: Add muldiv64_round_up
Date: Tue, 05 Sep 2023 13:56:23 +1000

On Mon Sep 4, 2023 at 11:30 PM AEST, Cédric Le Goater wrote:
> On 9/4/23 15:07, Nicholas Piggin wrote:
> > On Sat Sep 2, 2023 at 3:02 AM AEST, Richard Henderson wrote:
> >> On 9/1/23 04:51, Cédric Le Goater wrote:
> >>> Adding more reviewers since this patch is modifying a common service.
> >>>
> >>> Thanks,
> >>>
> >>> C.
> >>>
> >>>
> >>> On 8/8/23 06:19, Nicholas Piggin wrote:
> >>>> This will be used for converting time intervals in different base units
> >>>> to host units, for the purpose of scheduling timers to emulate target
> >>>> timers. Timers typically must not fire before their requested expiry
> >>>> time but may fire some time afterward, so rounding up is the right way
> >>>> to implement these.
> >>>>
> >>>> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> >>>> ---
> >>>>    include/qemu/host-utils.h | 21 ++++++++++++++++++++-
> >>>>    1 file changed, 20 insertions(+), 1 deletion(-)
> >>>>
> >>>> diff --git a/include/qemu/host-utils.h b/include/qemu/host-utils.h
> >>>> index 011618373e..e2a50a567f 100644
> >>>> --- a/include/qemu/host-utils.h
> >>>> +++ b/include/qemu/host-utils.h
> >>>> @@ -56,6 +56,11 @@ static inline uint64_t muldiv64(uint64_t a, uint32_t 
> >>>> b, uint32_t c)
> >>>>        return (__int128_t)a * b / c;
> >>>>    }
> >>>> +static inline uint64_t muldiv64_round_up(uint64_t a, uint32_t b, 
> >>>> uint32_t c)
> >>>> +{
> >>>> +    return ((__int128_t)a * b + c - 1) / c;
> >>>> +}
> >>>> +
> >>>>    static inline uint64_t divu128(uint64_t *plow, uint64_t *phigh,
> >>>>                                   uint64_t divisor)
> >>>>    {
> >>>> @@ -83,7 +88,8 @@ void mulu64(uint64_t *plow, uint64_t *phigh, uint64_t 
> >>>> a, uint64_t b);
> >>>>    uint64_t divu128(uint64_t *plow, uint64_t *phigh, uint64_t divisor);
> >>>>    int64_t divs128(uint64_t *plow, int64_t *phigh, int64_t divisor);
> >>>> -static inline uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c)
> >>>> +static inline uint64_t __muldiv64(uint64_t a, uint32_t b, uint32_t c,
> >>>> +                                  bool round_up)
> >>
> >> Perhaps better avoiding the reserved name: muldiv64_internal?
> > 
> > Thanks, that would be okay. Or could be muldiv64_rounding?
> > 
> >>
> >> Otherwise,
> >> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
>
> oh, and I already sent the PR with the Rb of Richard ... :/
> Sorry about that. Can we fix it later ? Or I will respin with
> the update.
>
> Someone really ought to take over PPC. Daniel and I are real
> busy on other subsystems. Volunteers ?

I suppose I should. I could try do the next PR after this one
is merged.

Thanks,
Nick



reply via email to

[Prev in Thread] Current Thread [Next in Thread]