Add heuristic to take shortcut when too slow.
[wiggle/upstream.git] / tests / linux / md / rediff
blobfc279490cec4f3995b42971817cae65b05694df5
1 @@ -1453,90 +1436,6 @@
2         return 1;
3  }
4  
5 -#undef OLD_LEVEL
7 -static int device_size_calculation(mddev_t * mddev)
8 -{
9 -       int data_disks = 0;
10 -       unsigned int readahead;
11 -       struct list_head *tmp;
12 -       mdk_rdev_t *rdev;
14 -       /*
15 -        * Do device size calculation. Bail out if too small.
16 -        * (we have to do this after having validated chunk_size,
17 -        * because device size has to be modulo chunk_size)
18 -        */
20 -       ITERATE_RDEV(mddev,rdev,tmp) {
21 -               if (rdev->faulty)
22 -                       continue;
23 -               if (rdev->size < mddev->chunk_size / 1024) {
24 -                       printk(KERN_WARNING
25 -                               "md: Dev %s smaller than chunk_size:"
26 -                               " %lluk < %dk\n",
27 -                               bdev_partition_name(rdev->bdev),
28 -                               (unsigned long long)rdev->size,
29 -                               mddev->chunk_size / 1024);
30 -                       return -EINVAL;
31 -               }
32 -       }
34 -       switch (mddev->level) {
35 -               case LEVEL_MULTIPATH:
36 -                       data_disks = 1;
37 -                       break;
38 -               case -3:
39 -                       data_disks = 1;
40 -                       break;
41 -               case -2:
42 -                       data_disks = 1;
43 -                       break;
44 -               case LEVEL_LINEAR:
45 -                       zoned_raid_size(mddev);
46 -                       data_disks = 1;
47 -                       break;
48 -               case 0:
49 -                       zoned_raid_size(mddev);
50 -                       data_disks = mddev->raid_disks;
51 -                       break;
52 -               case 1:
53 -                       data_disks = 1;
54 -                       break;
55 -               case 4:
56 -               case 5:
57 -                       data_disks = mddev->raid_disks-1;
58 -                       break;
59 -               default:
60 -                       printk(KERN_ERR "md: md%d: unsupported raid level %d\n",
61 -                               mdidx(mddev), mddev->level);
62 -                       goto abort;
63 -       }
64 -       if (!md_size[mdidx(mddev)])
65 -               md_size[mdidx(mddev)] = mddev->size * data_disks;
67 -       readahead = (VM_MAX_READAHEAD * 1024) / PAGE_SIZE;
68 -       if (!mddev->level || (mddev->level == 4) || (mddev->level == 5)) {
69 -               readahead = (mddev->chunk_size>>PAGE_SHIFT) * 4 * data_disks;
70 -               if (readahead < data_disks * (MAX_SECTORS>>(PAGE_SHIFT-9))*2)
71 -                       readahead = data_disks * (MAX_SECTORS>>(PAGE_SHIFT-9))*2;
72 -       } else {
73 -               // (no multipath branch - it uses the default setting)
74 -               if (mddev->level == -3)
75 -                       readahead = 0;
76 -       }
78 -       printk(KERN_INFO "md%d: max total readahead window set to %ldk\n",
79 -               mdidx(mddev), readahead*(PAGE_SIZE/1024));
81 -       printk(KERN_INFO
82 -               "md%d: %d data-disks, max readahead per data-disk: %ldk\n",
83 -               mdidx(mddev), data_disks, readahead/data_disks*(PAGE_SIZE/1024));
84 -       return 0;
85 -abort:
86 -       return 1;
89  static struct gendisk *md_probe(dev_t dev, int *part, void *data)
90  {
91         static DECLARE_MUTEX(disks_sem);
92 @@ -1664,9 +1571,6 @@
93                 }
94         }
96 -       if (device_size_calculation(mddev))
97 -               return -EINVAL;
99         /*
100          * Drop all container device buffers, from now on
101          * the only valid external interface is through the md