All of lore.kernel.org
 help / color / mirror / Atom feed
From: george anzinger <george@mvista.com>
To: Bernardo Innocenti <bernie@develer.com>
Cc: Andrew Morton <akpm@osdl.org>,
	linux-kernel@vger.kernel.org, akpm@zip.com.au,
	rmk@arm.linux.org.uk, torvalds@osdl.org
Subject: Re: do_div64 generic
Date: Tue, 15 Jul 2003 14:52:50 -0700	[thread overview]
Message-ID: <3F1477B2.6090106@mvista.com> (raw)
In-Reply-To: <200307150823.01602.bernie@develer.com>

Bernardo Innocenti wrote:
> On Tuesday 15 July 2003 07:38, Andrew Morton wrote:
> 
> 
>>> Here's a patch that takes care of all architectures.
>>
>>AFAICT, we can just rework posix-timers.c to use the standard do_div() and
>>be done with it, can we not?  ie: no div_long_long_rem(), no
>>div_ll_X_l_rem().  Just do_div().
> 
> 
> We could, and it would be easy and almost as efficient in all places
> where div_long_long_rem() is being used:
> 
>    value->tv_sec = div_long_long_rem(nsec, NSEC_PER_SEC, &value->tv_nsec);
> 
> becomes:
> 
>    value->tv_nsec = do_div(nsec, NSEC_PER_SEC);
>    value->tv_sec = nsec;
> 
> George, do you agree? May I go on and post a patch killing
> div_long_long_rem() everywhere?

The issue is that div is a very long instruction and the do_div() 
thing uses 2 or three of them, while the div_long_long_rem() is just 
1.  Also, a lot of archs already have the required div by a different 
name.  It all boils down to a performance thing.

-g
> 
> 
>>Please use `static inline', not `extern inline', btw.
> 
> 
> Oops. Fixed. I had just copied it over from asm-i386/div64.h.
> 
> Is it worth posting a big patch to replace all remaining
> occurrences of 'extern inline' all over the kernel?
> 
> I'd also like to point out that __inline__ is often being
> used inconsistently. We should be using __inline__ rather
> than inline in public headers needed by glibc for apps
> compiled with -ansi. Since it's so ugly, it shouldn't
> be used in other places.
> 

-- 
George Anzinger   george@mvista.com
High-res-timers:  http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml


  parent reply	other threads:[~2003-07-15 21:38 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <3F1360F4.2040602@mvista.com>
2003-07-15  5:17 ` do_div64 generic Bernardo Innocenti
2003-07-15  5:38   ` Andrew Morton
2003-07-15  6:23     ` Bernardo Innocenti
2003-07-15  6:30       ` Andrew Morton
2003-07-15 21:52       ` george anzinger [this message]
2003-07-15 22:06         ` Andrew Morton
2003-07-16  0:07           ` george anzinger
2003-07-16 18:33             ` Bernardo Innocenti
2003-07-17 21:10               ` Bernardo Innocenti
2003-07-17 21:16                 ` Andrew Morton
2003-07-17 22:43                   ` Bernardo Innocenti
2003-07-17 23:10                   ` george anzinger
2003-07-18  3:19                     ` Andrew Morton
2003-07-18  4:14                       ` Bernardo Innocenti
2003-07-17 23:09                 ` george anzinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3F1477B2.6090106@mvista.com \
    --to=george@mvista.com \
    --cc=akpm@osdl.org \
    --cc=akpm@zip.com.au \
    --cc=bernie@develer.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rmk@arm.linux.org.uk \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.