[ewg] [PATCH v2] libibverbs: ibv_fork_init() and libhugetlbfs
Roland Dreier
rdreier at cisco.com
Tue Jul 6 14:31:45 PDT 2010
> We thought about this too, but in some special cases, we do not know the
> correct page size of a memory range. For example when getting a 16M chunk
> from a 16M huge page region which is also aligned to 16M, the first madvise()
> will work fine and the code will assume that the page size is 64K.
I see ... yes, that does break my idea completely.
OK, another half-baked idea: what if we pay attention to when
madvise(DOFORK) fails as well as well madvise(DONTFORK) fails, and use
that as a hit that we better check the page size?
Perhaps this adds too much complexity ... in which case your idea:
> As this issue was not present in version 2 of the code, but there we had
> a big performance penalty, I suggest the following: we could go back to
> version 2 and introduce a new RDMAV_HUGEPAGE_SAFE env variable to let the user
> decide between huge page support and better performance (the same approach we
> use for the COW protection itself).
seems like a reasonable alternative.
Thanks,
Roland
--
Roland Dreier <rolandd at cisco.com> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
More information about the ewg
mailing list