Re: Old style ramdisk (fwd)

Robert de Bath (robert@mayday.compulink.co.uk)
Sat, 13 Jul 1996 12:25:21 +0100 (BST)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

---1715277560-946338423-836949942=:304
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.3.91.960709230737.304C@mayday.compulink.co.uk>

This seems to have gone missing ... lets try again ...

--
Rob.                           (Robert de Bath <robert@mayday.compulink.co.uk>)

---------- Forwarded message ---------- Date: Tue, 9 Jul 1996 23:16:46 +0100 (BST) From: Robert de Bath <robert@mayday.compulink.co.uk> To: Eric Thelin <erict@goodnet.com>, Derrik Pates <dpates@Cavern.NMSU.Edu>, Chad Page <page0588@sundance.sjsu.edu>, "Theodore Y. Ts'o" <tytso@MIT.EDU>, Paul Gortmaker <gpg109@rsphy1.anu.edu.au>, Systemkennung Linux <linux@mailhost.uni-koblenz.de>, Scott Laird <scott@laird.com> Cc: linux-kernel@vger.rutgers.edu Subject: Re: Old style ramdisk

On Mon, 8 Jul 1996, Derrik Pates wrote:

> > running programs from the slooow RAM, 2.0.0 ends up about 1/4 the speed > > of 1.2.13 on an already very slow machine. > > Why? You take away from the memory to create a swapfile to swap pages from > memory? I think that's a bit redundant, not to mention wasteful. That's > like creating a RAM disk to put your WinSlows 3.1 swapfile on. 'Cause the ISA ram is a (tiny) fraction of the speed of the 32 bit stuff. Also, I have put a windows swap file on a ramdisk before ... it was a HW EMS card so windoze couldn't use it any other way. :-)

On Mon, 8 Jul 1996, Chad Page wrote:

> Buffer-cache experts : Is there any way to create buffer-heads > arbitrarily? If so, then at system startup it *might* be possible to > allocate the memory, and create a ramdisk (or more than 1, depending on > the # of fragments) which contains the 'slow' areas of memory using the > current driver. Now this I like, but does it have to even be one ramdisk per fragment? As I understand it the new ramdisks are 100% fragmented anyway so you _should_ be able to assign them all to one 'disk', or assign this RAM to some sort of pool that can only be allocated by the ramdisks ...

Actually, thinking about this if a block is in the buffer bool it'll be mmapped into processes by Linux, we don't want this, we specifically want the data to be copied to a low buffer before anything is done AFAICS the only way to do this is a memcpy in the device driver.

> The old-style ramdisk actually took memory away from the kernel's > reach (I think it lowered the top of memory), so it was never really > modularizable (then again, it was written long before modules even > existed ;) Well, it can be 'modularized' _but_ if it is it can only use memory outside that which has been grabbed by Linux. That's not a problem and could even be useful if you have disjoint chunks of RAM.

On Mon, 8 Jul 1996, Theodore Y. Ts'o wrote:

> What I would do: > > 1. ... append="mem=2M"

> 2. Take the old ramdisk driver, and modify it to be loadable as a > kernel module. Step (1) above means that you won't have to do any nasty > boot-time memory allocation, so it will be easy to drop it as a loadable > kernel module. This is _exactly_ what I was thinking of, of course there's the tiny problem that I haven't actually done that much Linux kernel programming and don't know what the current module recipe is ... :-)

On Tue, 9 Jul 1996, Paul Gortmaker wrote: > It should be a two second operation to add the old ramdisk source file > from a pre 1.3.47 (I think) kernel back into the 2.0.x tree. Make sure > you *don't* compile in the new ramdisk driver as well, or there will be > a conflict for the minor number associated with /dev/ram Humm, This does look like the simplest solution, but it's not very pretty...

LATER: Ok! I've found a nice solution. What I've done is to make some small changes to the code for initrd. There's now a boot option "initrd=x,y" the values are the start and end addresses of the ramdisk in kbytes.

The initrd is now writeable and _if_ you write to it it will not be released until/unless you do a BLKFLSBUF and close.

