Whamcloud - gitweb
Branch b1_8_gate
authoranserper <anserper>
Wed, 30 Jul 2008 20:50:46 +0000 (20:50 +0000)
committeranserper <anserper>
Wed, 30 Jul 2008 20:50:46 +0000 (20:50 +0000)
b=16037
i=Alexey Lyshkov (shadow)
i=Alexander Zarochentsev (zam)

changing readahead values to use only a part of available lowmem pages

lustre/llite/llite_lib.c

index cb27c00..12e883e 100644 (file)
@@ -70,6 +70,8 @@ extern struct address_space_operations ll_dir_aops;
 static struct ll_sb_info *ll_init_sbi(void)
 {
         struct ll_sb_info *sbi = NULL;
+        unsigned long pages;
+        struct sysinfo si;
         class_uuid_t uuid;
         int i;
         ENTRY;
@@ -84,11 +86,13 @@ static struct ll_sb_info *ll_init_sbi(void)
         spin_lock_init(&sbi->ll_process_lock);
         sbi->ll_rw_stats_on = 0;
         INIT_LIST_HEAD(&sbi->ll_pglist);
-        if (num_physpages >> (20 - CFS_PAGE_SHIFT) < 512)
-                sbi->ll_async_page_max = num_physpages / 2;
+        si_meminfo(&si);
+        pages = si.totalram - si.totalhigh;
+        if (pages >> (20 - CFS_PAGE_SHIFT) < 512)
+                sbi->ll_async_page_max = pages / 2;
         else
-                sbi->ll_async_page_max = (num_physpages / 4) * 3;
-        sbi->ll_ra_info.ra_max_pages = min(num_physpages / 8,
+                sbi->ll_async_page_max = (pages / 4) * 3;
+        sbi->ll_ra_info.ra_max_pages = min(pages / 32,
                                            SBI_DEFAULT_READAHEAD_MAX);
         sbi->ll_ra_info.ra_max_read_ahead_whole_pages =
                                            SBI_DEFAULT_READAHEAD_WHOLE_MAX;