After hours of head scratching... I did it!
Code:
yberfish@cyberfish-tablet:/$ sudo dd if=/dev/zero of=test bs=4M count=100
100+0 records in
100+0 records out
419430400 bytes (419 MB) copied, 1.35247 s, 310 MB/s
cyberfish@cyberfish-tablet:/$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 975M 0 975M 0% /lib/init/rw
varrun 975M 108K 975M 1% /var/run
varlock 975M 0 975M 0% /var/lock
udev 975M 164K 975M 1% /dev
tmpfs 975M 88K 975M 1% /dev/shm
rootfs 10G 2.2G 7.9G 22% /
lrm 975M 2.4M 973M 1% /lib/modules/2.6.28-11-generic/volatile
tmpfs 975M 12K 975M 1% /tmp
cyberfish@cyberfish-tablet:/$ free -m
total used free shared buffers cached
Mem: 1949 1357 592 0 0 838
-/+ buffers/cache: 518 1431
Swap: 4094 1421 2673
Had to modify the patch on that page a bit, added tar to initrd (doesn't come with the ubuntu one for some reason, and changed fstab to remove the root.
For the dd test I cheated by creating and deleting a huge file before the dd command to swap other files and make room for the test file. That would be the performance if I had enough RAM, though.
The system felt noticeably faster... firefox takes about 3 seconds to start (CPU-bound!), which is about how fast it is usually when it's already in disk cache. That's reasonable since tmpfs uses the kernel disk caching system (without backing store, so pages are always marked dirty).
There's still disk activity (swapping) once in a while since I don't have enough RAM.
Reading the "root" archive on boot is not too bad at all. My 2GB root partition can be gzipped to about 500MB. Uncompressing and copying it to the new tmpfs takes about 20 seconds (essentially the time to read 500MB from harddrive, since gzip is so fast that it's bottlenecked by the drive. Wouldn't be the case for bzip2. And writing to RAM is of course also very fast).