It even works on this nice large machine ... 16Mb of RAM 64Mb of RAM swap ...

Of course all I need now is some way to tell Linux that it's faster to save clean pages to this swap than it is to re-read them from the HD... :-)

--
Rob.                           (Robert de Bath <robert@mayday.compulink.co.uk>)
---1715277560-946338423-836949942=:304
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="rd.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.91.960709230523.304A@mayday.compulink.co.uk>
Content-Description: Ramdisk diffs on 2.0.0

ZGlmZiAtdSAtciBvcmlnL2xpbnV4L2RyaXZlcnMvYmxvY2svcmQuYyBsaW51 eC0yLjAvZHJpdmVycy9ibG9jay9yZC5jDQotLS0gb3JpZy9saW51eC9kcml2 ZXJzL2Jsb2NrL3JkLmMJU3VuIEFwciAyOCAxNjo0NzoyMSAxOTk2DQorKysg bGludXgtMi4wL2RyaXZlcnMvYmxvY2svcmQuYwlUdWUgSnVsICA5IDIyOjU1 OjQ1IDE5OTYNCkBAIC0xMDAsNiArMTAwLDcgQEANCiAjaWZkZWYgQ09ORklH X0JMS19ERVZfSU5JVFJEDQogdW5zaWduZWQgbG9uZyBpbml0cmRfc3RhcnQs aW5pdHJkX2VuZDsNCiBpbnQgbW91bnRfaW5pdHJkID0gMTsJCS8qIHplcm8g aWYgaW5pdHJkIHNob3VsZCBub3QgYmUgbW91bnRlZCAqLw0KK2ludCB3cml0 dGVuX3RvID0gMDsJCS8qIE9uY2Ugd3JpdHRlbiB0byBpdCBjYW4ndCBiZSBk ZWFsbG9jYXRlZCAqLw0KICNlbmRpZg0KICNlbmRpZg0KIA0KQEAgLTExOSw2 ICsxMjAsMjggQEANCiAJDQogCW1pbm9yID0gTUlOT1IoQ1VSUkVOVC0+cnFf ZGV2KTsNCiANCisjaWZkZWYgQ09ORklHX0JMS19ERVZfSU5JVFJEDQorCWlm IChtaW5vciA9PSBJTklUUkRfTUlOT1IpIHsNCisJCW9mZnNldCA9IENVUlJF TlQtPnNlY3RvciA8PCA5Ow0KKwkJbGVuID0gQ1VSUkVOVC0+Y3VycmVudF9u cl9zZWN0b3JzIDw8IDk7DQorCQlpZiggaW5pdHJkX3N0YXJ0K29mZnNldCA+ IGluaXRyZF9lbmQgKSB7DQorCQkJZW5kX3JlcXVlc3QoMCk7DQorCQkJZ290 byByZXBlYXQ7DQorCQl9DQorCQkNCisJCWlmIChDVVJSRU5ULT4gY21kID09 IFdSSVRFKSB7DQorCQkJKHZvaWQgKSBtZW1jcHkoaW5pdHJkX3N0YXJ0K29m ZnNldCwNCisJCQkJICAgICAgQ1VSUkVOVC0+YnVmZmVyLA0KKwkJCQkgICAg ICBsZW4pOw0KKwkJfSBlbHNlIGlmIChDVVJSRU5ULT5jbWQgPT0gUkVBRCkg ew0KKwkJCSh2b2lkKSBtZW1jcHkoQ1VSUkVOVC0+YnVmZmVyLCANCisJCQkJ ICAgICAgaW5pdHJkX3N0YXJ0K29mZnNldCwNCisJCQkJICAgICAgbGVuKTsN CisJCX0NCisJCWVuZF9yZXF1ZXN0KDEpOw0KKwkJZ290byByZXBlYXQ7DQor CX0NCisjZW5kaWYNCiAJaWYgKG1pbm9yID49IE5VTV9SQU1ESVNLUykgew0K IAkJZW5kX3JlcXVlc3QoMCk7DQogCQlnb3RvIHJlcGVhdDsNCkBAIC0xNTks NiArMTgyLDExIEBADQogCQljYXNlIEJMS0ZMU0JVRjoNCiAJCQlpZiAoIXN1 c2VyKCkpIHJldHVybiAtRUFDQ0VTOw0KIAkJCWludmFsaWRhdGVfYnVmZmVy cyhpbm9kZS0+aV9yZGV2KTsNCisjaWZkZWYgQ09ORklHX0JMS19ERVZfSU5J VFJEDQorCQkJaWYgKERFVklDRV9OUihpbm9kZS0+aV9yZGV2KSA9PSBJTklU UkRfTUlOT1IpIHsNCisJCQkJd3JpdHRlbl90byA9IDA7DQorCQkJfQ0KKyNl bmRpZg0KIAkJCWJyZWFrOw0KICAgICAgICAgIAljYXNlIEJMS0dFVFNJWkU6 ICAgLyogUmV0dXJuIGRldmljZSBzaXplICovDQogCQkJaWYgKCFhcmcpICBy ZXR1cm4gLUVJTlZBTDsNCkBAIC0xNjYsNiArMTk0LDEzIEBADQogCQkJCQkg IHNpemVvZihsb25nKSk7DQogCQkJaWYgKGVycikNCiAJCQkJcmV0dXJuIGVy cjsNCisjaWZkZWYgQ09ORklHX0JMS19ERVZfSU5JVFJEDQorCQkJaWYgKERF VklDRV9OUihpbm9kZS0+aV9yZGV2KSA9PSBJTklUUkRfTUlOT1IpIHsNCisJ CQkJcHV0X3VzZXIoKGluaXRyZF9lbmQtaW5pdHJkX3N0YXJ0KS81MTIsIA0K KwkJCQkgCShsb25nICopIGFyZyk7DQorCQkJfQ0KKwkJCWVsc2UNCisjZW5k aWYNCiAJCQlwdXRfdXNlcihyZF9sZW5ndGhbTUlOT1IoaW5vZGUtPmlfcmRl dildIC8gNTEyLCANCiAJCQkJIChsb25nICopIGFyZyk7DQogCQkJcmV0dXJu IDA7DQpAQCAtMTc3LDU3ICsyMTIsMTIgQEANCiAJcmV0dXJuIDA7DQogfQ0K IA0KLQ0KLSNpZmRlZiBDT05GSUdfQkxLX0RFVl9JTklUUkQNCi0NCi1zdGF0 aWMgaW50IGluaXRyZF9yZWFkKHN0cnVjdCBpbm9kZSAqaW5vZGUsc3RydWN0 IGZpbGUgKmZpbGUsY2hhciAqYnVmLA0KLSAgICBpbnQgY291bnQpDQotew0K LQlpbnQgbGVmdDsNCi0NCi0JbGVmdCA9IGluaXRyZF9lbmQtaW5pdHJkX3N0 YXJ0LWZpbGUtPmZfcG9zOw0KLQlpZiAoY291bnQgPiBsZWZ0KSBjb3VudCA9 IGxlZnQ7DQotCWlmIChjb3VudCA8PSAwKSByZXR1cm4gMDsNCi0JbWVtY3B5 X3RvZnMoYnVmLChjaGFyICopIGluaXRyZF9zdGFydCtmaWxlLT5mX3Bvcyxj b3VudCk7DQotCWZpbGUtPmZfcG9zICs9IGNvdW50Ow0KLQlyZXR1cm4gY291 bnQ7DQotfQ0KLQ0KLQ0KLXN0YXRpYyB2b2lkIGluaXRyZF9yZWxlYXNlKHN0 cnVjdCBpbm9kZSAqaW5vZGUsc3RydWN0IGZpbGUgKmZpbGUpDQotew0KLQl1 bnNpZ25lZCBsb25nIGk7DQotDQotCWlmICgtLWluaXRyZF91c2VycykgcmV0 dXJuOw0KLQlmb3IgKGkgPSBpbml0cmRfc3RhcnQ7IGkgPCBpbml0cmRfZW5k OyBpICs9IFBBR0VfU0laRSkNCi0JCWZyZWVfcGFnZShpKTsNCi0JaW5pdHJk X3N0YXJ0ID0gMDsNCi19DQotDQotDQotc3RhdGljIHN0cnVjdCBmaWxlX29w ZXJhdGlvbnMgaW5pdHJkX2ZvcHMgPSB7DQotCU5VTEwsCQkvKiBsc2VlayAq Lw0KLQlpbml0cmRfcmVhZCwJLyogcmVhZCAqLw0KLQlOVUxMLAkJLyogd3Jp dGUgKi8NCi0JTlVMTCwJCS8qIHJlYWRkaXIgKi8NCi0JTlVMTCwJCS8qIHNl bGVjdCAqLw0KLQlOVUxMLCAJCS8qIGlvY3RsICovDQotCU5VTEwsCQkvKiBt bWFwICovDQotCU5VTEwsCQkvKiBvcGVuICovDQotCWluaXRyZF9yZWxlYXNl LAkvKiByZWxlYXNlICovDQotCU5VTEwJCS8qIGZzeW5jICovIA0KLX07DQot DQotI2VuZGlmDQotDQotDQogc3RhdGljIGludCByZF9vcGVuKHN0cnVjdCBp bm9kZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbHApDQogew0KICNpZmRl ZiBDT05GSUdfQkxLX0RFVl9JTklUUkQNCiAJaWYgKERFVklDRV9OUihpbm9k ZS0+aV9yZGV2KSA9PSBJTklUUkRfTUlOT1IpIHsNCiAJCWlmICghaW5pdHJk X3N0YXJ0KSByZXR1cm4gLUVOT0RFVjsNCiAJCWluaXRyZF91c2VycysrOw0K LQkJZmlscC0+Zl9vcCA9ICZpbml0cmRfZm9wczsNCiAJCXJldHVybiAwOw0K IAl9DQogI2VuZGlmDQpAQCAtMjQwLDkgKzIzMCwyMiBAQA0KIAlyZXR1cm4g MDsNCiB9DQogDQotI2lmZGVmIE1PRFVMRQ0KKyNpZiBkZWZpbmVkKE1PRFVM RSkgfHwgZGVmaW5lZChDT05GSUdfQkxLX0RFVl9JTklUUkQpDQogc3RhdGlj IHZvaWQgcmRfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0 IGZpbGUgKiBmaWxwKQ0KIHsNCisjaWZkZWYgQ09ORklHX0JMS19ERVZfSU5J VFJEDQorCWlmIChERVZJQ0VfTlIoaW5vZGUtPmlfcmRldikgPT0gSU5JVFJE X01JTk9SKSB7DQorCQl1bnNpZ25lZCBsb25nIGk7DQorDQorCQlpZiAoLS1p bml0cmRfdXNlcnMpIHJldHVybjsNCisJCWlmICh3cml0dGVuX3RvKSByZXR1 cm47DQorCQlmb3IgKGkgPSBpbml0cmRfc3RhcnQ7IGkgPCBpbml0cmRfZW5k OyBpICs9IFBBR0VfU0laRSkNCisJCQlmcmVlX3BhZ2UoaSk7DQorCQlpbml0 cmRfc3RhcnQgPSAwOw0KKw0KKwkJcmV0dXJuOw0KKwl9DQorI2VuZGlmDQog CU1PRF9ERUNfVVNFX0NPVU5UOw0KIH0NCiAjZW5kaWYNCkBAIC0yNTYsMTAg KzI1OSwxMCBAQA0KIAlyZF9pb2N0bCwgCS8qIGlvY3RsICovDQogCU5VTEws CQkvKiBtbWFwICovDQogCXJkX29wZW4sCS8qIG9wZW4gKi8NCi0jaWZuZGVm IE1PRFVMRQ0KLQlOVUxMLAkJLyogbm8gc3BlY2lhbCByZWxlYXNlIGNvZGUu Li4gKi8NCi0jZWxzZQ0KKyNpZiBkZWZpbmVkKE1PRFVMRSkgfHwgZGVmaW5l ZChDT05GSUdfQkxLX0RFVl9JTklUUkQpDQogCXJkX3JlbGVhc2UsCS8qIG1v ZHVsZSBuZWVkcyB0byBkZWNyZW1lbnQgdXNlIGNvdW50ICovDQorI2Vsc2UN CisJTlVMTCwJCS8qIG5vIHNwZWNpYWwgcmVsZWFzZSBjb2RlLi4uICovDQog I2VuZGlmDQogCWJsb2NrX2ZzeW5jCQkvKiBmc3luYyAqLyANCiB9Ow0KZGlm ZiAtdSAtciBvcmlnL2xpbnV4L2luaXQvbWFpbi5jIGxpbnV4LTIuMC9pbml0 L21haW4uYw0KLS0tIG9yaWcvbGludXgvaW5pdC9tYWluLmMJTW9uIE1heSAy MCAxODozMzozOCAxOTk2DQorKysgbGludXgtMi4wL2luaXQvbWFpbi5jCVR1 ZSBKdWwgIDkgMjA6NTU6MDAgMTk5Ng0KQEAgLTI1OCw2ICsyNTgsNyBAQA0K IAl7ICJyYW1kaXNrX3NpemU9IiwgcmFtZGlza19zaXplIH0sDQogI2lmZGVm IENPTkZJR19CTEtfREVWX0lOSVRSRA0KIAl7ICJub2luaXRyZCIsIG5vX2lu aXRyZCB9LA0KKwl7ICJpbml0cmQ9Iiwgbm9faW5pdHJkIH0sDQogI2VuZGlm DQogI2VuZGlmDQogCXsgInN3YXA9Iiwgc3dhcF9zZXR1cCB9LA0KQEAgLTgx Miw2ICs4MTMsMTIgQEANCiAJCSAgICAiZGlzYWJsaW5nIGl0LlxuIixpbml0 cmRfc3RhcnQsbWVtb3J5X3N0YXJ0KTsNCiAJCWluaXRyZF9zdGFydCA9IDA7 DQogCX0NCisJaWYgKGluaXRyZF9zdGFydCAmJiBpbml0cmRfZW5kID4gbWVt b3J5X2VuZCkgew0KKwkJcHJpbnRrKEtFUk5fQ1JJVCAiaW5pdHJkIGV4dGVu ZHMgYmV5b25kIGVuZCBvZiBtZW1vcnkgIg0KKwkJICAgICIoMHglMDhseCA+ IDB4JTA4bHgpXG5kaXNhYmxpbmcgaW5pdHJkXG4iLA0KKwkJICAgIGluaXRy ZF9lbmQsbWVtb3J5X2VuZCk7DQorCQlpbml0cmRfc3RhcnQgPSAwOw0KKwl9 DQogI2VuZGlmDQogCW1lbV9pbml0KG1lbW9yeV9zdGFydCxtZW1vcnlfZW5k KTsNCiAJYnVmZmVyX2luaXQoKTsNCkBAIC04OTIsNiArODk5LDkgQEANCiBz dGF0aWMgdm9pZCBub19pbml0cmQoY2hhciAqcyxpbnQgKmludHMpDQogew0K IAltb3VudF9pbml0cmQgPSAwOw0KKwlpZiggaW50c1swXSA+PSAxICkgaW5p dHJkX3N0YXJ0ID0gaW50c1sxXSAqIDEwMjQ7DQorCWlmKCBpbnRzWzBdID49 IDIgKSBpbml0cmRfZW5kID0gaW50c1syXSAqIDEwMjQ7DQorCXByaW50aygi SW5pdCByYW1kaXNrIDB4JTA4eC4uMHglMDh4XG4iLCBpbml0cmRfc3RhcnQs IGluaXRyZF9lbmQpOw0KIH0NCiAjZW5kaWYNCiANCg== ---1715277560-946338423-836949942=:304--