Change-Id: I8c7d7f63b1deca18132edef5047415eec631381b
Reviewed-on: http://photon-jenkins.eng.vmware.com/106
Tested-by: jenkins-photon <wangnan2015@hotmail.com>
Reviewed-by: Sharath George
| ... | ... |
@@ -1,7 +1,7 @@ |
| 1 | 1 |
From d5e7229bec41406a4040a1ac9131e24cb1f8768d Mon Sep 17 00:00:00 2001 |
| 2 | 2 |
From: Alexey Makhalov <amakhalov@vmware.com> |
| 3 | 3 |
Date: Wed, 30 Sep 2015 23:00:00 +0000 |
| 4 |
-Subject: [PATCH 1/5] Measure correct boot time. |
|
| 4 |
+Subject: [PATCH 1/6] Measure correct boot time. |
|
| 5 | 5 |
|
| 6 | 6 |
--- |
| 7 | 7 |
arch/x86/Kconfig | 8 ++++++++ |
| ... | ... |
@@ -98,7 +98,7 @@ index 5650655..c386186 100644 |
| 98 | 98 |
From 500436e32d4dffae5d78f12be72c2e6784ab8cfb Mon Sep 17 00:00:00 2001 |
| 99 | 99 |
From: Alexey Makhalov <amakhalov@vmware.com> |
| 100 | 100 |
Date: Fri, 2 Oct 2015 20:00:06 +0000 |
| 101 |
-Subject: [PATCH 2/5] PV io_delay for VMware guest. |
|
| 101 |
+Subject: [PATCH 2/6] PV io_delay for VMware guest. |
|
| 102 | 102 |
|
| 103 | 103 |
--- |
| 104 | 104 |
arch/x86/kernel/cpu/vmware.c | 13 +++++++++++++ |
| ... | ... |
@@ -149,7 +149,7 @@ index 628a059..8fdd031 100644 |
| 149 | 149 |
From adff5db39b45d8adef2b4579ec46ab1bb721a81f Mon Sep 17 00:00:00 2001 |
| 150 | 150 |
From: Alexey Makhalov <amakhalov@vmware.com> |
| 151 | 151 |
Date: Wed, 7 Oct 2015 22:53:18 +0000 |
| 152 |
-Subject: [PATCH 3/5] Improved tsc based sched_clock & clocksource. |
|
| 152 |
+Subject: [PATCH 3/6] Improved tsc based sched_clock & clocksource. |
|
| 153 | 153 |
|
| 154 | 154 |
--- |
| 155 | 155 |
arch/x86/Kconfig | 1 + |
| ... | ... |
@@ -327,7 +327,7 @@ index c0a2051..284a7ba 100644 |
| 327 | 327 |
From 3bd5760c3b1f6cb39568361561d7d1e5440f1109 Mon Sep 17 00:00:00 2001 |
| 328 | 328 |
From: Alexey Makhalov <amakhalov@vmware.com> |
| 329 | 329 |
Date: Mon, 12 Oct 2015 22:43:38 +0000 |
| 330 |
-Subject: [PATCH 4/5] Move read_boot_clock64 into pv_time_ops. |
|
| 330 |
+Subject: [PATCH 4/6] Move read_boot_clock64 into pv_time_ops. |
|
| 331 | 331 |
|
| 332 | 332 |
--- |
| 333 | 333 |
arch/x86/Kconfig | 14 ++++++-- |
| ... | ... |
@@ -635,7 +635,7 @@ index 284a7ba..615aeb4 100644 |
| 635 | 635 |
From aa93eaec3f709633007ab6ce3ddbb8aaa455b557 Mon Sep 17 00:00:00 2001 |
| 636 | 636 |
From: Alexey Makhalov <amakhalov@vmware.com> |
| 637 | 637 |
Date: Thu, 5 Nov 2015 21:02:52 +0000 |
| 638 |
-Subject: [PATCH 5/5] Fix clocksource_vmware issue in VM version <= 10 |
|
| 638 |
+Subject: [PATCH 5/6] Fix clocksource_vmware issue in VM version <= 10 |
|
| 639 | 639 |
|
| 640 | 640 |
--- |
| 641 | 641 |
arch/x86/kernel/cpu/vmware.c | 48 +++++++++++++++++++++++++++++++++++++++++--- |
| ... | ... |
@@ -729,3 +729,93 @@ index 1bf1fe3..0b89bb9 100644 |
| 729 | 729 |
-- |
| 730 | 730 |
1.9.1 |
| 731 | 731 |
|
| 732 |
+ |
|
| 733 |
+From 245c6ff168fabde177b5b6023356b6005b0efbef Mon Sep 17 00:00:00 2001 |
|
| 734 |
+From: Alexey Makhalov <amakhalov@vmware.com> |
|
| 735 |
+Date: Tue, 10 Nov 2015 11:46:57 +0000 |
|
| 736 |
+Subject: [PATCH 6/6] Get lapic timer frequency from HV, skip calibration |
|
| 737 |
+ |
|
| 738 |
+--- |
|
| 739 |
+ arch/x86/kernel/cpu/vmware.c | 48 +++++--------------------------------------- |
|
| 740 |
+ 1 file changed, 5 insertions(+), 43 deletions(-) |
|
| 741 |
+ |
|
| 742 |
+diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c |
|
| 743 |
+index 0b89bb9..b16618b 100644 |
|
| 744 |
+--- a/arch/x86/kernel/cpu/vmware.c |
|
| 745 |
+@@ -96,45 +96,11 @@ static struct clocksource clocksource_vmware = {
|
|
| 746 |
+ }; |
|
| 747 |
+ |
|
| 748 |
+ #ifdef CONFIG_VMWARE_ONLY |
|
| 749 |
+-/* |
|
| 750 |
+- * clocksource_vmware_periodic - is a temporary clocksource only for |
|
| 751 |
+- * early boot initialization. |
|
| 752 |
+- * Hack to avoid infinite looping in calibrate_APIC_clock() when |
|
| 753 |
+- * tsc_deadline_timer is not supported by hypervisor (VM version <= 10) |
|
| 754 |
+- * calibrate_APIC_clock() relies on _periodic_ timer! |
|
| 755 |
+- * In that case we do not need to use clocksource that is valid for |
|
| 756 |
+- * hres/oneshot timer. |
|
| 757 |
+- */ |
|
| 758 |
+-static struct clocksource __initdata clocksource_vmware_periodic = {
|
|
| 759 |
+- .name = "vmware-clock-periodic", |
|
| 760 |
+- .read = vmware_clock_get_cycles, |
|
| 761 |
+- .rating = 100, |
|
| 762 |
+- .mask = CLOCKSOURCE_MASK(64), |
|
| 763 |
+-}; |
|
| 764 |
+- |
|
| 765 |
+-static struct clocksource __initdata * initial_clocksource; |
|
| 766 |
+- |
|
| 767 |
+-/* |
|
| 768 |
+- * clocksource_vmware_register |
|
| 769 |
+- * |
|
| 770 |
+- * Time to register real clocksource. It will be activated in |
|
| 771 |
+- * clocksource_done_booting(). |
|
| 772 |
+- */ |
|
| 773 |
+-static int __init clocksource_vmware_register(void) |
|
| 774 |
+-{
|
|
| 775 |
+- if (!boot_cpu_has(X86_FEATURE_TSC_DEADLINE_TIMER)) {
|
|
| 776 |
+- clocksource_register_khz(&clocksource_vmware, vtsc_khz); |
|
| 777 |
+- clocksource_unregister(&clocksource_vmware_periodic); |
|
| 778 |
+- } |
|
| 779 |
+- return 0; |
|
| 780 |
+-} |
|
| 781 |
+-subsys_initcall(clocksource_vmware_register); |
|
| 782 |
+- |
|
| 783 |
+ /* We want to use clocksource_vmware from the beginning to avoid drifting in |
|
| 784 |
+ monotonic clock */ |
|
| 785 |
+ struct clocksource * __init clocksource_default_clock(void) |
|
| 786 |
+ {
|
|
| 787 |
+- return initial_clocksource; |
|
| 788 |
++ return &clocksource_vmware; |
|
| 789 |
+ } |
|
| 790 |
+ #endif |
|
| 791 |
+ |
|
| 792 |
+@@ -197,21 +163,17 @@ static void __init vmware_platform_setup(void) |
|
| 793 |
+ printk(KERN_INFO "Pre Kernel boot time: %dms\n", |
|
| 794 |
+ (unsigned int) (tsc_at_head / vtsc_khz)); |
|
| 795 |
+ |
|
| 796 |
++#ifdef CONFIG_X86_LOCAL_APIC |
|
| 797 |
++ /* Skip lapic calibration since we know bus frequency. */ |
|
| 798 |
++ lapic_timer_frequency = ecx; |
|
| 799 |
++#endif |
|
| 800 |
+ vmware_cyc2ns.cyc2ns_mul = |
|
| 801 |
+ DIV_ROUND_CLOSEST(NSEC_PER_MSEC << CYC2NS_SCALE_FACTOR, |
|
| 802 |
+ vtsc_khz); |
|
| 803 |
+ vmware_cyc2ns.cyc2ns_shift = CYC2NS_SCALE_FACTOR; |
|
| 804 |
+ vmware_cyc2ns.cyc2ns_offset = tsc_at_head; |
|
| 805 |
+ |
|
| 806 |
+-#ifdef CONFIG_VMWARE_ONLY |
|
| 807 |
+- if (!boot_cpu_has(X86_FEATURE_TSC_DEADLINE_TIMER)) |
|
| 808 |
+- initial_clocksource = &clocksource_vmware_periodic; |
|
| 809 |
+- else |
|
| 810 |
+- initial_clocksource = &clocksource_vmware; |
|
| 811 |
+- clocksource_register_khz(initial_clocksource, vtsc_khz); |
|
| 812 |
+-#else |
|
| 813 |
+ clocksource_register_khz(&clocksource_vmware, vtsc_khz); |
|
| 814 |
+-#endif |
|
| 815 |
+ |
|
| 816 |
+ paravirt_ops_setup(); |
|
| 817 |
+ } |
|
| 818 |
+-- |
|
| 819 |
+1.9.1 |
|
| 820 |
+ |
| ... | ... |
@@ -1436,7 +1436,7 @@ CONFIG_FUSION_MAX_SGE=128 |
| 1436 | 1436 |
CONFIG_NETDEVICES=y |
| 1437 | 1437 |
CONFIG_NET_CORE=y |
| 1438 | 1438 |
# CONFIG_BONDING is not set |
| 1439 |
-# CONFIG_DUMMY is not set |
|
| 1439 |
+CONFIG_DUMMY=m |
|
| 1440 | 1440 |
# CONFIG_EQUALIZER is not set |
| 1441 | 1441 |
# CONFIG_NET_FC is not set |
| 1442 | 1442 |
# CONFIG_NET_TEAM is not set |
| ... | ... |
@@ -2,7 +2,7 @@ |
| 2 | 2 |
Summary: Kernel |
| 3 | 3 |
Name: linux-esx |
| 4 | 4 |
Version: 4.2.0 |
| 5 |
-Release: 6%{?dist}
|
|
| 5 |
+Release: 7%{?dist}
|
|
| 6 | 6 |
License: GPLv2 |
| 7 | 7 |
URL: http://www.kernel.org/ |
| 8 | 8 |
Group: System Environment/Kernel |
| ... | ... |
@@ -120,8 +120,11 @@ ln -sf %{name}-%{version}-%{release}.cfg /boot/photon.cfg
|
| 120 | 120 |
/usr/src/%{name}-headers-%{version}-%{release}
|
| 121 | 121 |
|
| 122 | 122 |
%changelog |
| 123 |
+* Tue Nov 10 2015 Alexey Makhalov <amakhalov@vmware.com> 4.2.0-7 |
|
| 124 |
+- Get LAPIC timer frequency from HV, skip boot time calibration. |
|
| 125 |
+- .config: + dummy net driver (M). |
|
| 123 | 126 |
* Mon Nov 09 2015 Alexey Makhalov <amakhalov@vmware.com> 4.2.0-6 |
| 124 |
-- Rename subpackage dev -> devel |
|
| 127 |
+- Rename subpackage dev -> devel. |
|
| 125 | 128 |
- Added the build essential files in the devel subpackage. |
| 126 | 129 |
- .config: added genede driver module. |
| 127 | 130 |
* Wed Oct 28 2015 Alexey Makhalov <amakhalov@vmware.com> 4.2.0-5 |