From mboxrd@z Thu Jan 1 00:00:00 1970 From: majianpeng Subject: Re: Re: [PATCH V2 0/2] Auto stop async-write on block device when device removed. Date: Wed, 25 Sep 2013 09:32:55 +0800 Message-ID: <201309250932532670454@gmail.com> References: <201309171121559232246@gmail.com> <201309241107330800706@gmail.com>, Reply-To: majianpeng Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Cc: axboe , viro , LKML , linux-fsdevel To: "Jeff Moyer" Return-path: Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org Pm1hamlhbnBlbmcgPG1hamlhbnBlbmdAZ21haWwuY29tPiB3cml0ZXM6DQo+DQo+Pj5tYWppYW5w ZW5nIDxtYWppYW5wZW5nQGdtYWlsLmNvbT4gd3JpdGVzOg0KPj4+DQo+Pj4+IEZvciBhc3luYy13 cml0ZSBvbiBibG9jayBkZXZpY2UsaWYgZGV2aWNlIHJlbW92ZWQsYnV0IHRoZSB2ZnMgZG9uJ3Qg a25vdyBpdC4NCj4+Pj4gSXQgd2lsbCBjb250aW51ZSB0byBkby4NCj4+Pj4gUGF0Y2gxIHNldCBz aXplIG9mIGlub2RlIG9mIGJsb2NrIGRldmljZSB0byB6ZXJvIHdoZW4gcmVtb3ZlZCBkaXNrLkJ5 IHRoaXMsdmZzIGtub3cgDQo+Pj4+IGRpc2sgY2hhbmdlZC4NCj4+Pj4gUGF0aDIgYWRkIHNpemUt Y2hlY2sgb24gYmxrX2Fpb193cml0ZS5JZiBwb3Mgb2Ygd3JpdGUgbGFyZ2VyIHRoYW4gc2l6ZSBv ZiBpbm9kZSxpdCB3aWxsDQo+Pj4+IHJldHVybiB6ZXJvLlNvIHRoZSB1c2VyIGNhbiBjaGVjayBk aXNrIHN0YXRlLg0KPj4+DQo+Pj5PSywgc28gdGhlIGJhc2ljIHByb2JsZW0gaXMgdGhhdCBfX2dl bmVyaWNfZmlsZV9haW9fd3JpdGUgd2lsbCBhbHdheXMNCj4+PnJldHVybiAwIGFmdGVyIGRldmlj ZSByZW1vdmFsLCB5ZXM/ICBJJ20gbm90IHN1cmUgd2h5IHRoYXQncyBhIHJlYWwNCj4+Pmlzc3Vl LCBjYW4geW91IGV4cGxhaW4gZXhhY3RseSB3aHkgeW91J3JlIHRyeWluZyB0byBjaGFuZ2UgdGhp cz8NCj4+Pg0KPj4gQXQgcHJlbnNldCwgdGhlIF9fZ2VuZXJpY19maWxlX2Fpb193cml0ZSBkb24n dCByZXR1cm4gemVybyByYXRoZXIgdGhhdCB0aGUgd2FudGVkIHNpemUuDQo+PiBTbyB0aGUgdXNl ciBjYW4ndCBrbm93IHRoZSBkaXNrIHJlbW92ZWQuIA0KPj4gRm9yIGV4YW1wbGU6DQo+PiBkZCBp Zj0vZGV2L3plcm8gb2Y9dXNiLWRpc2sgYnM9NjRrDQo+PiBXaGVuIHJlbW92ZWQgdXNiLWRpc2ss IGRkIHN0b3BlZCB1bnRpbCByZWFjaGVkIHRoZSBlbmRvZiB1c2ItZGlzay4NCj4NCj5BaCwgcmln aHQsIGl0J3MganVzdCB3cml0aW5nIHRvIHRoZSBwYWdlIGNhY2hlLiAgSSB0aGluayB0aGUgb25s eSByZWFzb24NCj55b3UgZ2V0IG1vcmUgdGltZWx5IGVycm9ycyB3aGVuIGRvaW5nIHRoZSBzYW1l IHRoaW5nIHRvIGEgZmlsZSBvbiBhIGZpbGUNCj5zeXN0ZW0gaXMgdGhhdCB0aGVyZSBpcyBzb21l IHN5bmNocm9ub3VzIG1ldGFkYXRhIG9yIGpvdXJuYWwgSS9PIHRoYXQNCj53aWxsIGdldCBFSU8g YW5kIHJlc3VsdCBpbiB0aGUgZmlsZSBzeXN0ZW0gYmVpbmcgc2V0IHJlYWQtb25seS4NCj4NClll cw0KPlRoZSBiaWdnZXIgcXVlc3Rpb24gaXMgd2hldGhlciB3ZSB3YW50IHRvIGNoYW5nZSB0aGlz IGxvbmctc3RhbmRpbmcNCj5iZWhhdmlvdXIgb2YgaG93IG91ciB3cml0ZS1iYWNrIGNhY2hlIHdv cmtzLiAgSSBkb24ndCBrbm93IHRoYXQgaXQncw0KPnJlYWxseSB3b3J0aCBpdCwgaG9uZXN0bHku ICBJZiB5b3Ugd2FudCB0byBlbnN1cmUgZGF0YSBpcyBvbiBkaXNrLCB5b3UNCj5vcGVuIHRoZSBm aWxlIE9fU1lOQyBvciB5b3UgaXNzdWUgYW4gZnN5bmMsIGFuZCB0aG9zZSBjYWxscyB3aWxsIHJl dHVybg0KPmFuIGVycm9yIGZvciBhIHJlbW92ZWQgYmxvY2sgZGV2aWNlLiAgU28sIEkgZ3Vlc3Mg SSdsbCBhc2sgdGhlIHNhbWUNCj5xdWVzdGlvbiBhZ2Fpbjogd2h5IGFyZSB5b3UgbG9va2luZyBh dCB0aGlzPyAgSXMgdGhlcmUgc29tZSBhcHBsaWNhdGlvbg0KPnlvdSBjYXJlIGFib3V0IHRoYXQg ZG9lcyBidWZmZXJlZCBJL08gdG8gdGhlIGJsb2NrIGRldmljZSBhbmQgbmV2ZXIgZG9lcw0KPmFu IGZzeW5jPw0KPg0KWWVzLCBmb3IgbXkgY29tcGFueSwgd2UgdXNlZCBvdXIgZmlsZXN5c3RlbSBp biB1c2Vyc3BhY2Ugb24gYmxvY2stZGV2aWNlLg0KRm9yIHRoZSBwZXJmb3JtYW5jZSwgd2UgdXNl ZCBidWZmZXItd3J0aXRlIG5vdCBzeW5jLXdyaXRlLg0KRm9yIG15IHdvcmtsb2FkLCB3ZSBhbGxv dyB1c2VyIHRvIHJlbW92ZSBkaXNrIHdoZXRoZXIgZGlzayB3b3JraW5nIG9yIG5vdC4NCk5vdywg d2UgY2hlY2sgdGhlIHN0YXRlIG9mIGRpc2sgZnJvbSAvcHJvYy9wYXJ0aXRpb25zIGF0IHRoZSBz YW1lIGludGVydmFsLg0KDQpUaGlzIHBhdGNoc2V0IGRvbid0IGNoYW5nZSB3cml0ZS1iYWNrIGNh Y2hlIHdvcmtzLkl0IG9ubHkgbGV0IHZmcyBrbm93IHRoZSBzdGF0ZSBvZiBsb3dlci1kZXZpY2Uu DQpJIHRoaW5rIGl0IG1ha2UgYSBzZW5zZS4NCg0KVGhhbmtzIQ0KSmlhbnBlbmcgTWE= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758283Ab3IYBdD (ORCPT ); Tue, 24 Sep 2013 21:33:03 -0400 Received: from mail-pa0-f53.google.com ([209.85.220.53]:37265 "EHLO mail-pa0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754601Ab3IYBc7 (ORCPT ); Tue, 24 Sep 2013 21:32:59 -0400 Date: Wed, 25 Sep 2013 09:32:55 +0800 From: majianpeng To: "Jeff Moyer" Cc: axboe , viro , LKML , linux-fsdevel Reply-To: majianpeng Subject: Re: Re: [PATCH V2 0/2] Auto stop async-write on block device when device removed. References: <201309171121559232246@gmail.com> <201309241107330800706@gmail.com>, X-Priority: 3 X-GUID: 50ECDD14-01EF-4500-BB0D-89C7F8722062 X-Has-Attach: no X-Mailer: Foxmail 7.0.1.93[cn] Mime-Version: 1.0 Message-ID: <201309250932532670454@gmail.com> Content-Type: text/plain; charset="gb2312" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id r8P1XAXX001195 >majianpeng writes: > >>>majianpeng writes: >>> >>>> For async-write on block device,if device removed,but the vfs don't know it. >>>> It will continue to do. >>>> Patch1 set size of inode of block device to zero when removed disk.By this,vfs know >>>> disk changed. >>>> Path2 add size-check on blk_aio_write.If pos of write larger than size of inode,it will >>>> return zero.So the user can check disk state. >>> >>>OK, so the basic problem is that __generic_file_aio_write will always >>>return 0 after device removal, yes? I'm not sure why that's a real >>>issue, can you explain exactly why you're trying to change this? >>> >> At prenset, the __generic_file_aio_write don't return zero rather that the wanted size. >> So the user can't know the disk removed. >> For example: >> dd if=/dev/zero of=usb-disk bs=64k >> When removed usb-disk, dd stoped until reached the endof usb-disk. > >Ah, right, it's just writing to the page cache. I think the only reason >you get more timely errors when doing the same thing to a file on a file >system is that there is some synchronous metadata or journal I/O that >will get EIO and result in the file system being set read-only. > Yes >The bigger question is whether we want to change this long-standing >behaviour of how our write-back cache works. I don't know that it's >really worth it, honestly. If you want to ensure data is on disk, you >open the file O_SYNC or you issue an fsync, and those calls will return >an error for a removed block device. So, I guess I'll ask the same >question again: why are you looking at this? Is there some application >you care about that does buffered I/O to the block device and never does >an fsync? > Yes, for my company, we used our filesystem in userspace on block-device. For the performance, we used buffer-wrtite not sync-write. For my workload, we allow user to remove disk whether disk working or not. Now, we check the state of disk from /proc/partitions at the same interval. This patchset don't change write-back cache works.It only let vfs know the state of lower-device. I think it make a sense. Thanks! Jianpeng Ma{.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I