From: Cyrill Gorcunov <gorcunov@gmail.com>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: Andi Kleen <andi@firstfloor.org>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH] [4/13] Prepare page_alloc for the maskable allocator
Date: Fri, 7 Mar 2008 21:36:05 +0300 [thread overview]
Message-ID: <20080307183605.GC7589@cvg> (raw)
In-Reply-To: <20080307181943.GA14779@uranus.ravnborg.org>
[Sam Ravnborg - Fri, Mar 07, 2008 at 07:19:43PM +0100]
| Hi Andi.
|
| > Index: linux/mm/internal.h
| > ===================================================================
| > --- linux.orig/mm/internal.h
| > +++ linux/mm/internal.h
| > @@ -12,6 +12,7 @@
| > #define __MM_INTERNAL_H
| >
| > #include <linux/mm.h>
| > +#include <linux/memcontrol.h>
| >
| > static inline void set_page_count(struct page *page, int v)
| > {
| > @@ -48,6 +49,72 @@ static inline unsigned long page_order(s
| > return page_private(page);
| > }
| >
| > +extern void bad_page(struct page *page);
| > +
| > +static inline int free_pages_check(struct page *page, unsigned long addflags)
| > +{
| > + if (unlikely(page_mapcount(page) |
| > + (page->mapping != NULL) |
| > + (page_get_page_cgroup(page) != NULL) |
| > + (page_count(page) != 0) |
| > + (page->flags & (
| > + addflags |
| > + 1 << PG_lru |
| > + 1 << PG_private |
| > + 1 << PG_locked |
| > + 1 << PG_active |
| > + 1 << PG_slab |
| > + 1 << PG_swapcache |
| > + 1 << PG_writeback |
| > + 1 << PG_reserved |
| > + 1 << PG_buddy))))
| > + bad_page(page);
| > + if (PageDirty(page))
| > + __ClearPageDirty(page);
| > + /*
| > + * For now, we report if PG_reserved was found set, but do not
| > + * clear it, and do not free the page. But we shall soon need
| > + * to do more, for when the ZERO_PAGE count wraps negative.
| > + */
| > + return PageReserved(page);
| > +}
| Looks a bit too big for an inline in a header (~9 lines of code)?
|
well, it will not be that big in compiled form 'cause in real it is
page->flags & (addflags | (precompiled constant))
| > +
| > +/* Set up a struc page for business during allocation */
| > +static inline int page_prep_struct(struct page *page)
| > +{
| > + if (unlikely(page_mapcount(page) |
| > + (page->mapping != NULL) |
| > + (page_get_page_cgroup(page) != NULL) |
| > + (page_count(page) != 0) |
| > + (page->flags & (
| > + 1 << PG_lru |
| > + 1 << PG_private |
| > + 1 << PG_locked |
| > + 1 << PG_active |
| > + 1 << PG_dirty |
| > + 1 << PG_slab |
| > + 1 << PG_swapcache |
| > + 1 << PG_writeback |
| > + 1 << PG_reserved |
| > + 1 << PG_buddy))))
| > + bad_page(page);
| > +
| > + /*
| > + * For now, we report if PG_reserved was found set, but do not
| > + * clear it, and do not allocate the page: as a safety net.
| > + */
| > + if (PageReserved(page))
| > + return 1;
| > +
| > + page->flags &= ~(1 << PG_uptodate | 1 << PG_error | 1 << PG_readahead |
| > + 1 << PG_referenced | 1 << PG_arch_1 |
| > + 1 << PG_owner_priv_1 | 1 << PG_mappedtodisk);
| > + set_page_private(page, 0);
| > + set_page_refcounted(page);
| > +
| > + return 0;
| > +}
| Again - looks too big to inline..
|
| But for both I do not know where they are used and how often.
|
| Sam
| --
| To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
| the body of a message to majordomo@vger.kernel.org
| More majordomo info at http://vger.kernel.org/majordomo-info.html
| Please read the FAQ at http://www.tux.org/lkml/
|
- Cyrill -
WARNING: multiple messages have this Message-ID (diff)
From: Cyrill Gorcunov <gorcunov@gmail.com>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: Andi Kleen <andi@firstfloor.org>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH] [4/13] Prepare page_alloc for the maskable allocator
Date: Fri, 7 Mar 2008 21:36:05 +0300 [thread overview]
Message-ID: <20080307183605.GC7589@cvg> (raw)
In-Reply-To: <20080307181943.GA14779@uranus.ravnborg.org>
[Sam Ravnborg - Fri, Mar 07, 2008 at 07:19:43PM +0100]
| Hi Andi.
|
| > Index: linux/mm/internal.h
| > ===================================================================
| > --- linux.orig/mm/internal.h
| > +++ linux/mm/internal.h
| > @@ -12,6 +12,7 @@
| > #define __MM_INTERNAL_H
| >
| > #include <linux/mm.h>
| > +#include <linux/memcontrol.h>
| >
| > static inline void set_page_count(struct page *page, int v)
| > {
| > @@ -48,6 +49,72 @@ static inline unsigned long page_order(s
| > return page_private(page);
| > }
| >
| > +extern void bad_page(struct page *page);
| > +
| > +static inline int free_pages_check(struct page *page, unsigned long addflags)
| > +{
| > + if (unlikely(page_mapcount(page) |
| > + (page->mapping != NULL) |
| > + (page_get_page_cgroup(page) != NULL) |
| > + (page_count(page) != 0) |
| > + (page->flags & (
| > + addflags |
| > + 1 << PG_lru |
| > + 1 << PG_private |
| > + 1 << PG_locked |
| > + 1 << PG_active |
| > + 1 << PG_slab |
| > + 1 << PG_swapcache |
| > + 1 << PG_writeback |
| > + 1 << PG_reserved |
| > + 1 << PG_buddy))))
| > + bad_page(page);
| > + if (PageDirty(page))
| > + __ClearPageDirty(page);
| > + /*
| > + * For now, we report if PG_reserved was found set, but do not
| > + * clear it, and do not free the page. But we shall soon need
| > + * to do more, for when the ZERO_PAGE count wraps negative.
| > + */
| > + return PageReserved(page);
| > +}
| Looks a bit too big for an inline in a header (~9 lines of code)?
|
well, it will not be that big in compiled form 'cause in real it is
page->flags & (addflags | (precompiled constant))
| > +
| > +/* Set up a struc page for business during allocation */
| > +static inline int page_prep_struct(struct page *page)
| > +{
| > + if (unlikely(page_mapcount(page) |
| > + (page->mapping != NULL) |
| > + (page_get_page_cgroup(page) != NULL) |
| > + (page_count(page) != 0) |
| > + (page->flags & (
| > + 1 << PG_lru |
| > + 1 << PG_private |
| > + 1 << PG_locked |
| > + 1 << PG_active |
| > + 1 << PG_dirty |
| > + 1 << PG_slab |
| > + 1 << PG_swapcache |
| > + 1 << PG_writeback |
| > + 1 << PG_reserved |
| > + 1 << PG_buddy))))
| > + bad_page(page);
| > +
| > + /*
| > + * For now, we report if PG_reserved was found set, but do not
| > + * clear it, and do not allocate the page: as a safety net.
| > + */
| > + if (PageReserved(page))
| > + return 1;
| > +
| > + page->flags &= ~(1 << PG_uptodate | 1 << PG_error | 1 << PG_readahead |
| > + 1 << PG_referenced | 1 << PG_arch_1 |
| > + 1 << PG_owner_priv_1 | 1 << PG_mappedtodisk);
| > + set_page_private(page, 0);
| > + set_page_refcounted(page);
| > +
| > + return 0;
| > +}
| Again - looks too big to inline..
|
| But for both I do not know where they are used and how often.
|
| Sam
| --
| To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
| the body of a message to majordomo@vger.kernel.org
| More majordomo info at http://vger.kernel.org/majordomo-info.html
| Please read the FAQ at http://www.tux.org/lkml/
|
- Cyrill -
--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2008-03-07 18:36 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-07 9:07 [PATCH] [0/13] General DMA zone rework Andi Kleen
2008-03-07 9:07 ` Andi Kleen
2008-03-07 9:07 ` [PATCH] [2/13] Make get_order(0) return 0 Andi Kleen
2008-03-07 9:07 ` Andi Kleen
2008-03-07 9:07 ` [PATCH] [3/13] Make kvm bad_page symbol static Andi Kleen
2008-03-07 9:07 ` Andi Kleen
2008-03-07 9:07 ` [PATCH] [4/13] Prepare page_alloc for the maskable allocator Andi Kleen
2008-03-07 9:07 ` Andi Kleen
2008-03-07 18:19 ` Sam Ravnborg
2008-03-07 18:19 ` Sam Ravnborg
2008-03-07 18:36 ` Cyrill Gorcunov [this message]
2008-03-07 18:36 ` Cyrill Gorcunov
2008-03-07 19:02 ` Andi Kleen
2008-03-07 19:02 ` Andi Kleen
2008-03-07 9:07 ` [PATCH] [5/13] Add mask allocator statistics to vmstat.[ch] Andi Kleen
2008-03-07 9:07 ` Andi Kleen
2008-03-08 2:24 ` Christoph Lameter
2008-03-08 2:24 ` Christoph Lameter
2008-03-07 9:07 ` [PATCH] [6/13] Core maskable allocator Andi Kleen
2008-03-07 9:07 ` Andi Kleen
2008-03-07 10:53 ` Johannes Weiner
2008-03-07 10:53 ` Johannes Weiner
2008-03-07 11:14 ` Andi Kleen
2008-03-07 11:14 ` Andi Kleen
2008-03-07 17:05 ` Randy Dunlap
2008-03-07 17:05 ` Randy Dunlap
2008-03-07 17:31 ` Andi Kleen
2008-03-07 17:31 ` Andi Kleen
2008-03-07 17:33 ` Randy Dunlap
2008-03-07 17:33 ` Randy Dunlap
2008-03-07 17:43 ` Andi Kleen
2008-03-07 17:43 ` Andi Kleen
2008-03-07 17:51 ` Randy Dunlap
2008-03-07 17:51 ` Randy Dunlap
2008-03-07 21:13 ` Cyrill Gorcunov
2008-03-07 21:13 ` Cyrill Gorcunov
2008-03-07 23:28 ` Andi Kleen
2008-03-07 23:28 ` Andi Kleen
2008-03-08 5:03 ` KAMEZAWA Hiroyuki
2008-03-08 5:03 ` KAMEZAWA Hiroyuki
2008-03-08 5:41 ` KAMEZAWA Hiroyuki
2008-03-08 5:41 ` KAMEZAWA Hiroyuki
2008-03-08 11:41 ` Andi Kleen
2008-03-08 11:41 ` Andi Kleen
2008-03-11 15:34 ` Jonathan Corbet
2008-03-11 15:34 ` Jonathan Corbet
2008-03-11 15:54 ` Andi Kleen
2008-03-11 15:54 ` Andi Kleen
2008-03-07 9:07 ` [PATCH] [7/13] Implement compat hooks for GFP_DMA Andi Kleen
2008-03-07 9:07 ` Andi Kleen
2008-03-07 9:07 ` [PATCH] [8/13] Enable the mask allocator for x86 Andi Kleen
2008-03-07 9:07 ` Andi Kleen
2008-03-07 18:32 ` Sam Ravnborg
2008-03-07 18:32 ` Sam Ravnborg
2008-03-07 19:03 ` Andi Kleen
2008-03-07 19:03 ` Andi Kleen
2008-03-07 19:09 ` Sam Ravnborg
2008-03-07 19:09 ` Sam Ravnborg
2008-03-08 2:37 ` Christoph Lameter
2008-03-08 2:37 ` Christoph Lameter
2008-03-08 6:35 ` Yinghai Lu
2008-03-08 6:35 ` Yinghai Lu
2008-03-08 7:31 ` Christoph Lameter
2008-03-08 7:31 ` Christoph Lameter
2008-03-08 11:54 ` Andi Kleen
2008-03-08 11:54 ` Andi Kleen
2008-03-10 17:13 ` Christoph Lameter
2008-03-10 17:13 ` Christoph Lameter
2008-03-07 9:07 ` [PATCH] [9/13] Remove set_dma_reserve Andi Kleen
2008-03-07 9:07 ` Andi Kleen
2008-03-07 9:07 ` [PATCH] [10/13] Switch the 32bit dma_alloc_coherent functions over to use the maskable allocator Andi Kleen
2008-03-07 9:07 ` Andi Kleen
2008-03-07 9:07 ` [PATCH] [11/13] Switch x86-64 dma_alloc_coherent over to " Andi Kleen
2008-03-07 9:07 ` Andi Kleen
2008-03-07 9:07 ` [PATCH] [12/13] Add vmstat statistics for new swiotlb code Andi Kleen
2008-03-07 9:07 ` Andi Kleen
2008-03-08 2:38 ` Christoph Lameter
2008-03-08 2:38 ` Christoph Lameter
2008-03-07 9:07 ` [PATCH] [13/13] Convert x86-64 swiotlb to use the mask allocator directly Andi Kleen
2008-03-07 9:07 ` Andi Kleen
2008-03-07 15:18 ` [PATCH] [0/13] General DMA zone rework Rene Herman
2008-03-07 15:18 ` Rene Herman
2008-03-07 15:22 ` Rene Herman
2008-03-07 15:22 ` Rene Herman
2008-03-07 15:31 ` Andi Kleen
2008-03-07 15:31 ` Andi Kleen
2008-03-07 15:34 ` Andi Kleen
2008-03-07 15:34 ` Andi Kleen
2008-03-07 20:51 ` Luiz Fernando N. Capitulino
2008-03-07 20:51 ` Luiz Fernando N. Capitulino
2008-03-08 0:46 ` Andi Kleen
2008-03-08 0:46 ` Andi Kleen
2008-03-10 18:03 ` Luiz Fernando N. Capitulino
2008-03-10 18:03 ` Luiz Fernando N. Capitulino
2008-03-10 18:08 ` Andi Kleen
2008-03-10 18:08 ` Andi Kleen
2008-03-11 17:26 ` Luiz Fernando N. Capitulino
2008-03-11 17:26 ` Luiz Fernando N. Capitulino
2008-03-11 17:35 ` Andi Kleen
2008-03-11 17:35 ` Andi Kleen
2008-03-11 18:00 ` Luiz Fernando N. Capitulino
2008-03-11 18:00 ` Luiz Fernando N. Capitulino
2008-03-11 18:49 ` Andi Kleen
2008-03-11 18:49 ` Andi Kleen
2008-03-11 19:36 ` Luiz Fernando N. Capitulino
2008-03-11 19:36 ` Luiz Fernando N. Capitulino
2008-03-08 2:42 ` Christoph Lameter
2008-03-08 2:42 ` Christoph Lameter
2008-03-08 11:57 ` Andi Kleen
2008-03-08 11:57 ` Andi Kleen
2008-03-10 17:14 ` Christoph Lameter
2008-03-10 17:14 ` Christoph Lameter
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=20080307183605.GC7589@cvg \
--to=gorcunov@gmail.com \
--cc=andi@firstfloor.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=sam@ravnborg.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.