the functions are in
#if CONFIG_MIGRATION
...
mm/built-in.o(.text+0x16fc3): In function `check_pte_range':
mempolicy.c: undefined reference to `isolate_lru_page'
mm/built-in.o(.text+0x189a6): In function `swap_pages':
mempolicy.c: undefined reference to `migrate_pages'
mm/built-in.o(.text+0x189b3):mempolicy.c: undefined reference to
`putback_lru_pages'
mm/built-in.o(.text+0x189bd):mempolicy.c: undefined reference to
`putback_lru_pages'
mm/built-in.o(.text+0x18c98): In function `do_mbind':
: undefined reference to `putback_lru_pages'
mm/built-in.o(.text+0x18efe): In function `do_migrate_pages':
: undefined reference to `putback_lru_pages'
make: *** [.tmp_vmlinux1] Error 1
YH
On Wed, 11 Jan 2006, yhlu wrote:
> : undefined reference to `putback_lru_pages'
> make: *** [.tmp_vmlinux1] Error 1
Please post your .config file.
It turns out, if I disable "Support for paging of anonymous memory
(swap)" --- SWAP
the CONFIG_MIGRATION will disappear from the .config
the mm/mempolicy.c may need some #if CONFIG_MIRGRATION to comment out
these calling.
YH
On 1/11/06, Christoph Lameter <[email protected]> wrote:
> On Wed, 11 Jan 2006, yhlu wrote:
>
> > : undefined reference to `putback_lru_pages'
> > make: *** [.tmp_vmlinux1] Error 1
>
> Please post your .config file.
>
>
On Thu, 12 Jan 2006, yhlu wrote:
> It turns out, if I disable "Support for paging of anonymous memory
> (swap)" --- SWAP
>
> the CONFIG_MIGRATION will disappear from the .config
>
> the mm/mempolicy.c may need some #if CONFIG_MIRGRATION to comment out
> these calling.
Could you try this patch:
Index: linux-2.6/include/linux/swap.h
===================================================================
--- linux-2.6.orig/include/linux/swap.h 2006-01-08 22:37:45.504089980 -0800
+++ linux-2.6/include/linux/swap.h 2006-01-12 19:56:35.665086037 -0800
@@ -180,6 +180,11 @@
extern int putback_lru_pages(struct list_head *l);
extern int migrate_pages(struct list_head *l, struct list_head *t,
struct list_head *moved, struct list_head *failed);
+#else
+static inline int isolate_lru_pages(struct page *p) { return -ENOSYS; }
+static inline int putback_lru_pages(struct list_head *) { return 0; }
+static inline int migrate_pages(struct list_head *l, struct list_head *t,
+ struct list_head *moved, struct list_head *failed) { return -ENOSYS; }
#endif
#ifdef CONFIG_MMU
It works but there are some typo
+static inline int isolate_lru_pages(struct page *p) { return -ENOSYS; }
+static inline int putback_lru_pages(struct list_head *) { return 0; }
+static inline int migrate_pages(struct list_head *l, struct list_head *t,
+ struct list_head *moved, struct list_head *failed) { return -ENOSYS; }
===>
+static inline int isolate_lru_page(struct page *p) { return -ENOSYS; }
+static inline int putback_lru_pages(struct list_head *l) { return 0; }
+static inline int migrate_pages(struct list_head *l, struct list_head *t,
+ struct list_head *moved, struct list_head *failed) { return -ENOSYS; }
So the CONFIG_MIGRATION depends on CONFIG_NUMA and CONFIG_SWAP?
YH
On Fri, 13 Jan 2006, yhlu wrote:
> So the CONFIG_MIGRATION depends on CONFIG_NUMA and CONFIG_SWAP?
Yes. Maybe this will change in the future if we can find another way to
preserve the anonymous mappings.