* Suspend ops on x86 architectures.
@ 2007-11-18 21:19 Francis Moreau
2007-11-18 22:12 ` Rafael J. Wysocki
0 siblings, 1 reply; 3+ messages in thread
From: Francis Moreau @ 2007-11-18 21:19 UTC (permalink / raw)
To: linux-pm
Hello,
I'm trying to get an idea on how suspend works on Linux. I already looked at
Documentation/power, but I'm clueless about x86 architectures. They don't
seem to define any suspend ops.
Can anyone give me some pointers or some hints, I'd like to look at the
low level part of the suspend on these architectures also I'd like to know
what kind of events wake up the system once it's suspended. I guess
interrupts are used but which ones exactly.
Also I'm wondering how jiffies or system clock are updated correctly after
resuming.
Thanks in advance.
--
Francis
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Suspend ops on x86 architectures.
2007-11-18 21:19 Suspend ops on x86 architectures Francis Moreau
@ 2007-11-18 22:12 ` Rafael J. Wysocki
2007-11-19 9:02 ` Francis Moreau
0 siblings, 1 reply; 3+ messages in thread
From: Rafael J. Wysocki @ 2007-11-18 22:12 UTC (permalink / raw)
To: Francis Moreau; +Cc: linux-pm
Hi,
On Sunday, 18 of November 2007, Francis Moreau wrote:
> Hello,
>
> I'm trying to get an idea on how suspend works on Linux. I already looked at
> Documentation/power, but I'm clueless about x86 architectures. They don't
> seem to define any suspend ops.
Yes, they do, via ACPI. Please see drivers/acpi/sleep/main.c .
> Can anyone give me some pointers or some hints, I'd like to look at the
> low level part of the suspend on these architectures also I'd like to know
> what kind of events wake up the system once it's suspended. I guess
> interrupts are used but which ones exactly.
This also is controlled by ACPI. The ACPI platform firmware handles the
wake-up events and transfers control to the kernel by jumping to an address
specified before the suspend.
> Also I'm wondering how jiffies or system clock are updated correctly after
> resuming.
AFAICS, we use the pre-suspend value of jiffies. The generic clocksource
timekeeping is handled by timekeeping_resume() in kernel/time/timekeeping.c .
Greetings,
Rafael
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Suspend ops on x86 architectures.
2007-11-18 22:12 ` Rafael J. Wysocki
@ 2007-11-19 9:02 ` Francis Moreau
0 siblings, 0 replies; 3+ messages in thread
From: Francis Moreau @ 2007-11-19 9:02 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: linux-pm
Hello,
On Nov 18, 2007 11:12 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> Hi,
>
> On Sunday, 18 of November 2007, Francis Moreau wrote:
> > Hello,
> >
> > I'm trying to get an idea on how suspend works on Linux. I already looked at
> > Documentation/power, but I'm clueless about x86 architectures. They don't
> > seem to define any suspend ops.
>
> Yes, they do, via ACPI. Please see drivers/acpi/sleep/main.c .
>
> > Can anyone give me some pointers or some hints, I'd like to look at the
> > low level part of the suspend on these architectures also I'd like to know
> > what kind of events wake up the system once it's suspended. I guess
> > interrupts are used but which ones exactly.
>
> This also is controlled by ACPI. The ACPI platform firmware handles the
> wake-up events and transfers control to the kernel by jumping to an address
> specified before the suspend.
>
> > Also I'm wondering how jiffies or system clock are updated correctly after
> > resuming.
>
> AFAICS, we use the pre-suspend value of jiffies. The generic clocksource
> timekeeping is handled by timekeeping_resume() in kernel/time/timekeeping.c .
>
Thanks the hints, I'm going to take a look to ACPI then.
--
Francis
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-11-19 9:02 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-18 21:19 Suspend ops on x86 architectures Francis Moreau
2007-11-18 22:12 ` Rafael J. Wysocki
2007-11-19 9:02 ` Francis Moreau
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox