Re: page_waitqueue() considered harmful

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2016-09-26 at 13:58 -0700, Linus Torvalds wrote:

> Is there really any reason for that incredible indirection? Do we
> really want to make the page_waitqueue() be a per-zone thing at all?
> Especially since all those wait-queues won't even be *used* unless
> there is actual IO going on and people are really getting into
> contention on the page lock.. Why isn't the page_waitqueue() just one
> statically sized array?

Why are we touching file pages at all during fork()?

Could we get away with skipping copy_page_range on VMAs
that do not have any anonymous pages?

Could we teach copy_page_range to skip file PTEs during
fork?

The child process can just fault the needed file pages in
after it has been forked off.

Given how common fork + exec are, there is a real chance that:
- the child process did not need all of the parent's pages, and
- the parent process does not have some of the bits needed by
  the child (for exec) mapped into its page tables, anyway
  (as suggested by the child processes page faulting on file
   pages)

Having fewer pages mapped might also make zap_page_range
a little cheaper, both at exec and at exit time.

Am I overlooking something?

-- 
All Rights Reversed.

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]