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

Re: [Xen-devel] S3 resume issues

On Fri, Jan 4, 2013 at 3:34 AM, Jan Beulich <JBeulich@xxxxxxxx> wrote:
>>>> On 03.01.13 at 22:26, Ben Guthro <ben@xxxxxxxxxx> wrote:
>> You have suggested storing some info in  CMOS data... how would I even go
>> about doing that?
> The usual port 0x70 and 0x71 accesses, just coded directly in
> assembly inside the trampoline code.
>> ...and what would you suggest storing there?
> Initially, just some indicator that you got to a certain point. You
> could, for example, simply increment the year:
>         movb    $RTC_YEAR, %al
>         outb    %al, $0x70
>         inb     $0x71, %al
>         incb    %al
>         outb    %al, $0x71
> (if necessary in the place you put this, saving/restoring %eax
> and/or eflags may need to be added).
> Jan

I think this is a serious contender in the contest for, "most tedious
way possible to debug software."

The resume process seems to be getting much further than I expected.
I've traced it as far as the following stack


At the point of incrementing the date in process_pending_softirqs() -
I rebooted, and got a BIOS error about the TSC being invalid...so it
would seem I wrapped that integer...oops.
Why these machines are getting stuck with pending softirqs is still a
mystery to me.

I can also change the behavior, such that it resumes once, if I put an
mdelay(1000) in the process after disable_nonboot_cpus();
However, subsequent resumes seem to hang.

As far as I can tell, this seems to happen on Lenovo laptops, but not
others (or, at least, not the ones I've checked)
It seems to at least happen on any Sandybridge, or Ivybridge class Thinkpads:

If you have any suggestions as to how to debug the soft IRQ problem,
I'd welcome any pointers.


Xen-devel mailing list



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