Roland Mainz wrote:
Eric Lowe wrote:
but there's too much code out there that just breaks.  The
programmers made implicit assumptions about the approximate
size of a page, and that was that.
Which code breaks ? Userland or kernel code ? Was
Userland. The problem is that mmap() exposed too much detail
and as a result assumptions about sysconf(_SC_PAGESIZE) or
even the range of possible values resulted in programs dying
when sysconf returns 64K for the pagesize. In other words,
the value of sysconf(_SC_PAGESIZE) has sort of defacto ended>
up baked into the Solaris ABI in an unintentional way.
... but how ? I've read the ABI specs and mmap(2) several times and the
only thing which AFAIK may be possible is trouble with MAP_FIXED and
rounding. But that's again not in the ABI, it's just that the
applications make special assumptions about the page size.

I assume this also means a (hypothetical) SPARC CPU which only supports
16k and 256k pages cannot be supported by Solaris, right ?

----

Bye,
Roland


Grab a chunk of VA (w/ mmap_noreserve) and then try and
allocate several pages inside w/ guard pages.  If you
grabbed a fixed size area initially, your code is broken
if someone mucks enough w/ the page size.

- Bart



--
Bart Smaalders                  Solaris Kernel Performance
[EMAIL PROTECTED]               http://blogs.sun.com/barts
_______________________________________________
opensolaris-discuss mailing list
[email protected]

Reply via email to