From: Dave Chinner <david@fromorbit.com>
To: Konstantin Khlebnikov <khlebnikov@openvz.org>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
Andrew Morton <akpm@linux-foundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] mm: remove struct reclaim_state
Date: Sat, 19 Nov 2011 08:09:41 +1100 [thread overview]
Message-ID: <20111118210941.GK7046@dastard> (raw)
In-Reply-To: <4EC62E46.6080503@openvz.org>
On Fri, Nov 18, 2011 at 02:07:02PM +0400, Konstantin Khlebnikov wrote:
> Dave Chinner wrote:
> >On Fri, Nov 18, 2011 at 01:28:06PM +0300, Konstantin Khlebnikov wrote:
> >>Memory reclaimer want to know how much pages was reclaimed during shrinking slabs.
> >>Currently there is special struct reclaim_state with single counter and pointer from
> >>task-struct. Let's store counter direcly on task struct and account freed pages
> >>unconditionally. This will reduce stack usage and simplify code in reclaimer and slab.
> >>
> >>Logic in do_try_to_free_pages() is slightly changed, but this is ok.
> >>Nobody calls shrink_slab() explicitly before do_try_to_free_pages(),
> >
> >Except for drop_slab() and shake_page()....
>
> Indeed, but they do not care about accounting reclaimed pages and
> they do not call do_try_to_free_pages() after all.
Right, so you're effectively leaving a landmine for someone to trip
over - anyone that cares about accounting during shrink_slab needs
to zero the value first. The current code makes this obvious by not
having a reclaim structure in the cases where callers don't care
about accounting - after your change the correct usage is
undocumented....
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Dave Chinner <david@fromorbit.com>
To: Konstantin Khlebnikov <khlebnikov@openvz.org>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
Andrew Morton <akpm@linux-foundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] mm: remove struct reclaim_state
Date: Sat, 19 Nov 2011 08:09:41 +1100 [thread overview]
Message-ID: <20111118210941.GK7046@dastard> (raw)
In-Reply-To: <4EC62E46.6080503@openvz.org>
On Fri, Nov 18, 2011 at 02:07:02PM +0400, Konstantin Khlebnikov wrote:
> Dave Chinner wrote:
> >On Fri, Nov 18, 2011 at 01:28:06PM +0300, Konstantin Khlebnikov wrote:
> >>Memory reclaimer want to know how much pages was reclaimed during shrinking slabs.
> >>Currently there is special struct reclaim_state with single counter and pointer from
> >>task-struct. Let's store counter direcly on task struct and account freed pages
> >>unconditionally. This will reduce stack usage and simplify code in reclaimer and slab.
> >>
> >>Logic in do_try_to_free_pages() is slightly changed, but this is ok.
> >>Nobody calls shrink_slab() explicitly before do_try_to_free_pages(),
> >
> >Except for drop_slab() and shake_page()....
>
> Indeed, but they do not care about accounting reclaimed pages and
> they do not call do_try_to_free_pages() after all.
Right, so you're effectively leaving a landmine for someone to trip
over - anyone that cares about accounting during shrink_slab needs
to zero the value first. The current code makes this obvious by not
having a reclaim structure in the cases where callers don't care
about accounting - after your change the correct usage is
undocumented....
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
next prev parent reply other threads:[~2011-11-18 21:09 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-18 10:28 [PATCH] mm: remove struct reclaim_state Konstantin Khlebnikov
2011-11-18 10:28 ` Konstantin Khlebnikov
2011-11-18 9:56 ` Dave Chinner
2011-11-18 9:56 ` Dave Chinner
2011-11-18 10:07 ` Konstantin Khlebnikov
2011-11-18 10:07 ` Konstantin Khlebnikov
2011-11-18 21:09 ` Dave Chinner [this message]
2011-11-18 21:09 ` Dave Chinner
2011-11-19 9:55 ` [PATCH v2] " Konstantin Khlebnikov
2011-11-19 9:55 ` Konstantin Khlebnikov
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=20111118210941.GK7046@dastard \
--to=david@fromorbit.com \
--cc=akpm@linux-foundation.org \
--cc=khlebnikov@openvz.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.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.