>>>> "SJ" == Simon Josefsson
<jas(a)pdc.kth.se> writes:
> Build 21.0 betas with `--with-minimal-tagbits'. It raises the 28-bit
> limit to 31-bit.
SJ> We're getting somewhere. :-)
I would like to say that "Even 31 bit is not enough".
As all of you in this ML know, emacs allocates cons-cells and other
"tiny" resources by chunk of 1k using malloc. But if we can make
this size to 4k, and use "mmap()" system call, on some machine, it
will increase Virtual Memory usage, which will lessen the swap IO
and make entire system works faster. (all we need to do is use
PHKmalloc instead of GNU-malloc and change constant from 1024 to
4096)
But, for AIX, mmap() will map the new page to address higher then
0x80000000, which means we need 32nd bit. I'm pretty sure that even
on some other OS have same kind of limitation.
#on other hand, I know that FreeBSD and Linux will work fine with
#this idea, for they both starts from lower address. But even then,
#we still have no chance to use address > 2G.
I'm thinking about having dirty bits for GCs on somewhere beside
pointer, but I don't have any GOOD Idea for now(especially the Idea
of knowing where the dirty bit exists from address of each
cells. For those OS who can use mmap, I already have answer, because
we know it's aligned to 4k. But for OS without mmap, I have no good
idea for now. anybody have one ?)
So this is what I want to say:
"We need entire addressing space. If you have any Idea on
putting new information into address bit field, please don't.
We need entire addressing space for addressing."
----
Kenichi Okuyama(a)trl.ibm.co.jp.