Re: copy_from_user / copy_to_user with no swap space

From: Kyle Moffett
Date: Mon Oct 16 2006 - 15:40:04 EST


On Oct 16, 2006, at 15:19:03, mfbaustx wrote:
So you're absolutely obligated to DO the copy at the time the kernel is executing on behalf of that process. Once your process/ thread is context swapped, you've lost the [correct] information on the address mapping.

Yes, this is correct.

So, IF you MUST copy_from/to_user when in the context of the process, AND IF you have no virtual memory/swapping, THEN must it not be true that you can ALWAYS dereferences your user space pointers?

I'm not sure I entirely understand what you're asking here; perhaps you could rephrase or explain what you're trying to do? From what I can pick up from your description; you may be missing that program text pages and memory-mapped files may be "swapped-out" even *without* a swap device. As an example, when I first start /bin/bash (ignoring readahead for the moment), very little of the binary and shared libraries are actually in memory (the rest is left on disk). When I use data or call a function that hasn't been loaded from disk yet, a major fault occurs, the kernel loads data from the bash executable file or a shared library, and then maps it into the process address space.

Cheers,
Kyle Moffett

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/