From: Stephan von Krawczynski <skraw@ithnet.com>
To: linux-kernel <linux-kernel@vger.kernel.org>
Subject: Fw: Re: [PATCH] fix page aging (2.4.9-ac12)
Date: Thu, 20 Sep 2001 15:48:06 +0200 [thread overview]
Message-ID: <20010920154806.75d7da23.skraw@ithnet.com> (raw)
On Thu, 20 Sep 2001 15:32:26 +0200 Daniel Phillips <phillips@bonn-fries.net>
wrote:
> > Perhaps the following would be better, just in case anyone sets
> > PAGE_AGE_DECL to something other than 1.
> >
> > static inline void age_page_down(struct page *page)
> > {
> > unsigned long age = page->age;
> > if (age > PAGE_AGE_DECL)
> > age -= PAGE_AGE_DECL;
> > else
> > age = 0;
> > page->age = age;
> > }
>
>
> static inline void age_page_down(struct page *page)
> {
> page->age = max((int) (age - PAGE_AGE_DECL), 0);
> }
>
> ;-)
Aehm, Daniel. Just for a hint of what I know about C:
IF age is unsigned long (like declared above) and PAGE_AGE_DECL is a define,
then age-PAGE_AGE_DECL is of type unsigned long, which means it will not go
below 0 but instead be huge positive, so your cast (int) before will not do any
good, and you will not end up with 0 but somewhere above the clouds.
So you just made Linus' max/min/cast point of view _very_ clear, I guess it was
something like "people don't really think about using max/min and related
problems".
;-))
I guess you meant:
page->age = max(((int)age - (int)PAGE_AGE_DECL),0);
Written without actually caring about the real definition of PAGE_AGE_DECL.
Regards,
Stephan
PS: please anyone don't tell me what gnu c actually thinks about this, I don't
care, I read K&R.
And, of course, the whole thing is not worth discussing, it just hit me ...
next reply other threads:[~2001-09-20 13:48 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-09-20 13:48 Stephan von Krawczynski [this message]
2001-09-20 14:03 ` Fw: Re: [PATCH] fix page aging (2.4.9-ac12) Ville Herva
2001-09-20 14:20 ` Stephan von Krawczynski
2001-09-20 14:57 ` Ville Herva
2001-09-20 19:29 ` Oliver Xymoron
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=20010920154806.75d7da23.skraw@ithnet.com \
--to=skraw@ithnet.com \
--cc=linux-kernel@vger.kernel.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.