lkml.org 
[lkml]   [2011]   [May]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRE: [PATCH 1/1] Clocksource: Move the Hyper-V clocksource driver out of staging
    Date


    > -----Original Message-----
    > From: john stultz [mailto:johnstul@us.ibm.com]
    > Sent: Monday, May 23, 2011 2:40 PM
    > To: KY Srinivasan
    > Cc: gregkh@suse.de; linux-kernel@vger.kernel.org;
    > devel@linuxdriverproject.org; tglx@linutronix.de; hch@infradead.org; Hank
    > Janssen; Haiyang Zhang
    > Subject: Re: [PATCH 1/1] Clocksource: Move the Hyper-V clocksource driver out
    > of staging
    >
    > On Mon, 2011-05-23 at 10:12 -0700, K. Y. Srinivasan wrote:
    > > Move the Hyper-V clocksource driver out of staging.
    > >
    > > Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    > > Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
    > > Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
    > > ---
    > > drivers/clocksource/Makefile | 1 +
    > > drivers/clocksource/hv_timesource.c | 102
    > +++++++++++++++++++++++++++++++++++
    > > drivers/staging/hv/Makefile | 2 +-
    > > drivers/staging/hv/hv_timesource.c | 102 -----------------------------------
    > > 4 files changed, 104 insertions(+), 103 deletions(-)
    > > create mode 100644 drivers/clocksource/hv_timesource.c
    > > delete mode 100644 drivers/staging/hv/hv_timesource.c
    > >
    > > diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile
    > > index be61ece..ea44327 100644
    > > --- a/drivers/clocksource/Makefile
    > > +++ b/drivers/clocksource/Makefile
    > > @@ -6,3 +6,4 @@ obj-$(CONFIG_CS5535_CLOCK_EVENT_SRC) += cs5535-
    > clockevt.o
    > > obj-$(CONFIG_SH_TIMER_CMT) += sh_cmt.o
    > > obj-$(CONFIG_SH_TIMER_MTU2) += sh_mtu2.o
    > > obj-$(CONFIG_SH_TIMER_TMU) += sh_tmu.o
    > > +obj-$(CONFIG_HYPERV) += hv_timesource.o
    > > diff --git a/drivers/clocksource/hv_timesource.c
    > b/drivers/clocksource/hv_timesource.c
    > > new file mode 100644
    > > index 0000000..0efb049
    > > --- /dev/null
    > > +++ b/drivers/clocksource/hv_timesource.c
    > > @@ -0,0 +1,102 @@
    > > +/*
    > > + * A clocksource for Linux running on HyperV.
    > > + *
    > > + *
    > > + * Copyright (C) 2010, Novell, Inc.
    > > + * Author : K. Y. Srinivasan <ksrinivasan@novell.com>
    > > + *
    > > + * This program is free software; you can redistribute it and/or modify
    > > + * it under the terms of the GNU General Public License version 2 as
    > > + * published by the Free Software Foundation.
    > > + *
    > > + * This program is distributed in the hope that it will be useful, but
    > > + * WITHOUT ANY WARRANTY; without even the implied warranty of
    > > + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE
    > or
    > > + * NON INFRINGEMENT. See the GNU General Public License for more
    > > + * details.
    > > + *
    > > + * You should have received a copy of the GNU General Public License
    > > + * along with this program; if not, write to the Free Software
    > > + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    > > + *
    > > + */
    > > +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
    > > +
    > > +#include <linux/version.h>
    > > +#include <linux/clocksource.h>
    > > +#include <linux/init.h>
    > > +#include <linux/module.h>
    > > +#include <linux/pci.h>
    > > +#include <linux/dmi.h>
    > > +#include <asm/hyperv.h>
    > > +#include <asm/mshyperv.h>
    > > +#include <asm/hypervisor.h>
    > > +
    > > +#define HV_CLOCK_SHIFT 22
    > > +
    > > +static cycle_t read_hv_clock(struct clocksource *arg)
    > > +{
    > > + cycle_t current_tick;
    > > + /*
    > > + * Read the partition counter to get the current tick count. This count
    > > + * is set to 0 when the partition is created and is incremented in
    > > + * 100 nanosecond units.
    > > + */
    > > + rdmsrl(HV_X64_MSR_TIME_REF_COUNT, current_tick);
    > > + return current_tick;
    > > +}
    > > +
    > > +static struct clocksource hyperv_cs = {
    > > + .name = "hyperv_clocksource",
    > > + .rating = 400, /* use this when running on Hyperv*/
    > > + .read = read_hv_clock,
    > > + .mask = CLOCKSOURCE_MASK(64),
    > > + /*
    > > + * The time ref counter in HyperV is in 100ns units.
    > > + * The definition of mult is:
    > > + * mult/2^shift = ns/cyc = 100
    > > + * mult = (100 << shift)
    > > + */
    > > + .mult = (100 << HV_CLOCK_SHIFT),
    > > + .shift = HV_CLOCK_SHIFT,
    >
    > The mult/shift assignments can be dropped. Please use
    > clocksource_register_hz/khz() which will assign mult/shift for you.
    >
    > Otherwise it looks pretty straightforward.

    Will do; thanks.
    >
    >
    > > +module_init(init_hv_clocksource);
    > > +MODULE_DESCRIPTION("HyperV based clocksource");
    > > +MODULE_AUTHOR("K. Y. Srinivasan <ksrinivasan@novell.com>");
    > > +MODULE_LICENSE("GPL");
    >
    > One other nit: Should this email address be updated to your current one?

    I will update it.

    Regards,

    K. Y

    \
     
     \ /
      Last update: 2011-05-23 20:45    [W:0.030 / U:30.596 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site