Messages in this thread | | | Subject | Re: [PATCH v5 0/6] KVM: x86: get rid of pvclock_gtod_copy | From | Denis Plotnikov <> | Date | Mon, 11 Sep 2017 12:24:10 +0300 |
| |
ping!
On 30.08.2017 18:23, Denis Plotnikov wrote: > V5: > It was decided to split the series > "make L2's kvm-clock stable, get rid of pvclock_gtod_copy in KVM" > into two parts to make the changes finer grained: > 1. get rid of pvclock_gtod_copy in KVM > 2. make L2's kvm-clock stable > This V5 series implements the 1st part. This part gets rid > of pvclock_gtod_copy by switching to use the timekeeper functionality > being extended. This new scheme doesn't add any new notifiers and keeps > using the existing one (see patch 6 description) which had been used by > the pvclock_gtod_copy to keep track timekeeper data changes. > > The 2nd part is being discussed and is going to be sent later on. > > V4: > * removed "is stable" function with vague definition of stability > there is the only function which does time with cycle stamp getting > * some variables renamed > * some patches split into smaller once > * atomic64_t usage is replaced with atomic_t > > V3: > Changing the timekeeper interface for clocksource reading looks like > an overkill to achive the goal of getting cycles stamp for KVM. > Instead extend the timekeeping interface and add functions which provide > necessary data: read clocksource with cycles stamp, check whether the > clock source is stable. > > Use those functions and improve existing timekeeper functionality to > replace pvclock_gtod_copy scheme in masterclock data calculation. > > V2: > The main goal is to make L2 kvm-clock be stable when it's running over L1 > with stable kvm-clock. > > The patch series is for x86 architecture only. If the series is approved > I'll do changes for other architectures but I don't have an ability to > compile and check for every single on (help needed) > > The patch series do the following: > > * change timekeeper interface to get cycles stamp value from > the timekeeper > * get rid of pvclock copy in KVM by using the changed timekeeper > interface: get time and cycles right from the timekeeper > * make KVM recognize a stable kvm-clock as stable clocksource > and use the KVM masterclock in this case, which means making > L2 stable when running over stable L1 kvm-clock > > Denis Plotnikov (6): > timekeeper: introduce extended clocksource reading callback > timekeeper: introduce boot field in system_time_snapshot > timekeeper: use the extended reading function on snapshot acquiring > tsc: implement the extended tsc reading function > KVM: x86: switch to masterclock update using timekeeper functionality > KVM: x86: remove not used pvclock_gtod_copy > > arch/x86/include/asm/kvm_host.h | 2 +- > arch/x86/kernel/tsc.c | 10 ++ > arch/x86/kvm/trace.h | 31 ++--- > arch/x86/kvm/x86.c | 245 +++++++++------------------------------- > include/linux/clocksource.h | 11 +- > include/linux/timekeeping.h | 5 + > kernel/time/timekeeping.c | 17 ++- > 7 files changed, 104 insertions(+), 217 deletions(-) >
-- Best, Denis
| |