+ clocksource-increase-initcall-priority.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     clocksource: increase initcall priority

has been added to the -mm tree.  Its filename is

     clocksource-increase-initcall-priority.patch

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

------------------------------------------------------
Subject: clocksource: increase initcall priority
From: Daniel Walker <dwalker@xxxxxxxxxx>

This patch set is meant to modify the clocksource structure and API so that it
can be used by more than just the timekeeping code.  My motivation is mainly
that I feel the current clocksource interface could be used for much more than
just timekeeping.  So if we keep the clocksource interface (which I think we
should) then we should get everything out of it that we can.

This set modifies the API, then converts the time keeping code over to the new
API.  I also added a generic sched_clock() which just re-uses the clocksource
interface to provide a high quality scheduling clock (assuming a good
clocksource).  Several ARM board just output nanoseconds based on jiffies
which is still possible with the generic sched_clock().


This patch:

Since it's likely that this interface would get used during bootup I moved all
the clocksource registration into the postcore initcall.  This also eliminated
some clocksource shuffling during bootup.

Signed-off-by: Daniel Walker <dwalker@xxxxxxxxxx>
Cc: john stultz <johnstul@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Cc: Roman Zippel <zippel@xxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 arch/i386/kernel/hpet.c          |    2 +-
 arch/i386/kernel/i8253.c         |    2 +-
 arch/i386/kernel/tsc.c           |    2 +-
 drivers/clocksource/acpi_pm.c    |    2 +-
 drivers/clocksource/cyclone.c    |    2 +-
 drivers/clocksource/scx200_hrt.c |    2 +-
 kernel/time/clocksource.c        |   15 +--------------
 kernel/time/jiffies.c            |    2 +-
 8 files changed, 8 insertions(+), 21 deletions(-)

diff -puN arch/i386/kernel/hpet.c~clocksource-increase-initcall-priority arch/i386/kernel/hpet.c
--- a/arch/i386/kernel/hpet.c~clocksource-increase-initcall-priority
+++ a/arch/i386/kernel/hpet.c
@@ -64,4 +64,4 @@ static int __init init_hpet_clocksource(
 	return clocksource_register(&clocksource_hpet);
 }
 
-module_init(init_hpet_clocksource);
+postcore_initcall(init_hpet_clocksource);
diff -puN arch/i386/kernel/i8253.c~clocksource-increase-initcall-priority arch/i386/kernel/i8253.c
--- a/arch/i386/kernel/i8253.c~clocksource-increase-initcall-priority
+++ a/arch/i386/kernel/i8253.c
@@ -194,4 +194,4 @@ static int __init init_pit_clocksource(v
 	clocksource_pit.mult = clocksource_hz2mult(CLOCK_TICK_RATE, 20);
 	return clocksource_register(&clocksource_pit);
 }
-module_init(init_pit_clocksource);
+postcore_initcall(init_pit_clocksource);
diff -puN arch/i386/kernel/tsc.c~clocksource-increase-initcall-priority arch/i386/kernel/tsc.c
--- a/arch/i386/kernel/tsc.c~clocksource-increase-initcall-priority
+++ a/arch/i386/kernel/tsc.c
@@ -488,4 +488,4 @@ static int __init init_tsc_clocksource(v
 	return 0;
 }
 
-module_init(init_tsc_clocksource);
+postcore_initcall(init_tsc_clocksource);
diff -puN drivers/clocksource/acpi_pm.c~clocksource-increase-initcall-priority drivers/clocksource/acpi_pm.c
--- a/drivers/clocksource/acpi_pm.c~clocksource-increase-initcall-priority
+++ a/drivers/clocksource/acpi_pm.c
@@ -174,4 +174,4 @@ pm_good:
 	return clocksource_register(&clocksource_acpi_pm);
 }
 
-module_init(init_acpi_pm_clocksource);
+postcore_initcall(init_acpi_pm_clocksource);
diff -puN drivers/clocksource/cyclone.c~clocksource-increase-initcall-priority drivers/clocksource/cyclone.c
--- a/drivers/clocksource/cyclone.c~clocksource-increase-initcall-priority
+++ a/drivers/clocksource/cyclone.c
@@ -116,4 +116,4 @@ static int __init init_cyclone_clocksour
 	return clocksource_register(&clocksource_cyclone);
 }
 
-module_init(init_cyclone_clocksource);
+postcore_initcall(init_cyclone_clocksource);
diff -puN drivers/clocksource/scx200_hrt.c~clocksource-increase-initcall-priority drivers/clocksource/scx200_hrt.c
--- a/drivers/clocksource/scx200_hrt.c~clocksource-increase-initcall-priority
+++ a/drivers/clocksource/scx200_hrt.c
@@ -94,7 +94,7 @@ static int __init init_hrt_clocksource(v
 	return clocksource_register(&cs_hrt);
 }
 
-module_init(init_hrt_clocksource);
+postcore_initcall(init_hrt_clocksource);
 
 MODULE_AUTHOR("Jim Cromie <jim.cromie@xxxxxxxxx>");
 MODULE_DESCRIPTION("clocksource on SCx200 HiRes Timer");
diff -puN kernel/time/clocksource.c~clocksource-increase-initcall-priority kernel/time/clocksource.c
--- a/kernel/time/clocksource.c~clocksource-increase-initcall-priority
+++ a/kernel/time/clocksource.c
@@ -50,19 +50,6 @@ static struct clocksource *next_clocksou
 static LIST_HEAD(clocksource_list);
 static DEFINE_SPINLOCK(clocksource_lock);
 static char override_name[32];
-static int finished_booting;
-
-/* clocksource_done_booting - Called near the end of bootup
- *
- * Hack to avoid lots of clocksource churn at boot time
- */
-static int __init clocksource_done_booting(void)
-{
-	finished_booting = 1;
-	return 0;
-}
-
-late_initcall(clocksource_done_booting);
 
 /**
  * clocksource_get_next - Returns the selected clocksource
@@ -73,7 +60,7 @@ struct clocksource *clocksource_get_next
 	unsigned long flags;
 
 	spin_lock_irqsave(&clocksource_lock, flags);
-	if (next_clocksource && finished_booting) {
+	if (next_clocksource) {
 		curr_clocksource = next_clocksource;
 		next_clocksource = NULL;
 	}
diff -puN kernel/time/jiffies.c~clocksource-increase-initcall-priority kernel/time/jiffies.c
--- a/kernel/time/jiffies.c~clocksource-increase-initcall-priority
+++ a/kernel/time/jiffies.c
@@ -70,4 +70,4 @@ static int __init init_jiffies_clocksour
 	return clocksource_register(&clocksource_jiffies);
 }
 
-module_init(init_jiffies_clocksource);
+postcore_initcall(init_jiffies_clocksource);
_

Patches currently in -mm which might be from dwalker@xxxxxxxxxx are

sched-likely-profiling.patch
clocksource-increase-initcall-priority.patch
clocksource-small-cleanup.patch
clocksource-move-old-api-calls.patch
clocksource-add-some-new-api-calls.patch
clocksource-convert-generic-timeofday.patch
clocksource-add-block-notifier.patch
clocksource-remove-update_callback.patch
clocksource-initialize-list-value.patch
clocksource-add-generic-sched_clock.patch
clocksource-update-kernel-parameters.patch
profile-likely-unlikely-macros.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux