[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] xen-4.1: PV domain hanging at startup, jiffies stopped

On 31.08.2011 22:00, Dan Magenheimer wrote:
>>> I've tried also xenpm set-max-cstate 0 and tsc_mode=1 in domU config,
>>> but it doesn't help. Also pinning vcpu doesn't help (this domUs have
>>> only 1 vcpu). Is 'xenpm set-max-cstate 0' the same as booting xen with
>>> max_cstate=0?
>> Looks like tsc_mode=2 solves the problem.
> It's unlikely that it SOLVES the problem, but only changes
> timings so that it effectively works around whatever the real
> problem is.

Some additional information I've found during debugging this problem:
clockevent_program_event returns -ETIME:
------------ kernel/time/clockevents.c:
 * clockevents_program_event - Reprogram the clock event device.
 * @expires:    absolute expiry time (monotonic clock)
 * Returns 0 on success, -ETIME when the event is in the past.
int clockevents_program_event(struct clock_event_device *dev, ktime_t
                  ktime_t now)

xen_vcpuop_set_next_event schedules event by getting current time
(xen_clocksource_read()) (*1) adding delta (expires-now) and programming
event with VCPUOP_set_singleshot_timer hypercall. Then xen gets current
time (*2) and in some rare cases this time is after expected timer
expiration... Even after VCPUOP_set_singleshot_timer hypercal,
xen_clocksource_read() reports time slightly in the past comparing to
xen time (reported by NOW() macro).

I think this is because "current" time is calculated different way in *1
and *2. The *1 way is controlled by tsc_mode, which is described here:
http://lxr.xensource.com/lxr/source/docs/misc/tscmode.txt. Default
tsc_mode=0 is "smart" and I think because of that can be slightly before
NOW() time. tsc_mode=2 looks almost the same as NOW() macro works.

Is this reasoning correct?

Pozdrawiam / Best Regards,
Marek Marczykowski         | RLU #390519
marmarek at mimuw edu pl   | xmpp:marmarek at staszic waw pl

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.