Messages in this thread | | | Date | Thu, 25 Mar 2004 23:22:05 +0100 | From | Pavel Machek <> | Subject | Re: swsusp with highmem, testing wanted |
| |
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?] - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |