* page flags ?
@ 2005-05-18 21:13 Badari Pulavarty
2005-05-18 21:56 ` Andrew Morton
0 siblings, 1 reply; 17+ messages in thread
From: Badari Pulavarty @ 2005-05-18 21:13 UTC (permalink / raw)
To: linux-mm, linux-fsdevel; +Cc: Andrew Morton
Does anyone know what this page-flag is used for ? I see some
references to this in AFS.
Is it possible for me to use this for my own use in ext3 ?
(like delayed allocations ?) Any generic routines/VM stuff
expects me to use this only for a specific purpose ?
#define PG_fs_misc 9 /* Filesystem specific bit */
Thanks,
Badari
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-18 21:13 page flags ? Badari Pulavarty
@ 2005-05-18 21:56 ` Andrew Morton
2005-05-18 22:42 ` Badari Pulavarty
0 siblings, 1 reply; 17+ messages in thread
From: Andrew Morton @ 2005-05-18 21:56 UTC (permalink / raw)
To: Badari Pulavarty; +Cc: linux-mm, linux-fsdevel
Badari Pulavarty <pbadari@us.ibm.com> wrote:
>
> Does anyone know what this page-flag is used for ? I see some
> references to this in AFS.
>
> Is it possible for me to use this for my own use in ext3 ?
> (like delayed allocations ?) Any generic routines/VM stuff
> expects me to use this only for a specific purpose ?
>
> #define PG_fs_misc 9 /* Filesystem specific bit */
>
It's identical to PG_checked, added by David Howells'
provide-a-filesystem-specific-syncable-page-bit.patch
IIRC we decided to expand the definition of PG_checked to mean
"a_ops-private, fs-defined page flag". I guess if/when that patch is
merged we'll do a kernel-wide s/PG_checked/PG_fs_misc/.
And ext3 is already using that flag.
--
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:"aart@kvack.org"> aart@kvack.org </a>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-18 21:56 ` Andrew Morton
@ 2005-05-18 22:42 ` Badari Pulavarty
2005-05-18 23:23 ` Andrew Morton
2005-05-18 23:57 ` Bryan Henderson
0 siblings, 2 replies; 17+ messages in thread
From: Badari Pulavarty @ 2005-05-18 22:42 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-mm, linux-fsdevel
On Wed, 2005-05-18 at 14:56, Andrew Morton wrote:
> Badari Pulavarty <pbadari@us.ibm.com> wrote:
> >
> > Does anyone know what this page-flag is used for ? I see some
> > references to this in AFS.
> >
> > Is it possible for me to use this for my own use in ext3 ?
> > (like delayed allocations ?) Any generic routines/VM stuff
> > expects me to use this only for a specific purpose ?
> >
> > #define PG_fs_misc 9 /* Filesystem specific bit */
> >
>
> It's identical to PG_checked, added by David Howells'
> provide-a-filesystem-specific-syncable-page-bit.patch
>
> IIRC we decided to expand the definition of PG_checked to mean
> "a_ops-private, fs-defined page flag". I guess if/when that patch is
> merged we'll do a kernel-wide s/PG_checked/PG_fs_misc/.
>
> And ext3 is already using that flag.
:(
Is it possible to get yet another PG_fs_specific flag ?
Reasons for it are:
- I need this for supporting delayed allocation on ext3. Me, Ted
and Suparna thought about it for a while to see we can
workaround it. So far, I haven't found a clean way.
- useful for other folks currently overloading page->private
for this purpose. May be then, we can make most filesystems
use mpage routines (since they assume page->private is for
bufferheads ?)
Thanks,
Badari
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-18 22:42 ` Badari Pulavarty
@ 2005-05-18 23:23 ` Andrew Morton
2005-05-19 0:09 ` Badari Pulavarty
2005-05-19 10:51 ` Andy Whitcroft
2005-05-18 23:57 ` Bryan Henderson
1 sibling, 2 replies; 17+ messages in thread
From: Andrew Morton @ 2005-05-18 23:23 UTC (permalink / raw)
To: Badari Pulavarty; +Cc: linux-mm, linux-fsdevel
Badari Pulavarty <pbadari@us.ibm.com> wrote:
>
> Is it possible to get yet another PG_fs_specific flag ?
Anything's possible ;)
How many bits are spare now? ZONETABLE_PGSHIFT hurts my brain.
> Reasons for it are:
>
> - I need this for supporting delayed allocation on ext3.
Why?
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-18 22:42 ` Badari Pulavarty
2005-05-18 23:23 ` Andrew Morton
@ 2005-05-18 23:57 ` Bryan Henderson
1 sibling, 0 replies; 17+ messages in thread
From: Bryan Henderson @ 2005-05-18 23:57 UTC (permalink / raw)
To: pbadari; +Cc: Andrew Morton, linux-fsdevel, linux-mm
By the way, shouldn't these really be PG_as_misc/PG_as_specific as opposed
to PG_fs_misc ...?
In theory, an address space can be something other than a file cache, and
there's no reason any arbitrary adress_space_ops shouldn't have its own
private flags.
--
Bryan Henderson IBM Almaden Research Center
San Jose CA Filesystems
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-18 23:23 ` Andrew Morton
@ 2005-05-19 0:09 ` Badari Pulavarty
2005-05-19 0:26 ` Chandra Seetharaman
2005-05-19 1:36 ` Dave Hansen
2005-05-19 10:51 ` Andy Whitcroft
1 sibling, 2 replies; 17+ messages in thread
From: Badari Pulavarty @ 2005-05-19 0:09 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-mm, linux-fsdevel
On Wed, 2005-05-18 at 16:23, Andrew Morton wrote:
> Badari Pulavarty <pbadari@us.ibm.com> wrote:
> >
> > Is it possible to get yet another PG_fs_specific flag ?
>
> Anything's possible ;)
>
> How many bits are spare now? ZONETABLE_PGSHIFT hurts my brain.
Depends on whom you ask :) CKRM folks are using one/few,
Hotplug memory guys are using one... :( I lost track..
>
> > Reasons for it are:
> >
> > - I need this for supporting delayed allocation on ext3.
>
> Why?
>
I think, I explained you earlier.. But let me refresh your memory.
In order to do delayed allocation, we "reserve" (not same reservation
the code) a block in prepare/commit and do the allocation in
writepage/writepages. Unfortunately, mapped writes directly come into
writepage without making a reservation. In order to guarantee that
write() succeeds, I need a way to indicate if the "page" has made
a reservation or not. I was hoping to use a page->flag to do this.
That way I don't have to touch page->private like Alex's code and
get away using mpage routines, instead of having my own.
Thanks,
Badari
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-19 0:09 ` Badari Pulavarty
@ 2005-05-19 0:26 ` Chandra Seetharaman
2005-05-19 1:36 ` Dave Hansen
1 sibling, 0 replies; 17+ messages in thread
From: Chandra Seetharaman @ 2005-05-19 0:26 UTC (permalink / raw)
To: Badari Pulavarty; +Cc: Andrew Morton, linux-mm, linux-fsdevel
On Wed, May 18, 2005 at 05:09:29PM -0700, Badari Pulavarty wrote:
> On Wed, 2005-05-18 at 16:23, Andrew Morton wrote:
> > Badari Pulavarty <pbadari@us.ibm.com> wrote:
> > >
> > > Is it possible to get yet another PG_fs_specific flag ?
> >
> > Anything's possible ;)
> >
> > How many bits are spare now? ZONETABLE_PGSHIFT hurts my brain.
>
> Depends on whom you ask :) CKRM folks are using one/few,
CKRM used one bit... getting rid of it..
> Hotplug memory guys are using one... :( I lost track..
>
> >
> > > Reasons for it are:
> > >
> > > - I need this for supporting delayed allocation on ext3.
> >
> > Why?
> >
>
> I think, I explained you earlier.. But let me refresh your memory.
>
>
> In order to do delayed allocation, we "reserve" (not same reservation
> the code) a block in prepare/commit and do the allocation in
> writepage/writepages. Unfortunately, mapped writes directly come into
> writepage without making a reservation. In order to guarantee that
> write() succeeds, I need a way to indicate if the "page" has made
> a reservation or not. I was hoping to use a page->flag to do this.
> That way I don't have to touch page->private like Alex's code and
> get away using mpage routines, instead of having my own.
>
>
> Thanks,
> Badari
>
>
> --
> 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:"aart@kvack.org"> aart@kvack.org </a>
--
----------------------------------------------------------------------
Chandra Seetharaman | Be careful what you choose....
- sekharan@us.ibm.com | .......you may get it.
----------------------------------------------------------------------
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-19 0:09 ` Badari Pulavarty
2005-05-19 0:26 ` Chandra Seetharaman
@ 2005-05-19 1:36 ` Dave Hansen
1 sibling, 0 replies; 17+ messages in thread
From: Dave Hansen @ 2005-05-19 1:36 UTC (permalink / raw)
To: Badari Pulavarty; +Cc: Andrew Morton, linux-mm, linux-fsdevel
On Wed, 2005-05-18 at 17:09 -0700, Badari Pulavarty wrote:
> On Wed, 2005-05-18 at 16:23, Andrew Morton wrote:
> > Badari Pulavarty <pbadari@us.ibm.com> wrote:
> > >
> > > Is it possible to get yet another PG_fs_specific flag ?
> >
> > Anything's possible ;)
> >
> > How many bits are spare now? ZONETABLE_PGSHIFT hurts my brain.
>
> Depends on whom you ask :) CKRM folks are using one/few,
> Hotplug memory guys are using one... :( I lost track..
Don't worry about me :) There are a billion different ways to do what I
currently need that bit for. It's just the easiest, and I'll code
something up that doesn't steal space from everyone else before I submit
it.
-- Dave
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-18 23:23 ` Andrew Morton
2005-05-19 0:09 ` Badari Pulavarty
@ 2005-05-19 10:51 ` Andy Whitcroft
2005-05-19 11:11 ` Andrew Morton
1 sibling, 1 reply; 17+ messages in thread
From: Andy Whitcroft @ 2005-05-19 10:51 UTC (permalink / raw)
To: Andrew Morton; +Cc: Badari Pulavarty, linux-mm, linux-fsdevel
Andrew Morton wrote:
> Anything's possible ;)
>
> How many bits are spare now? ZONETABLE_PGSHIFT hurts my brain.
The short answer is that on 32 bit architectures there are 24 bits
allocated to general page flags, page-flags.h indicates that 21 are
currently assigned so assuming it is accurate there are currently 3 bits
free.
Perhaps this my cue to chip in and provide some commentry on the
zonetable patches.
Before the zonetable patches the flags were essentially split into two
sections, the top 8 bits for the NODEZONE 'pointer' and the remaining 24
bits for page flags. The NODEZONE bits were further subdivided into
NODE and ZONE. For i386 for instance 2 bits were allocated to ZONE and
6 bits for NODE. There was no flexibility in layout.
32 24 0
| NODE | ZONE | ... | FLAGS |
The zonetable patches came out of the need to add a new field into this
area; the SECTION field for the SPARSEMEM work. This meant that we
wanted to be able to specify both the size and packing order for these
fields. This would allow us to specify unused fields as 0 width to
reclaim precious bits. It would also allow us to optimise order such
that the key performance critical mapping from page to struct zone
pointer was efficient to extract (a single shift). This key is commonly
NODE,ZONE but may be SECTION,ZONE when short of space, the two fields in
use need to be contigious and preferably at the left.
The zonetable patches work by allowing us to simply define the width of
each field we are using and the order of those fields. Field widths are
defined by the *_WIDTH definitions, these are either the architecture
specific default width *_SHIFT or 0 where the field is not required (for
instance if not used by the current memory model). The field order is
defined by the relationships between the *_PGOFF definitions, packing
them from the left of the field. Access to these fields is via the
*_PGSHIFT and *_MASK defines. Care is taken to ensure that they are
valid for a zero with field. The ZONETABLE_PGSHIFT and _MASK define the
combined key field used to locate the struct zone for this page.
Overall the allocation to the NODEZONE area is defined to be the highest
order FLAGS_RESERVED bits of the flags word (8 on 32 bit architectures,
and 32 on 64 bit). The overall allocation to this field is unchanged.
-apw
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-19 10:51 ` Andy Whitcroft
@ 2005-05-19 11:11 ` Andrew Morton
2005-05-19 14:37 ` Nikita Danilov
2005-05-19 18:29 ` Badari Pulavarty
0 siblings, 2 replies; 17+ messages in thread
From: Andrew Morton @ 2005-05-19 11:11 UTC (permalink / raw)
To: Andy Whitcroft; +Cc: pbadari, linux-mm, linux-fsdevel
Andy Whitcroft <apw@shadowen.org> wrote:
>
> > How many bits are spare now? ZONETABLE_PGSHIFT hurts my brain.
>
> The short answer is that on 32 bit architectures there are 24 bits
> allocated to general page flags, page-flags.h indicates that 21 are
> currently assigned so assuming it is accurate there are currently 3 bits
> free.
Yipes, I didn't realise we were that close.
We can reclaim PG_highmem, use page_zone(page)->highmem
We can probably reclaim PG_slab
We can conceivably reclaim PG_swapcache, although that stuff got ugly.
Would dearly love to nuke PG_reserved, but everybody's scared of that ;)
PG_uncached is currently ia64-only and could conceivably be moved to bit
32, except there are rumours that arm might want to use it someday.
It's a bit irritating that swsusp uses two flags.
I don't see any other low-hanging fruit there.
--
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:"aart@kvack.org"> aart@kvack.org </a>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-19 11:11 ` Andrew Morton
@ 2005-05-19 14:37 ` Nikita Danilov
2005-05-19 18:29 ` Badari Pulavarty
1 sibling, 0 replies; 17+ messages in thread
From: Nikita Danilov @ 2005-05-19 14:37 UTC (permalink / raw)
To: Andrew Morton; +Cc: pbadari, linux-mm, linux-fsdevel
Andrew Morton writes:
> Andy Whitcroft <apw@shadowen.org> wrote:
> >
> > > How many bits are spare now? ZONETABLE_PGSHIFT hurts my brain.
> >
> > The short answer is that on 32 bit architectures there are 24 bits
> > allocated to general page flags, page-flags.h indicates that 21 are
> > currently assigned so assuming it is accurate there are currently 3 bits
> > free.
>
> Yipes, I didn't realise we were that close.
>
> We can reclaim PG_highmem, use page_zone(page)->highmem
>
> We can probably reclaim PG_slab
>
> We can conceivably reclaim PG_swapcache, although that stuff got ugly.
>
> Would dearly love to nuke PG_reserved, but everybody's scared of that ;)
>
> PG_uncached is currently ia64-only and could conceivably be moved to bit
> 32, except there are rumours that arm might want to use it someday.
>
> It's a bit irritating that swsusp uses two flags.
>
> I don't see any other low-hanging fruit there.
Things like PG_uptodate and PG_error can be moved to the radix-tree tags
after checking that they are used only for pages in the mapping, which
seems to be the case.
> --
Nikita.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-19 11:11 ` Andrew Morton
2005-05-19 14:37 ` Nikita Danilov
@ 2005-05-19 18:29 ` Badari Pulavarty
2005-05-19 22:53 ` Andrew Morton
1 sibling, 1 reply; 17+ messages in thread
From: Badari Pulavarty @ 2005-05-19 18:29 UTC (permalink / raw)
To: Andrew Morton; +Cc: Andy Whitcroft, linux-mm, linux-fsdevel
[-- Attachment #1: Type: text/plain, Size: 629 bytes --]
On Thu, 2005-05-19 at 04:11, Andrew Morton wrote:
> Andy Whitcroft <apw@shadowen.org> wrote:
> >
> > > How many bits are spare now? ZONETABLE_PGSHIFT hurts my brain.
> >
> > The short answer is that on 32 bit architectures there are 24 bits
> > allocated to general page flags, page-flags.h indicates that 21 are
> > currently assigned so assuming it is accurate there are currently 3 bits
> > free.
>
> Yipes, I didn't realise we were that close.
>
> We can reclaim PG_highmem, use page_zone(page)->highmem
Your wish is my command :)
I am worried about the overhead this might add to kmap/kunmap().
Thanks,
Badari
[-- Attachment #2: PG_highmem-remove.patch --]
[-- Type: text/plain, Size: 5454 bytes --]
Patch to remove PG_highmem from page->flags.
Signed-off-by: Badari Pulavarty <pbadari@us.ibm.com>
arch/frv/mm/init.c | 1 -
arch/i386/mm/init.c | 1 -
arch/mips/mm/init.c | 1 -
arch/ppc/mm/init.c | 1 -
arch/sparc/mm/init.c | 1 -
arch/um/kernel/mem.c | 1 -
fs/reiser4/page_cache.c | 3 +--
include/linux/page-flags.h | 4 ++--
8 files changed, 3 insertions(+), 10 deletions(-)
diff -X dontdiff -Narup linux-2.6.12-rc4.org/arch/frv/mm/init.c linux-2.6.12-rc4/arch/frv/mm/init.c
--- linux-2.6.12-rc4.org/arch/frv/mm/init.c 2005-05-06 22:20:31.000000000 -0700
+++ linux-2.6.12-rc4/arch/frv/mm/init.c 2005-05-19 03:43:27.266433184 -0700
@@ -169,7 +169,6 @@ void __init mem_init(void)
struct page *page = &mem_map[pfn];
ClearPageReserved(page);
- set_bit(PG_highmem, &page->flags);
set_page_count(page, 1);
__free_page(page);
totalram_pages++;
diff -X dontdiff -Narup linux-2.6.12-rc4.org/arch/i386/mm/init.c linux-2.6.12-rc4/arch/i386/mm/init.c
--- linux-2.6.12-rc4.org/arch/i386/mm/init.c 2005-05-17 02:27:11.350562312 -0700
+++ linux-2.6.12-rc4/arch/i386/mm/init.c 2005-05-19 03:43:43.178014256 -0700
@@ -269,7 +269,6 @@ void __init one_highpage_init(struct pag
{
if (page_is_ram(pfn) && !(bad_ppro && page_kills_ppro(pfn))) {
ClearPageReserved(page);
- set_bit(PG_highmem, &page->flags);
set_page_count(page, 1);
__free_page(page);
totalhigh_pages++;
diff -X dontdiff -Narup linux-2.6.12-rc4.org/arch/mips/mm/init.c linux-2.6.12-rc4/arch/mips/mm/init.c
--- linux-2.6.12-rc4.org/arch/mips/mm/init.c 2005-05-06 22:20:31.000000000 -0700
+++ linux-2.6.12-rc4/arch/mips/mm/init.c 2005-05-19 03:43:57.457843392 -0700
@@ -232,7 +232,6 @@ void __init mem_init(void)
#ifdef CONFIG_LIMITED_DMA
set_page_address(page, lowmem_page_address(page));
#endif
- set_bit(PG_highmem, &page->flags);
set_page_count(page, 1);
__free_page(page);
totalhigh_pages++;
diff -X dontdiff -Narup linux-2.6.12-rc4.org/arch/ppc/mm/init.c linux-2.6.12-rc4/arch/ppc/mm/init.c
--- linux-2.6.12-rc4.org/arch/ppc/mm/init.c 2005-05-17 02:27:11.400554712 -0700
+++ linux-2.6.12-rc4/arch/ppc/mm/init.c 2005-05-19 03:44:18.800598800 -0700
@@ -459,7 +459,6 @@ void __init mem_init(void)
struct page *page = mem_map + pfn;
ClearPageReserved(page);
- set_bit(PG_highmem, &page->flags);
set_page_count(page, 1);
__free_page(page);
totalhigh_pages++;
diff -X dontdiff -Narup linux-2.6.12-rc4.org/arch/sparc/mm/init.c linux-2.6.12-rc4/arch/sparc/mm/init.c
--- linux-2.6.12-rc4.org/arch/sparc/mm/init.c 2005-05-06 22:20:31.000000000 -0700
+++ linux-2.6.12-rc4/arch/sparc/mm/init.c 2005-05-19 03:44:40.526295992 -0700
@@ -384,7 +384,6 @@ void map_high_region(unsigned long start
struct page *page = pfn_to_page(tmp);
ClearPageReserved(page);
- set_bit(PG_highmem, &page->flags);
set_page_count(page, 1);
__free_page(page);
totalhigh_pages++;
diff -X dontdiff -Narup linux-2.6.12-rc4.org/arch/um/kernel/mem.c linux-2.6.12-rc4/arch/um/kernel/mem.c
--- linux-2.6.12-rc4.org/arch/um/kernel/mem.c 2005-05-06 22:20:31.000000000 -0700
+++ linux-2.6.12-rc4/arch/um/kernel/mem.c 2005-05-19 03:45:00.200305088 -0700
@@ -53,7 +53,6 @@ static void setup_highmem(unsigned long
for(i = 0; i < highmem_len >> PAGE_SHIFT; i++){
page = &mem_map[highmem_pfn + i];
ClearPageReserved(page);
- set_bit(PG_highmem, &page->flags);
set_page_count(page, 1);
__free_page(page);
}
diff -X dontdiff -Narup linux-2.6.12-rc4.org/fs/reiser4/page_cache.c linux-2.6.12-rc4/fs/reiser4/page_cache.c
--- linux-2.6.12-rc4.org/fs/reiser4/page_cache.c 2005-05-17 02:27:19.258360144 -0700
+++ linux-2.6.12-rc4/fs/reiser4/page_cache.c 2005-05-19 03:45:38.432492912 -0700
@@ -744,7 +744,7 @@ print_page(const char *prefix, struct pa
}
printk("%s: page index: %lu mapping: %p count: %i private: %lx\n",
prefix, page->index, page->mapping, page_count(page), page->private);
- printk("\tflags: %s%s%s%s %s%s%s %s%s%s %s%s%s\n",
+ printk("\tflags: %s%s%s%s %s%s%s %s%s %s%s%s\n",
page_flag_name(page, PG_locked),
page_flag_name(page, PG_error),
page_flag_name(page, PG_referenced),
@@ -754,7 +754,6 @@ print_page(const char *prefix, struct pa
page_flag_name(page, PG_lru),
page_flag_name(page, PG_slab),
- page_flag_name(page, PG_highmem),
page_flag_name(page, PG_checked),
page_flag_name(page, PG_reserved),
diff -X dontdiff -Narup linux-2.6.12-rc4.org/include/linux/page-flags.h linux-2.6.12-rc4/include/linux/page-flags.h
--- linux-2.6.12-rc4.org/include/linux/page-flags.h 2005-05-17 02:27:20.248209664 -0700
+++ linux-2.6.12-rc4/include/linux/page-flags.h 2005-05-19 03:46:57.214516224 -0700
@@ -61,7 +61,7 @@
#define PG_active 6
#define PG_slab 7 /* slab debug (Suparna wants this) */
-#define PG_highmem 8
+#define PG_highmem_removed 8 /* Trying to kill this */
#define PG_fs_misc 9 /* Filesystem specific bit */
#define PG_checked 9 /* kill me in 2.5.<early>. */
#define PG_arch_1 10
@@ -216,7 +216,7 @@ extern void __mod_page_state(unsigned of
#define TestSetPageSlab(page) test_and_set_bit(PG_slab, &(page)->flags)
#ifdef CONFIG_HIGHMEM
-#define PageHighMem(page) test_bit(PG_highmem, &(page)->flags)
+#define PageHighMem(page) is_highmem(page_zone(page))
#else
#define PageHighMem(page) 0 /* needed to optimize away at compile time */
#endif
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-19 18:29 ` Badari Pulavarty
@ 2005-05-19 22:53 ` Andrew Morton
2005-05-19 23:34 ` Badari Pulavarty
0 siblings, 1 reply; 17+ messages in thread
From: Andrew Morton @ 2005-05-19 22:53 UTC (permalink / raw)
To: Badari Pulavarty; +Cc: apw, linux-mm, linux-fsdevel
Badari Pulavarty <pbadari@us.ibm.com> wrote:
>
> I am worried about the overhead this might add to kmap/kunmap().
>
kmap() already sucks.
> -#define PG_highmem 8
> +#define PG_highmem_removed 8 /* Trying to kill this */
I thnik I'll just nuke this.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-19 22:53 ` Andrew Morton
@ 2005-05-19 23:34 ` Badari Pulavarty
2005-05-20 0:03 ` Martin J. Bligh
0 siblings, 1 reply; 17+ messages in thread
From: Badari Pulavarty @ 2005-05-19 23:34 UTC (permalink / raw)
To: Andrew Morton; +Cc: apw, linux-mm, linux-fsdevel
On Thu, 2005-05-19 at 15:53, Andrew Morton wrote:
> Badari Pulavarty <pbadari@us.ibm.com> wrote:
> >
> > I am worried about the overhead this might add to kmap/kunmap().
> >
>
> kmap() already sucks.
>
I thought so, but wanted to be explicit.
> > -#define PG_highmem 8
> > +#define PG_highmem_removed 8 /* Trying to kill this */
>
> I thnik I'll just nuke this.
Yep. I was just trying to be nice - if some one gets a compile failure,
i wanted them to know that "we are trying to remove it, justify your
case".
BTW, I tried to kill PG_slab. Other than catching error conditions
with memory freeing, there are few users of it
- show_mem(): to show how much memory stuck in slab easily.
- kobjsize()
Thanks,
Badari
--
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:"aart@kvack.org"> aart@kvack.org </a>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-20 0:03 ` Martin J. Bligh
@ 2005-05-19 23:55 ` Badari Pulavarty
2005-05-20 0:20 ` Martin J. Bligh
0 siblings, 1 reply; 17+ messages in thread
From: Badari Pulavarty @ 2005-05-19 23:55 UTC (permalink / raw)
To: Martin J. Bligh; +Cc: Andrew Morton, apw, linux-mm, linux-fsdevel
On Thu, 2005-05-19 at 17:03, Martin J. Bligh wrote:
> --On Thursday, May 19, 2005 16:34:27 -0700 Badari Pulavarty <pbadari@us.ibm.com> wrote:
>
> > On Thu, 2005-05-19 at 15:53, Andrew Morton wrote:
> >> Badari Pulavarty <pbadari@us.ibm.com> wrote:
> >> >
> >> > I am worried about the overhead this might add to kmap/kunmap().
> >> >
> >>
> >> kmap() already sucks.
> >>
> >
> > I thought so, but wanted to be explicit.
> >
> >> > -#define PG_highmem 8
> >> > +#define PG_highmem_removed 8 /* Trying to kill this */
> >>
> >> I thnik I'll just nuke this.
> >
> > Yep. I was just trying to be nice - if some one gets a compile failure,
> > i wanted them to know that "we are trying to remove it, justify your
> > case".
>
> /* #define PG_highmem 8 Dead */
>
> would work ;-)
>
> > BTW, I tried to kill PG_slab. Other than catching error conditions
> > with memory freeing, there are few users of it
> >
> > - show_mem(): to show how much memory stuck in slab easily.
> > - kobjsize()
>
> Is really useful to be able to trace down exactly what mem is in slab,
> and otherwise were memory came from / leaked to. I spose it could could
> be a debug option, but seems a bit sad if we don't need the space yet.
> /proc/meminfo gets it from per cpu page_state, but is nice to have
> a double check.
I agree. I like that "memory stuck in slab" info too :)
Shall we wait till we really really need bits in page->flags ?
Hopefully, by then we will all be 64-bit and life would be wonderful :)
Thanks,
Badari
--
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:"aart@kvack.org"> aart@kvack.org </a>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-19 23:34 ` Badari Pulavarty
@ 2005-05-20 0:03 ` Martin J. Bligh
2005-05-19 23:55 ` Badari Pulavarty
0 siblings, 1 reply; 17+ messages in thread
From: Martin J. Bligh @ 2005-05-20 0:03 UTC (permalink / raw)
To: Badari Pulavarty, Andrew Morton; +Cc: apw, linux-mm, linux-fsdevel
--On Thursday, May 19, 2005 16:34:27 -0700 Badari Pulavarty <pbadari@us.ibm.com> wrote:
> On Thu, 2005-05-19 at 15:53, Andrew Morton wrote:
>> Badari Pulavarty <pbadari@us.ibm.com> wrote:
>> >
>> > I am worried about the overhead this might add to kmap/kunmap().
>> >
>>
>> kmap() already sucks.
>>
>
> I thought so, but wanted to be explicit.
>
>> > -#define PG_highmem 8
>> > +#define PG_highmem_removed 8 /* Trying to kill this */
>>
>> I thnik I'll just nuke this.
>
> Yep. I was just trying to be nice - if some one gets a compile failure,
> i wanted them to know that "we are trying to remove it, justify your
> case".
/* #define PG_highmem 8 Dead */
would work ;-)
> BTW, I tried to kill PG_slab. Other than catching error conditions
> with memory freeing, there are few users of it
>
> - show_mem(): to show how much memory stuck in slab easily.
> - kobjsize()
Is really useful to be able to trace down exactly what mem is in slab,
and otherwise were memory came from / leaked to. I spose it could could
be a debug option, but seems a bit sad if we don't need the space yet.
/proc/meminfo gets it from per cpu page_state, but is nice to have
a double check.
M.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: page flags ?
2005-05-19 23:55 ` Badari Pulavarty
@ 2005-05-20 0:20 ` Martin J. Bligh
0 siblings, 0 replies; 17+ messages in thread
From: Martin J. Bligh @ 2005-05-20 0:20 UTC (permalink / raw)
To: Badari Pulavarty; +Cc: Andrew Morton, apw, linux-mm, linux-fsdevel
>> > BTW, I tried to kill PG_slab. Other than catching error conditions
>> > with memory freeing, there are few users of it
>> >
>> > - show_mem(): to show how much memory stuck in slab easily.
>> > - kobjsize()
>>
>> Is really useful to be able to trace down exactly what mem is in slab,
>> and otherwise were memory came from / leaked to. I spose it could could
>> be a debug option, but seems a bit sad if we don't need the space yet.
>> /proc/meminfo gets it from per cpu page_state, but is nice to have
>> a double check.
>
> I agree. I like that "memory stuck in slab" info too :)
> Shall we wait till we really really need bits in page->flags ?
> Hopefully, by then we will all be 64-bit and life would be wonderful :)
Would be nicer not to kill them until we need ... perhaps they could be
commented as to their potential demise? Then the debug ones could be
wrapped in something else, at least, and made available on 64 bit only
(when it comes to that ...)
M.
--
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:"aart@kvack.org"> aart@kvack.org </a>
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2005-05-20 0:20 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-05-18 21:13 page flags ? Badari Pulavarty
2005-05-18 21:56 ` Andrew Morton
2005-05-18 22:42 ` Badari Pulavarty
2005-05-18 23:23 ` Andrew Morton
2005-05-19 0:09 ` Badari Pulavarty
2005-05-19 0:26 ` Chandra Seetharaman
2005-05-19 1:36 ` Dave Hansen
2005-05-19 10:51 ` Andy Whitcroft
2005-05-19 11:11 ` Andrew Morton
2005-05-19 14:37 ` Nikita Danilov
2005-05-19 18:29 ` Badari Pulavarty
2005-05-19 22:53 ` Andrew Morton
2005-05-19 23:34 ` Badari Pulavarty
2005-05-20 0:03 ` Martin J. Bligh
2005-05-19 23:55 ` Badari Pulavarty
2005-05-20 0:20 ` Martin J. Bligh
2005-05-18 23:57 ` Bryan Henderson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).