>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/