Re: swsusp with highmem, testing wanted

Pavel Machek
2004-03-25T22:22:27Z

Hi!

> > Having special "poll" mode for block drivers might do the trick, but
> > thats lot of work.
>
> Maybe I'm missing something, but why doesn't the regular io paths
> work?

(Basically) you want to replace all kernel data with kernel data saved
on disk. How do you do that using normal i/o paths? If you'll read
"new" data 4KB at a time, you'll crash... because you still need "old"
data to do the reading, and "new" data may fit on same physical spot
in memory.

There are two solutions to this:

* require half of memory to be free during suspend. That way you can
read "new" data onto free spots, then cli and copy

* assume we had special "polling" ide driver that only uses memory
between 0-640KB. That way, I'd have to make sure that 0-640KB is free
during suspending, but otherwise it would work...

Do you see the problem now?

> > Which operations are allowed to access highmem? Can I rely on
> > block device read/write not accessing highmem?
>
> You mean modify highmem pages, or?

I'd like to know this. Suppose I ask block subsystem to read from disk
into page @1.8GB. All the highmem contains trash. Will block subsystem
be able to work in this situation?
Pavel
--
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]