From: Andreas Dilger Subject: [PATCH] mk2fs lazy_journal_init option Date: Wed, 10 Feb 2010 04:44:46 -0700 Message-ID: <13A447AA-31C7-4E02-8752-DFF75EA31C2E@sun.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary_(ID_/0eorTzh5i0fp9nkUXLPwQ)" Cc: ext4 development To: "Theodore Ts'o" Return-path: Received: from sca-es-mail-2.Sun.COM ([192.18.43.133]:40192 "EHLO sca-es-mail-2.sun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754245Ab0BJLos (ORCPT ); Wed, 10 Feb 2010 06:44:48 -0500 Received: from fe-sfbay-09.sun.com ([192.18.43.129]) by sca-es-mail-2.sun.com (8.13.7+Sun/8.12.9) with ESMTP id o1ABimr1012380 for ; Wed, 10 Feb 2010 03:44:48 -0800 (PST) Received: from conversion-daemon.fe-sfbay-09.sun.com by fe-sfbay-09.sun.com (Sun Java(tm) System Messaging Server 7u2-7.04 64bit (built Jul 2 2009)) id <0KXM00B00J616L00@fe-sfbay-09.sun.com> for linux-ext4@vger.kernel.org; Wed, 10 Feb 2010 03:44:47 -0800 (PST) Sender: linux-ext4-owner@vger.kernel.org List-ID: --Boundary_(ID_/0eorTzh5i0fp9nkUXLPwQ) Content-type: text/plain; CHARSET=US-ASCII; delsp=yes; format=flowed Content-transfer-encoding: 7BIT Attached is a patch to skip zeroing of the journal if the "-E lazy_journal_init" option is given to mke2fs (named to complement the "-E lazy_itable_init" option). This can speed up format time significantly for large journal devices. There is only a short-term risk of problems with the uninitialized journal, until such a time that the journal has been overwritten once. To have any kind of problem with the uninitialized journal, the filesystem would have to have been newly reformatted twice nearly in a row, and then the node crashes before filling the journal even once, and the previously-written content would have to line up precisely on disk and also have the same transaction ID. Patch has been lightly tested, showing mke2fs times steady at 14s for a 40GB filesystem, regardless of journal size, while previously it took up to 45s for an internal 2GB journal. Signed-off-by: Andreas Dilger Cheers, Andreas -- Andreas Dilger Sr. Staff Engineer, Lustre Group Sun Microsystems of Canada, Inc. --Boundary_(ID_/0eorTzh5i0fp9nkUXLPwQ) Content-type: application/octet-stream; name=e2fsprogs-lazy_journal_init.patch; x-unix-mode=0644 Content-transfer-encoding: BASE64 Content-disposition: attachment; filename=e2fsprogs-lazy_journal_init.patch SW5kZXg6IGUyZnNwcm9ncy0xLjQxLjkvbGliL2V4dDJmcy9leHQyZnMuaA0KPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KLS0tIGUyZnNwcm9ncy0xLjQxLjkub3JpZy9saWIv ZXh0MmZzL2V4dDJmcy5oDQorKysgZTJmc3Byb2dzLTEuNDEuOS9saWIvZXh0MmZz L2V4dDJmcy5oDQpAQCAtMTgxLDEwICsxODEsOSBAQCB0eXBlZGVmIHN0cnVjdCBl eHQyX2ZpbGUgKmV4dDJfZmlsZV90Ow0KIA0KIC8qDQogICogRmxhZ3MgZm9yIG1r am91cm5hbA0KLSAqDQotICogRVhUMl9NS0pPVVJOQUxfVjFfU1VQRVIJTWFrZSBh IChkZXByZWNhdGVkKSBWMSBqb3VybmFsIHN1cGVyYmxvY2sNCiAgKi8NCi0jZGVm aW5lIEVYVDJfTUtKT1VSTkFMX1YxX1NVUEVSCTB4MDAwMDAwMQ0KKyNkZWZpbmUg RVhUMl9NS0pPVVJOQUxfVjFfU1VQRVIJMHgwMDAwMDAxIC8qIGNyZWF0ZSBWMSBz dXBlcmJsb2NrIChkZXByZWNhdGVkKSAqLw0KKyNkZWZpbmUgRVhUMl9NS0pPVVJO QUxfTEFaWUlOSVQJMHgwMDAwMDAyIC8qIGRvbid0IHplcm8gam91cm5hbCBpbm9k ZSBiZWZvcmUgdXNlKi8NCiANCiBzdHJ1Y3Qgc3RydWN0X2V4dDJfZmlsc3lzIHsN CiAJZXJyY29kZV90CQkJbWFnaWM7DQpJbmRleDogZTJmc3Byb2dzLTEuNDEuOS9s aWIvZXh0MmZzL21ram91cm5hbC5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g ZTJmc3Byb2dzLTEuNDEuOS5vcmlnL2xpYi9leHQyZnMvbWtqb3VybmFsLmMNCisr KyBlMmZzcHJvZ3MtMS40MS45L2xpYi9leHQyZnMvbWtqb3VybmFsLmMNCkBAIC0x MDMsNyArMTAzLDcgQEAgc3RhdGljIGVycmNvZGVfdCB3cml0ZV9qb3VybmFsX2Zp bGUoZXh0Mg0KIAkvKiBPcGVuIHRoZSBkZXZpY2Ugb3Igam91cm5hbCBmaWxlICov DQogCWlmICgoZmQgPSBvcGVuKGZpbGVuYW1lLCBPX1dST05MWSkpIDwgMCkgew0K IAkJcmV0dmFsID0gZXJybm87DQotCQlnb3RvIGVycm91dDsNCisJCWdvdG8gZXJy ZnJlZTsNCiAJfQ0KIA0KIAkvKiBXcml0ZSB0aGUgc3VwZXJibG9jayBvdXQgKi8N CkBAIC0xMTcsNiArMTE3LDkgQEAgc3RhdGljIGVycmNvZGVfdCB3cml0ZV9qb3Vy bmFsX2ZpbGUoZXh0Mg0KIAkJZ290byBlcnJvdXQ7DQogCW1lbXNldChidWYsIDAs IGZzLT5ibG9ja3NpemUpOw0KIA0KKwlpZiAoZmxhZ3MgJiBFWFQyX01LSk9VUk5B TF9MQVpZSU5JVCkNCisJCWdvdG8gc3VjY2VzczsNCisNCiAJZm9yIChpID0gMTsg aSA8IHNpemU7IGkrKykgew0KIAkJcmV0X3NpemUgPSB3cml0ZShmZCwgYnVmLCBm cy0+YmxvY2tzaXplKTsNCiAJCWlmIChyZXRfc2l6ZSA8IDApIHsNCkBAIC0xMjYs MTAgKzEyOSwxMiBAQCBzdGF0aWMgZXJyY29kZV90IHdyaXRlX2pvdXJuYWxfZmls ZShleHQyDQogCQlpZiAocmV0X3NpemUgIT0gKGludCkgZnMtPmJsb2Nrc2l6ZSkN CiAJCQlnb3RvIGVycm91dDsNCiAJfQ0KLQljbG9zZShmZCk7DQogDQorc3VjY2Vz czoNCiAJcmV0dmFsID0gMDsNCiBlcnJvdXQ6DQorCWNsb3NlKGZkKTsNCitlcnJm cmVlOg0KIAlleHQyZnNfZnJlZV9tZW0oJmJ1Zik7DQogCXJldHVybiByZXR2YWw7 DQogfQ0KQEAgLTIwMSw2ICsyMDYsNyBAQCBzdHJ1Y3QgbWtqb3VybmFsX3N0cnVj dCB7DQogCWJsa190CQlnb2FsOw0KIAlibGtfdAkJYmxrX3RvX3plcm87DQogCWlu dAkJemVyb19jb3VudDsNCisJaW50CQlmbGFnczsNCiAJY2hhcgkJKmJ1ZjsNCiAJ ZXJyY29kZV90CWVycjsNCiB9Ow0KQEAgLTIzMiw3ICsyMzgsNyBAQCBzdGF0aWMg aW50IG1ram91cm5hbF9wcm9jKGV4dDJfZmlsc3lzCWZzDQogCXJldHZhbCA9IDA7 DQogCWlmIChibG9ja2NudCA8PSAwKQ0KIAkJcmV0dmFsID0gaW9fY2hhbm5lbF93 cml0ZV9ibGsoZnMtPmlvLCBuZXdfYmxrLCAxLCBlcy0+YnVmKTsNCi0JZWxzZSB7 DQorCWVsc2UgaWYgKCEoZXMtPmZsYWdzICYgRVhUMl9NS0pPVVJOQUxfTEFaWUlO SVQpKSB7DQogCQlpZiAoZXMtPnplcm9fY291bnQpIHsNCiAJCQlpZiAoKGVzLT5i bGtfdG9femVybyArIGVzLT56ZXJvX2NvdW50ID09IG5ld19ibGspICYmDQogCQkJ ICAgIChlcy0+emVyb19jb3VudCA8IDEwMjQpKQ0KQEAgLTI5Niw2ICszMDIsNyBA QCBzdGF0aWMgZXJyY29kZV90IHdyaXRlX2pvdXJuYWxfaW5vZGUoZXh0DQogCWVz Lm5ld2Jsb2NrcyA9IDA7DQogCWVzLmJ1ZiA9IGJ1ZjsNCiAJZXMuZXJyID0gMDsN CisJZXMuZmxhZ3MgPSBmbGFnczsNCiAJZXMuemVyb19jb3VudCA9IDA7DQogDQog CWlmIChmcy0+c3VwZXItPnNfZmVhdHVyZV9pbmNvbXBhdCAmIEVYVDNfRkVBVFVS RV9JTkNPTVBBVF9FWFRFTlRTKSB7DQpAQCAtNDkwLDYgKzQ5NywxMyBAQCBlcnJj b2RlX3QgZXh0MmZzX2FkZF9qb3VybmFsX2lub2RlKGV4dDJfDQogCQlpZiAoKGZk ID0gb3BlbihqZmlsZSwgT19DUkVBVHxPX1dST05MWSwgMDYwMCkpIDwgMCkNCiAJ CQlyZXR1cm4gZXJybm87DQogDQorCQkvKiBOb3RlIHRoYXQgd2UgY2FuJ3QgZG8g bGF6eSBqb3VybmFsIGluaXRpYWxpemF0aW9uIGZvciBtb3VudGVkDQorCQkgKiBm aWxlc3lzdGVtcywgc2luY2UgdGhlIHplcm8gd3JpdGluZyBpcyBhbHNvIGFsbG9j YXRpbmcgdGhlDQorCQkgKiBqb3VybmFsIGJsb2Nrcy4gIFdlIGNvdWxkIHVzZSBm YWxsb2NhdGUsIGJ1dCBub3QgYWxsIGtlcm5lbHMNCisJCSAqIHN1cHBvcnQgdGhh dCwgYW5kIGNyZWF0aW5nIGEgam91cm5hbCBvbiBhIG1vdW50ZWQgZXh0Mg0KKwkJ ICogZmlsZXN5c3RlbXMgaXMgZXh0cmVtZWx5IHJhcmUgdGhlc2UgZGF5cy4uLiAg U2tpcCBpdC4gKi8NCisJCWZsYWdzICY9IH5FWFQyX01LSk9VUk5BTF9MQVpZSU5J VDsNCisNCiAJCWlmICgocmV0dmFsID0gd3JpdGVfam91cm5hbF9maWxlKGZzLCBq ZmlsZSwgc2l6ZSwgZmxhZ3MpKSkNCiAJCQlnb3RvIGVycm91dDsNCiANCkluZGV4 OiBlMmZzcHJvZ3MtMS40MS45L21pc2MvbWtlMmZzLjguaW4NCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCi0tLSBlMmZzcHJvZ3MtMS40MS45Lm9yaWcvbWlzYy9ta2UyZnMu OC5pbg0KKysrIGUyZnNwcm9ncy0xLjQxLjkvbWlzYy9ta2UyZnMuOC5pbg0KQEAg LTIzMiw3ICsyMzIsMTUgQEAgVGhpcyBzcGVlZHMgdXAgZmlsZXN5c3RlbQ0KIGlu aXRpYWxpemF0aW9uIG5vdGljZWFibHksIGJ1dCBpdCByZXF1aXJlcyB0aGUga2Vy bmVsIHRvIGZpbmlzaA0KIGluaXRpYWxpemluZyB0aGUgZmlsZXN5c3RlbSBpbiB0 aGUgYmFja2dyb3VuZCB3aGVuIHRoZSBmaWxlc3lzdGVtIGlzDQogZmlyc3QgbW91 bnRlZC4gIElmIHRoZSBvcHRpb24gdmFsdWUgaXMgb21pdHRlZCwgaXQgZGVmYXVs dHMgdG8gMSB0bw0KLWVuYWJsZSBsYXp5IGlub2RlIHRhYmxlIGluaXRpYWxpemF0 aW9uLg0KK2VuYWJsZSBsYXp5IGlub2RlIHRhYmxlIHplcm9pbmcuDQorLlRQDQor LkIgbGF6eV9qb3VybmFsX2luaXRcZlJbXGZCPSBcZkk8MCB0byBkaXNhYmxlLCAx IHRvIGVuYWJsZT5cZlJdDQorSWYgZW5hYmxlZCwgdGhlIGpvdXJuYWwgaW5vZGUg d2lsbCBub3QgYmUgZnVsbHkgemVyb2VkIG91dCBieQ0KKy5CUiBta2UyZnMgLg0K K1RoaXMgc3BlZWRzIHVwIGZpbGVzeXN0ZW0gaW5pdGlhbGl6YXRpb24gbm90aWNl YWJseSwgYnV0IGNhcnJpZXMgc29tZQ0KK3NtYWxsIHJpc2sgaWYgdGhlIHN5c3Rl bSBjcmFzaGVzIGJlZm9yZSB0aGUgam91cm5hbCBoYXMgYmVlbiBvdmVyd3JpdHRl bg0KK2VudGlyZWx5IG9uZSB0aW1lLiAgSWYgdGhlIG9wdGlvbiB2YWx1ZSBpcyBv bWl0dGVkLCBpdCBkZWZhdWx0cyB0byAxIHRvDQorZW5hYmxlIGxhenkgam91cm5h bCBpbm9kZSB6ZXJvaW5nLg0KIC5UUA0KIC5CIHRlc3RfZnMNCiBTZXQgYSBmbGFn IGluIHRoZSBmaWxlc3lzdGVtIHN1cGVyYmxvY2sgaW5kaWNhdGluZyB0aGF0IGl0 IG1heSBiZQ0KSW5kZXg6IGUyZnNwcm9ncy0xLjQxLjkvbWlzYy9ta2UyZnMuYw0K PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KLS0tIGUyZnNwcm9ncy0xLjQxLjkub3JpZy9t aXNjL21rZTJmcy5jDQorKysgZTJmc3Byb2dzLTEuNDEuOS9taXNjL21rZTJmcy5j DQpAQCAtNTUxLDYgKzU1MSwxMCBAQCBzdGF0aWMgdm9pZCBjcmVhdGVfam91cm5h bF9kZXYoZXh0Ml9maWxzDQogCQkJXygid2hpbGUgaW5pdGlhbGl6aW5nIGpvdXJu YWwgc3VwZXJibG9jayIpKTsNCiAJCWV4aXQoMSk7DQogCX0NCisNCisJaWYgKGpv dXJuYWxfZmxhZ3MgJiBFWFQyX01LSk9VUk5BTF9MQVpZSU5JVCkNCisJCWdvdG8g d3JpdGVfc3VwZXJibG9jazsNCisNCiAJaWYgKHF1aWV0KQ0KIAkJbWVtc2V0KCZw cm9ncmVzcywgMCwgc2l6ZW9mKHByb2dyZXNzKSk7DQogCWVsc2UNCkBAIC01Nzgs NiArNTgyLDggQEAgc3RhdGljIHZvaWQgY3JlYXRlX2pvdXJuYWxfZGV2KGV4dDJf Zmlscw0KIAl9DQogCWV4dDJmc196ZXJvX2Jsb2NrcygwLCAwLCAwLCAwLCAwKTsN CiANCisJcHJvZ3Jlc3NfY2xvc2UoJnByb2dyZXNzKTsNCit3cml0ZV9zdXBlcmJs b2NrOg0KIAlyZXR2YWwgPSBpb19jaGFubmVsX3dyaXRlX2Jsayhmcy0+aW8sDQog CQkJCSAgICAgIGZzLT5zdXBlci0+c19maXJzdF9kYXRhX2Jsb2NrKzEsDQogCQkJ CSAgICAgIDEsIGJ1Zik7DQpAQCAtNTg2LDcgKzU5Miw2IEBAIHN0YXRpYyB2b2lk IGNyZWF0ZV9qb3VybmFsX2RldihleHQyX2ZpbHMNCiAJCQlfKCJ3aGlsZSB3cml0 aW5nIGpvdXJuYWwgc3VwZXJibG9jayIpKTsNCiAJCWV4aXQoMSk7DQogCX0NCi0J cHJvZ3Jlc3NfY2xvc2UoJnByb2dyZXNzKTsNCiB9DQogDQogc3RhdGljIHZvaWQg c2hvd19zdGF0cyhleHQyX2ZpbHN5cyBmcykNCkBAIC03OTUsNiArODAwLDEyIEBA IHN0YXRpYyB2b2lkIHBhcnNlX2V4dGVuZGVkX29wdHMoc3RydWN0IGUNCiAJCQl9 DQogCQl9IGVsc2UgaWYgKCFzdHJjbXAodG9rZW4sICJ0ZXN0X2ZzIikpIHsNCiAJ CQlwYXJhbS0+c19mbGFncyB8PSBFWFQyX0ZMQUdTX1RFU1RfRklMRVNZUzsNCisJ CX0gZWxzZSBpZiAoIXN0cmNtcCh0b2tlbiwgImxhenlfam91cm5hbF9pbml0Iikp IHsNCisJCQlpZiAoYXJnKQ0KKwkJCQlqb3VybmFsX2ZsYWdzIHw9IHN0cnRvdWwo YXJnLCAmcCwgMCkgPw0KKwkJCQkJCUVYVDJfTUtKT1VSTkFMX0xBWllJTklUIDog MDsNCisJCQllbHNlDQorCQkJCWpvdXJuYWxfZmxhZ3MgfD0gRVhUMl9NS0pPVVJO QUxfTEFaWUlOSVQ7DQogCQl9IGVsc2UgaWYgKCFzdHJjbXAodG9rZW4sICJsYXp5 X2l0YWJsZV9pbml0IikpIHsNCiAJCQlpZiAoYXJnKQ0KIAkJCQlsYXp5X2l0YWJs ZV9pbml0ID0gc3RydG91bChhcmcsICZwLCAwKTsNCkBAIC04MTUsNiArODI2LDcg QEAgc3RhdGljIHZvaWQgcGFyc2VfZXh0ZW5kZWRfb3B0cyhzdHJ1Y3QgZQ0KIAkJ CSJcdHN0cmlwZS13aWR0aD08UkFJRCBzdHJpZGUgKiBkYXRhIGRpc2tzIGluIGJs b2Nrcz5cbiINCiAJCQkiXHRyZXNpemU9PHJlc2l6ZSBtYXhpbXVtIHNpemUgaW4g YmxvY2tzPlxuIg0KIAkJCSJcdGxhenlfaXRhYmxlX2luaXQ9PDAgdG8gZGlzYWJs ZSwgMSB0byBlbmFibGU+XG4iDQorCQkJIlx0bGF6eV9qb3VybmFsX2luaXQ9PDAg dG8gZGlzYWJsZSwgMSB0byBlbmFibGU+XG4iDQogCQkJIlx0dGVzdF9mc1xuXG4i KSwNCiAJCQliYWRvcHQgPyBiYWRvcHQgOiAiIik7DQogCQlmcmVlKGJ1Zik7DQpA QCAtMTYzNyw2ICsxNjQ5LDkgQEAgZ290X3NpemU6DQogDQogCWxhenlfaXRhYmxl X2luaXQgPSBnZXRfYm9vbF9mcm9tX3Byb2ZpbGUoZnNfdHlwZXMsDQogCQkJCQkJ ICJsYXp5X2l0YWJsZV9pbml0IiwgMCk7DQorCWpvdXJuYWxfZmxhZ3MgfD0gZ2V0 X2Jvb2xfZnJvbV9wcm9maWxlKGZzX3R5cGVzLA0KKwkJCQkJICAgICAgICJsYXp5 X2pvdXJuYWxfaW5pdCIsIDApID8NCisJCQkJCQlFWFQyX01LSk9VUk5BTF9MQVpZ SU5JVCA6IDA7DQogDQogCS8qIEdldCBvcHRpb25zIGZyb20gcHJvZmlsZSAqLw0K IAlmb3IgKGNwcCA9IGZzX3R5cGVzOyAqY3BwOyBjcHArKykgew0K --Boundary_(ID_/0eorTzh5i0fp9nkUXLPwQ)--