Message ID | 1435900280-12947-1-git-send-email-vaibhav@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Michael Ellerman |
Headers | show |
On Fri, 2015-03-07 at 05:11:20 UTC, Vaibhav Jain wrote: > A working rtc kernel driver is needed so that hwclock can synchronize > system clock to rtc during shutdown/boot. We already have a powernv > platform rtc driver located at drivers/rtc/rtc-opal.c. However it depends > on CONFIG_RTC_CLASS which is disabled by default. Hence the driver isn't > enabled and not compiled for the powernv kernel. > > We fix this by enabling rtc class support in pseries defconfig which > enables this driver and compiles it into the pseries kernel. In case > CONFIG_PPC_POWERNV is not enabled we fallback to 'Generic RTC support' > driver which emulates the legacy 'PC RTC driver'. You still haven't told me what happens on a pseries machine when this is applied. cheers
On Fri, 2015-07-03 at 16:59 +1000, Michael Ellerman wrote: > You still haven't told me what happens on a pseries machine when this is > applied. Was finally able to get my hand over a pseries guest lpar today so dumping the results below. I have aggregated results for each configuration namely host & guest version; with each with/without the patch. So in all results for 4 different configurations. ------------------------- *host-kernel/without patch ------------------------- Without the patch the hwclock fails with an error message: [root@tul169p1 ~]# hwclock hwclock: Timed out waiting for time change. hwclock: The Hardware Clock registers contain values that are either invalid (e.g. 50th day of month) or beyond the range we can handle (e.g. Year 2095). Debug message of hwclock reveal that hwclock cannot detect any tick in the RTC clock. This is due to older genrtc driver being used instead of newer rtc-opal driver. ------------------------- *host-kernel/with patch ------------------------- The patch enables the rtc-opal driver by enabling CONFIG_RTC_CLASS. So the hwclock starts working. Below is the command log: [root@tul169p1 ~]# hwclock -r Fri 03 Jul 2015 03:54:31 AM CDT -0.876949 seconds -------------------------- *guest-kernel/without patch --------------------------- Without the patch hwclock still works but uses the legacy generic-rtc. Below is the output indicating that: linux-3bot:/ # hwclock -r Sun Jul 5 21:19:51 2015 -0.885070 seconds linux-3bot:/ # ls /dev/class/rtc ls: cannot access /dev/class/rtc: No such file or directory -------------------------- *guest-kernel/with patch --------------------------- With the patch, which enables the new rtc_class framework, the legacy behavior is still used preserved. Below is the output indicating that: linux-3bot:~ # hwclock -r Sun Jul 5 21:36:53 2015 -0.704169 seconds linux-3bot:~ # ls /sys/class/rtc rtc0 ~Vaibhav
On Fri, 2015-03-07 at 05:11:20 UTC, Vaibhav Jain wrote: > A working rtc kernel driver is needed so that hwclock can synchronize > system clock to rtc during shutdown/boot. We already have a powernv > platform rtc driver located at drivers/rtc/rtc-opal.c. However it depends > on CONFIG_RTC_CLASS which is disabled by default. Hence the driver isn't > enabled and not compiled for the powernv kernel. > > We fix this by enabling rtc class support in pseries defconfig which > enables this driver and compiles it into the pseries kernel. In case > CONFIG_PPC_POWERNV is not enabled we fallback to 'Generic RTC support' > driver which emulates the legacy 'PC RTC driver'. > > Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com> Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/e0ad784b65a64a617179 cheers
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig index 0d9efce..2404271e 100644 --- a/arch/powerpc/configs/pseries_defconfig +++ b/arch/powerpc/configs/pseries_defconfig @@ -190,7 +190,8 @@ CONFIG_HVC_RTAS=y CONFIG_HVCS=m CONFIG_VIRTIO_CONSOLE=m CONFIG_IBM_BSR=m -CONFIG_GEN_RTC=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_GENERIC=y CONFIG_RAW_DRIVER=y CONFIG_MAX_RAW_DEVS=1024 CONFIG_FB=y
A working rtc kernel driver is needed so that hwclock can synchronize system clock to rtc during shutdown/boot. We already have a powernv platform rtc driver located at drivers/rtc/rtc-opal.c. However it depends on CONFIG_RTC_CLASS which is disabled by default. Hence the driver isn't enabled and not compiled for the powernv kernel. We fix this by enabling rtc class support in pseries defconfig which enables this driver and compiles it into the pseries kernel. In case CONFIG_PPC_POWERNV is not enabled we fallback to 'Generic RTC support' driver which emulates the legacy 'PC RTC driver'. Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com> --- arch/powerpc/configs/pseries_defconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)