Re: [Regression] d96ac6f2: time: Revert ALWAYS_USE_PERSISTENT_CLOCK compile time optimizaitons

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

 



On 05/31/2013 05:06 AM, Jens Taprogge wrote:
So, in the case of the reverted v3.9.4 with CONFIG_CPU_FREQ_STAT=y,
CONFIG_X86_VERBOSE_BOOTUP makes a difference.  To update the little
table from above:

With d96ac6f2 reverted:

   CONFIG_CPU_FREQ_STAT=n works
   CONFIG_CPU_FREQ_STAT=y and CONFIG_X86_VERBOSE_BOOTUP=y does not work
   CONFIG_CPU_FREQ_STAT=y and CONFIG_X86_VERBOSE_BOOTUP=n works

Ok. None of this is yet making any sense to me. (And I worry enumerating all the mix and match of configs that work or don't only blurs the issues).

Few base questions:
1) What distro is this on?

2) What gcc version are you using?

Then could you also try the attached patches against un-modified v3.9.4 (using a config that boots with d96ac6f2 reverted):

3) Apply persistent-clock-exists-true.patch, does it boot or hang?

4) Apply has-persistent-clock-true.patch (on top of persistent-clock-exists-true.patch), does it boot or hang?


These two patches basically partially revert the d96ac6f2. The hope is that by figuring out where things go wrong, we can hopefully narrow down why its happening.

Though given the strange config matrix of working/not working, I'm starting to suspect that is has some sort of stranger issue about code size rather then strictly the logic being enabled or disabled.

thanks
-john

diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index 9a0bc98..dce6849 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -30,7 +30,7 @@ static struct timekeeper timekeeper;
 int __read_mostly timekeeping_suspended;
 
 /* Flag for if there is a persistent clock on this platform */
-bool __read_mostly persistent_clock_exist = false;
+bool __read_mostly persistent_clock_exist = true;
 
 static inline void tk_normalize_xtime(struct timekeeper *tk)
 {
diff --git a/include/linux/time.h b/include/linux/time.h
index afcdc4b..9e80010 100644
--- a/include/linux/time.h
+++ b/include/linux/time.h
@@ -119,7 +119,7 @@ extern bool persistent_clock_exist;
 
 static inline bool has_persistent_clock(void)
 {
-	return persistent_clock_exist;
+	return true;
 }
 
 extern void read_persistent_clock(struct timespec *ts);


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]