Posting in case anybody else was considering the same thing.

Subject: implement method entry allocator + bitmap marking

I was working on an allocator for another project but got
side-tracked by the following comment in vm.c:

    /* TODO: marking `me' can be more sophisticated way */

I doubt this patch is worth it; method entries are tiny and even 10K
of them only costs 320K on a 64-bit system; so any potential CoW
savings from this are minimal.  This may reduce unnecessary dirty
cache lines if we set the mark bit on many entries.  However each
mark cycle only marks running methods, which is not a lot.

On 32-bit systems, rb_method_entry_t is reduced to 16 bytes from 20.
No change for 64-bit systems, it stays at 32 bytes.
I've only tested on amd64 on GNU/Linux (Debian 7)

http://bogomips.org/ruby.git/patch?id=e752c0e62db9

The following changes since commit 943fae33a76c0e0418484b731890167f0734c613:

  fix typos [ci skip] (2014-08-12 15:53:51 +0000)

are available in the git repository at:

  git://80x24.org/ruby.git meslab

for you to fetch changes up to e752c0e62db9f7fd18da807d398cae8308035dbe:

  implement method entry allocator + bitmap marking (2014-08-12 19:46:00 +0000)

----------------------------------------------------------------
Eric Wong (3):
      gc.c: export rb_aligned_{alloc,free}
      API changes for method entry marking
      implement method entry allocator + bitmap marking

 class.c     |   5 +-
 gc.c        |  20 +++---
 internal.h  |   2 +
 method.h    |   7 +-
 proc.c      |  19 ++----
 vm.c        |   5 +-
 vm_core.h   |   1 +
 vm_method.c | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 8 files changed, 239 insertions(+), 41 deletions(-)