14 messages in com.xensource.lists.xen-bugs[Xen-bugs] [Bug 1098] [version 3.1.0_...| From | Sent On | Attachments |
|---|---|---|
| bugz...@lists.xensource.com | 29 Oct 2007 16:02 | |
| bugz...@lists.xensource.com | 29 Oct 2007 16:09 | |
| bugz...@lists.xensource.com | 29 Oct 2007 16:12 | |
| bugz...@lists.xensource.com | 30 Oct 2007 14:48 | |
| bugz...@lists.xensource.com | 30 Oct 2007 23:12 | |
| bugz...@lists.xensource.com | 31 Oct 2007 13:52 | |
| bugz...@lists.xensource.com | 01 Nov 2007 04:50 | |
| bugz...@lists.xensource.com | 01 Nov 2007 05:23 | |
| bugz...@lists.xensource.com | 01 Nov 2007 19:52 | |
| bugz...@lists.xensource.com | 01 Nov 2007 20:33 | |
| bugz...@lists.xensource.com | 01 Nov 2007 20:38 | |
| bugz...@lists.xensource.com | 01 Nov 2007 21:17 | |
| bugz...@lists.xensource.com | 02 Nov 2007 05:09 | |
| bugz...@lists.xensource.com | 07 Nov 2007 11:27 |
| Subject: | [Xen-bugs] [Bug 1098] [version 3.1.0_15042-51] clocksource/0: Time went backwards![]() |
|---|---|
| From: | bugz...@lists.xensource.com (bugz...@lists.xensource.com) |
| Date: | 11/01/2007 08:33:55 PM |
| List: | com.xensource.lists.xen-bugs |
http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=1098
------- Comment #8 from sak...@jp.fujitsu.com 2007-11-01 20:34 ------- You should replace the function from opensuse kernel to linux 2.6.23 opensuse code does not consider sync to hypervisor.
====opensuse 2.6.22 xen3-patch-2.6.18 === +static cycle_t xen_clocksource_read(void) +{ + int cpu = get_cpu(); + struct shadow_time_info *shadow = &per_cpu(shadow_time, cpu); + cycle_t ret; + + get_time_values_from_xen(cpu); + + ret = shadow->system_timestamp + get_nsec_offset(shadow); + + put_cpu(); + +#ifdef CONFIG_SMP + for (;;) { + static cycle_t last_ret; +#ifndef CONFIG_64BIT + cycle_t last = cmpxchg64(&last_ret, 0, 0); +#else + cycle_t last = last_ret; +#define cmpxchg64 cmpxchg +#endif + + if ((s64)(ret - last) < 0) { + if (last - ret > permitted_clock_jitter + && printk_ratelimit()) + printk(KERN_WARNING "clocksource/%d: " + "Time went backwards: " + "delta=%Ld shadow=%Lu offset=%Lu\n", + cpu, ret - last, + shadow->system_timestamp, + get_nsec_offset(shadow)); + ret = last; + } + if (cmpxchg64(&last_ret, last, ret) == last) + break; + } +#endif + + return ret; +}
==> to Linux 2.6.23 xen_clocksource_read.
static cycle_t xen_clocksource_read(void) { struct shadow_time_info *shadow = &get_cpu_var(shadow_time); cycle_t ret; unsigned version;
do { version = get_time_values_from_xen(); barrier(); ret = shadow->system_timestamp + get_nsec_offset(shadow); barrier(); } while (version != __get_cpu_var(xen_vcpu)->time.version);
put_cpu_var(shadow_time);
return ret; }
--
Configure bugmail:
http://bugzilla.xensource.com/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
_______________________________________________ Xen-bugs mailing list Xen-...@lists.xensource.com http://lists.xensource.com/xen-bugs




