From: Dave Hansen <haveblue@us.ibm.com>
To: linux-mm@kvack.org
Cc: ak@suse.de, Dave Hansen <haveblue@us.ibm.com>
Subject: [patch] kill off ARCH_HAS_ATOMIC_UNSIGNED (take 2)
Date: Fri, 17 Dec 2004 09:26:03 -0800 [thread overview]
Message-ID: <E1CfLrg-0007VC-00@kernel.beaverton.ibm.com> (raw)
Andi says that we don't need this on x86_64 any more. Since it
is the only user, let's kill it off completely. BTW, this now
makes 4 free bytes of space in page->flags for all 64-bit
architectures to use.
Also get rid of the typedef.
Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
---
apw2-dave/include/asm-x86_64/bitops.h | 2 --
apw2-dave/include/linux/mm.h | 10 ++--------
apw2-dave/include/linux/mmzone.h | 2 +-
apw2-dave/mm/filemap.c | 2 +-
apw2-dave/mm/page_alloc.c | 2 +-
5 files changed, 5 insertions(+), 13 deletions(-)
diff -puN arch/x86_64/Kconfig~000-CONFIG_ARCH_HAS_ATOMIC_UNSIGNED arch/x86_64/Kconfig
diff -puN include/linux/mm.h~000-CONFIG_ARCH_HAS_ATOMIC_UNSIGNED include/linux/mm.h
--- apw2/include/linux/mm.h~000-CONFIG_ARCH_HAS_ATOMIC_UNSIGNED 2004-12-16 16:29:29.000000000 -0800
+++ apw2-dave/include/linux/mm.h 2004-12-17 09:19:41.000000000 -0800
@@ -216,12 +216,6 @@ struct vm_operations_struct {
struct mmu_gather;
struct inode;
-#ifdef ARCH_HAS_ATOMIC_UNSIGNED
-typedef unsigned page_flags_t;
-#else
-typedef unsigned long page_flags_t;
-#endif
-
/*
* Each physical page in the system has a struct page associated with
* it to keep track of whatever it is we are using the page for at the
@@ -229,7 +223,7 @@ typedef unsigned long page_flags_t;
* a page.
*/
struct page {
- page_flags_t flags; /* Atomic flags, some possibly
+ unsigned long flags; /* Atomic flags, some possibly
* updated asynchronously */
atomic_t _count; /* Usage count, see below. */
atomic_t _mapcount; /* Count of ptes mapped in mms,
@@ -409,7 +403,7 @@ static inline void put_page(struct page
* We'll have up to (MAX_NUMNODES * MAX_NR_ZONES) zones total,
* so we use (MAX_NODES_SHIFT + MAX_ZONES_SHIFT) here to get enough bits.
*/
-#define NODEZONE_SHIFT (sizeof(page_flags_t)*8 - MAX_NODES_SHIFT - MAX_ZONES_SHIFT)
+#define NODEZONE_SHIFT (sizeof(unsigned long)*8 - MAX_NODES_SHIFT - MAX_ZONES_SHIFT)
#define NODEZONE(node, zone) ((node << ZONES_SHIFT) | zone)
static inline unsigned long page_zonenum(struct page *page)
diff -puN include/linux/mmzone.h~000-CONFIG_ARCH_HAS_ATOMIC_UNSIGNED include/linux/mmzone.h
--- apw2/include/linux/mmzone.h~000-CONFIG_ARCH_HAS_ATOMIC_UNSIGNED 2004-12-16 16:29:29.000000000 -0800
+++ apw2-dave/include/linux/mmzone.h 2004-12-17 08:05:30.000000000 -0800
@@ -388,7 +388,7 @@ extern struct pglist_data contig_page_da
#include <asm/mmzone.h>
-#if BITS_PER_LONG == 32 || defined(ARCH_HAS_ATOMIC_UNSIGNED)
+#if BITS_PER_LONG == 32
/*
* with 32 bit page->flags field, we reserve 8 bits for node/zone info.
* there are 3 zones (2 bits) and this leaves 8-2=6 bits for nodes.
diff -puN include/asm-x86_64/bitops.h~000-CONFIG_ARCH_HAS_ATOMIC_UNSIGNED include/asm-x86_64/bitops.h
--- apw2/include/asm-x86_64/bitops.h~000-CONFIG_ARCH_HAS_ATOMIC_UNSIGNED 2004-12-16 16:32:42.000000000 -0800
+++ apw2-dave/include/asm-x86_64/bitops.h 2004-12-17 08:05:47.000000000 -0800
@@ -411,8 +411,6 @@ static __inline__ int ffs(int x)
/* find last set bit */
#define fls(x) generic_fls(x)
-#define ARCH_HAS_ATOMIC_UNSIGNED 1
-
#endif /* __KERNEL__ */
#endif /* _X86_64_BITOPS_H */
diff -puN mm/page_alloc.c~000-CONFIG_ARCH_HAS_ATOMIC_UNSIGNED mm/page_alloc.c
--- apw2/mm/page_alloc.c~000-CONFIG_ARCH_HAS_ATOMIC_UNSIGNED 2004-12-17 09:19:30.000000000 -0800
+++ apw2-dave/mm/page_alloc.c 2004-12-17 09:19:48.000000000 -0800
@@ -85,7 +85,7 @@ static void bad_page(const char *functio
printk(KERN_EMERG "Bad page state at %s (in process '%s', page %p)\n",
function, current->comm, page);
printk(KERN_EMERG "flags:0x%0*lx mapping:%p mapcount:%d count:%d\n",
- (int)(2*sizeof(page_flags_t)), (unsigned long)page->flags,
+ (int)(2*sizeof(unsigned long)), (unsigned long)page->flags,
page->mapping, page_mapcount(page), page_count(page));
printk(KERN_EMERG "Backtrace:\n");
dump_stack();
diff -puN mm/filemap.c~000-CONFIG_ARCH_HAS_ATOMIC_UNSIGNED mm/filemap.c
--- apw2/mm/filemap.c~000-CONFIG_ARCH_HAS_ATOMIC_UNSIGNED 2004-12-17 09:19:34.000000000 -0800
+++ apw2-dave/mm/filemap.c 2004-12-17 09:20:02.000000000 -0800
@@ -138,7 +138,7 @@ static int sync_page(void *word)
struct address_space *mapping;
struct page *page;
- page = container_of((page_flags_t *)word, struct page, flags);
+ page = container_of((unsigned long *)word, struct page, flags);
/*
* FIXME, fercrissake. What is this barrier here for?
_
--
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>
next reply other threads:[~2004-12-17 17:26 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-17 17:26 Dave Hansen [this message]
2004-12-17 18:17 ` Hugh Dickins
2004-12-17 18:27 ` Dave Hansen
2004-12-17 18:38 ` Hugh Dickins
2004-12-17 23:54 ` Paul Jackson
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=E1CfLrg-0007VC-00@kernel.beaverton.ibm.com \
--to=haveblue@us.ibm.com \
--cc=ak@suse.de \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox