Message ID | 1468400796-30474-1-git-send-email-caoj.fnst@cn.fujitsu.com |
---|---|
State | New |
Headers | show |
On 13/07/2016 11:06, Cao jin wrote: > When passed argument 'ns' is 0, macro DIV_ROUND_UP will return 0 also. It's potentially slower though. Paolo > Cc: Paolo Bonzini <pbonzini@redhat.com> > Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com> > --- > qemu-timer.c | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/qemu-timer.c b/qemu-timer.c > index eb22e92..cfe0893 100644 > --- a/qemu-timer.c > +++ b/qemu-timer.c > @@ -285,12 +285,8 @@ int qemu_timeout_ns_to_ms(int64_t ns) > return -1; > } > > - if (!ns) { > - return 0; > - } > - > /* Always round up, because it's better to wait too long than to wait too > - * little and effectively busy-wait > + * short and effectively busy-wait > */ > ms = DIV_ROUND_UP(ns, SCALE_MS); > >
On 07/13/2016 06:21 PM, Paolo Bonzini wrote: > > > On 13/07/2016 11:06, Cao jin wrote: >> When passed argument 'ns' is 0, macro DIV_ROUND_UP will return 0 also. > > It's potentially slower though. > Is it because the function in the i/o loop path, so the potentially extra arithmetical instructions matters? > Paolo > >> Cc: Paolo Bonzini <pbonzini@redhat.com> >> Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com> >> --- >> qemu-timer.c | 6 +----- >> 1 file changed, 1 insertion(+), 5 deletions(-) >> >> diff --git a/qemu-timer.c b/qemu-timer.c >> index eb22e92..cfe0893 100644 >> --- a/qemu-timer.c >> +++ b/qemu-timer.c >> @@ -285,12 +285,8 @@ int qemu_timeout_ns_to_ms(int64_t ns) >> return -1; >> } >> >> - if (!ns) { >> - return 0; >> - } >> - >> /* Always round up, because it's better to wait too long than to wait too >> - * little and effectively busy-wait >> + * short and effectively busy-wait >> */ >> ms = DIV_ROUND_UP(ns, SCALE_MS); >> >> > > >
On 13/07/2016 13:40, Cao jin wrote: > > > On 07/13/2016 06:21 PM, Paolo Bonzini wrote: >> >> >> On 13/07/2016 11:06, Cao jin wrote: >>> When passed argument 'ns' is 0, macro DIV_ROUND_UP will return 0 also. >> >> It's potentially slower though. >> > > Is it because the function in the i/o loop path, so the potentially > extra arithmetical instructions matters? It is quite common for ns to be zero, for example if a bottom half has to be invoked. However, qemu_timeout_ns_to_ms is not used in the really important path (which is aio_poll in aio-posix.c) so I guess your patch is okay. Thanks, Paolo >> Paolo >> >>> Cc: Paolo Bonzini <pbonzini@redhat.com> >>> Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com> >>> --- >>> qemu-timer.c | 6 +----- >>> 1 file changed, 1 insertion(+), 5 deletions(-) >>> >>> diff --git a/qemu-timer.c b/qemu-timer.c >>> index eb22e92..cfe0893 100644 >>> --- a/qemu-timer.c >>> +++ b/qemu-timer.c >>> @@ -285,12 +285,8 @@ int qemu_timeout_ns_to_ms(int64_t ns) >>> return -1; >>> } >>> >>> - if (!ns) { >>> - return 0; >>> - } >>> - >>> /* Always round up, because it's better to wait too long than >>> to wait too >>> - * little and effectively busy-wait >>> + * short and effectively busy-wait >>> */ >>> ms = DIV_ROUND_UP(ns, SCALE_MS); >>> >>> >> >> >> >
On 07/13/2016 07:40 PM, Paolo Bonzini wrote: > > > On 13/07/2016 13:40, Cao jin wrote: >> >> >> On 07/13/2016 06:21 PM, Paolo Bonzini wrote: >>> >>> >>> On 13/07/2016 11:06, Cao jin wrote: >>>> When passed argument 'ns' is 0, macro DIV_ROUND_UP will return 0 also. >>> >>> It's potentially slower though. >>> >> >> Is it because the function in the i/o loop path, so the potentially >> extra arithmetical instructions matters? > > It is quite common for ns to be zero, for example if a bottom half has > to be invoked. > I see. I need dig deeper to understand the wholely I/O mechanism. Thanks Paolo! > However, qemu_timeout_ns_to_ms is not used in the really important path > (which is aio_poll in aio-posix.c) so I guess your patch is okay. > > Thanks, > > Paolo >
diff --git a/qemu-timer.c b/qemu-timer.c index eb22e92..cfe0893 100644 --- a/qemu-timer.c +++ b/qemu-timer.c @@ -285,12 +285,8 @@ int qemu_timeout_ns_to_ms(int64_t ns) return -1; } - if (!ns) { - return 0; - } - /* Always round up, because it's better to wait too long than to wait too - * little and effectively busy-wait + * short and effectively busy-wait */ ms = DIV_ROUND_UP(ns, SCALE_MS);
When passed argument 'ns' is 0, macro DIV_ROUND_UP will return 0 also. Cc: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com> --- qemu-timer.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)