lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b637ec0b0812221219n662bd376qbda36b3d9fac9627@mail.gmail.com>
Date:	Mon, 22 Dec 2008 21:19:53 +0100
From:	"Fabio Comolli" <fabio.comolli@...il.com>
To:	"Thomas Gleixner" <tglx@...utronix.de>
Cc:	"Rafael J. Wysocki" <rjw@...k.pl>, "Ingo Molnar" <mingo@...e.hu>,
	"Peter Zijlstra" <peterz@...radead.org>,
	"Steven Rostedt" <srostedt@...hat.com>, dsaxena@...xity.net,
	linux-kernel@...r.kernel.org,
	"Dave Kleikamp" <shaggy@...ux.vnet.ibm.com>
Subject: Re: TSC not updating after resume: Bug or Feature?

Hi Thomas.
Please find the log attached (only one hibernate/resume cycle).

Regads,
Fabio



On Mon, Dec 22, 2008 at 3:48 PM, Thomas Gleixner <tglx@...utronix.de> wrote:
> Fabio,
>
> On Sun, 21 Dec 2008, Fabio Comolli wrote:
>> Well, I'm the submitter of bug 12155 and I never had hpet=force on my
>> command line. I don't know where you found it.
>> Actually my command line is:
>
> My bad. I confused it with the HPET force enable. (Your BIOS does not
> advertise HPET).
>
>> By the way, I don't know if it matters but the problema happened with
>> in-kernel hibernation and also in out-of-tree TuxOnIce hibernation.
>> Maybe this can help debugging the issue, I don't know.
>
> Hmm, does not ring a bell here. Can you please apply the patch below
> to mainline and retest ?
>
> Thanks,
>
>        tglx
> -----
> diff --git a/kernel/sched_clock.c b/kernel/sched_clock.c
> index e8ab096..c18a6dd 100644
> --- a/kernel/sched_clock.c
> +++ b/kernel/sched_clock.c
> @@ -86,6 +86,14 @@ void sched_clock_init(void)
>        sched_clock_running = 1;
>  }
>
> +void sched_clock_debug(void)
> +{
> +       struct sched_clock_data *scd = this_scd();
> +
> +       printk(KERN_INFO "SCD raw %llu gtod %llu clock %llu now %llu\n",
> +              scd->tick_raw, scd->tick_gtod, scd->clock, sched_clock());
> +}
> +
>  /*
>  * min,max except they take wrapping into account
>  */
> @@ -118,13 +126,13 @@ static u64 __update_sched_clock(struct sched_clock_data *scd, u64 now)
>
>        /*
>         * scd->clock = clamp(scd->tick_gtod + delta,
> -        *                    max(scd->tick_gtod, scd->clock),
> -        *                    scd->tick_gtod + TICK_NSEC);
> +        *                    max(scd->tick_gtod, scd->clock),
> +        *                    max(scd->clock, scd->tick_gtod + TICK_NSEC));
>         */
>
>        clock = scd->tick_gtod + delta;
>        min_clock = wrap_max(scd->tick_gtod, scd->clock);
> -       max_clock = scd->tick_gtod + TICK_NSEC;
> +       max_clock = wrap_max(scd->clock, scd->tick_gtod + TICK_NSEC);
>
>        clock = wrap_max(clock, min_clock);
>        clock = wrap_min(clock, max_clock);
> diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
> index fa05e88..bafbd2d 100644
> --- a/kernel/time/timekeeping.c
> +++ b/kernel/time/timekeeping.c
> @@ -304,6 +304,8 @@ static int timekeeping_suspended;
>  /* time in seconds when suspend began */
>  static unsigned long timekeeping_suspend_time;
>
> +extern void sched_clock_debug(void);
> +
>  /**
>  * timekeeping_resume - Resumes the generic timekeeping subsystem.
>  * @dev:       unused
> @@ -336,6 +338,8 @@ static int timekeeping_resume(struct sys_device *dev)
>        timekeeping_suspended = 0;
>        write_sequnlock_irqrestore(&xtime_lock, flags);
>
> +       sched_clock_debug();
> +
>        touch_softlockup_watchdog();
>
>        clockevents_notify(CLOCK_EVT_NOTIFY_RESUME, NULL);
> @@ -357,6 +361,8 @@ static int timekeeping_suspend(struct sys_device *dev, pm_message_t state)
>        timekeeping_suspended = 1;
>        write_sequnlock_irqrestore(&xtime_lock, flags);
>
> +       sched_clock_debug();
> +
>        clockevents_notify(CLOCK_EVT_NOTIFY_SUSPEND, NULL);
>
>        return 0;
>
>

View attachment "dmesg.log" of type "text/x-log" (53903 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