Re: CONFIG_BIGMEM and rawio

Andrea Arcangeli (andrea@suse.de)
Wed, 8 Sep 1999 14:14:56 +0200 (CEST)


On Wed, 8 Sep 1999, Manfred Spraul wrote:

>I assumed it its safe, but I wanted to point out the performance loss:

Ah, I thought you was pointing out a bug because you quoted my "bigmem
it's safe" before talking about the swapout/cow bigmem iteraction.

>+ without CONFIG_BIGMEM, the shared page will remain shared during
>swapout and during the swapin.

Yes.

>+ with CONFIG_BIGMEM and a page in the bigmem area, the "shared-status"
>is lost, and 2 independant pages are created.

Yes but that's really a minor issue IMHO. The fact that we have to bounce
the bigmem-page in regular-memory is more sensitive than the
double-swapout-cow thing.

>If Stephen implements bounce buffers in ll_rw_page(), then the pages
>could remain shared.

Yes that's true but I believe that's really _not_ the interesting reason
for using bounce buffers.

>[but I still think bounce buffers in ll_rw_page() during swap-out could
>cause OOM problems]

It depends. If they are all static there's no reason to worry. But if they
are dynamic we should think about the deadlock issues. Right now to do the
thing _safe_ they _have_ to be dynamic to remap every buffer that enter
in the ll_rw_block path and not only the req->bh. If we remap only the
req->bh then we can simply lose PAGE_SIZE*NR_REQUEST memory and we won't
risk to deadlock but that's not a real protection and it may break also
with DMA driven operations if the PCI bus is not capable to access
physical memory over 2gigabyte (see my previous email to Stephen).

>Btw, is the big kernel lock required for calling lookup_swap_cache()?

No.

Andrea

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