Consider this because this region maps the files like dynamically loaded libraries, i feel it should ideally grow up. this can be implemented by starting the mmap region between RLIMIT_STACK and heap beginning. what problems would occur in this case.
if it grows down, then how is a new memory mapped region created. suppose we wish to map the code for abc.so in the virtual address space, then we would have to create sizeof(abc.so) space, in the downward direction and map file starting at the bottom of this region. is this how it works?