Revert "parisc: Increase parisc_cache_flush_threshold setting"
authorHelge Deller <deller@gmx.de>
Sun, 8 May 2022 17:55:13 +0000 (19:55 +0200)
committerHelge Deller <deller@gmx.de>
Sun, 8 May 2022 18:13:36 +0000 (20:13 +0200)
This reverts commit a58e9d0984e8dad53f17ec73ae3c1cc7f8d88151.

Triggers segfaults with 32-bit kernels on PA8500 machines.

Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/kernel/cache.c

index 2334819..e791122 100644 (file)
@@ -403,7 +403,7 @@ void __init parisc_setup_cache_timing(void)
 {
        unsigned long rangetime, alltime;
        unsigned long size;
-       unsigned long threshold, threshold2;
+       unsigned long threshold;
 
        alltime = mfctl(16);
        flush_data_cache();
@@ -418,20 +418,8 @@ void __init parisc_setup_cache_timing(void)
                alltime, size, rangetime);
 
        threshold = L1_CACHE_ALIGN(size * alltime / rangetime);
-
-       /*
-        * The threshold computed above isn't very reliable since the
-        * flush times depend greatly on the percentage of dirty lines
-        * in the flush range. Further, the whole cache time doesn't
-        * include the time to refill lines that aren't in the mm/vma
-        * being flushed. By timing glibc build and checks on mako cpus,
-        * the following formula seems to work reasonably well. The
-        * value from the timing calculation is too small, and increases
-        * build and check times by almost a factor two.
-        */
-       threshold2 = cache_info.dc_size * num_online_cpus();
-       if (threshold2 > threshold)
-               threshold = threshold2;
+       if (threshold > cache_info.dc_size)
+               threshold = cache_info.dc_size;
        if (threshold)
                parisc_cache_flush_threshold = threshold;
        printk(KERN_INFO "Cache flush threshold set to %lu KiB\n",