diff for duplicates of <1515797155.2396.86.camel@wdc.com> diff --git a/a/1.txt b/N1/1.txt index cbfa702..7e8ac7e 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,28 +1,33 @@ -T24gVGh1LCAyMDE4LTAxLTExIGF0IDEwOjIzICswODAwLCBNaW5nIExlaSB3cm90ZToNCj4gPiBu -b3Qgc3VmZmljaWVudCB0byBwcmV2ZW50IC5xdWV1ZWNvbW1hbmQoKSBjYWxscyBmcm9tIHNjc2lf -c2VuZF9laF9jbW5kKCkuDQo+IA0KPiBHaXZlbiBpdCBpcyBlcnJvciBoYW5kbGluZywgZG8gd2Ug -bmVlZCB0byBwcmV2ZW50IHRoZSAucXVldWVjb21tYW5kKCkgY2FsbA0KPiBpbiBzY3NpX3NlbmRf -ZWhfY21uZCgpPyBDb3VsZCB5b3Ugc2hhcmUgdXMgd2hhdCB0aGUgYWN0dWFsIGlzc3VlDQo+IG9i -c2VydmVkIGlzIGZyb20gdXNlciB2aWV3Pw0KDQpQbGVhc2UgaGF2ZSBhIGxvb2sgYXQgdGhlIGtl -cm5lbCBidWcgcmVwb3J0IGluIHRoZSBkZXNjcmlwdGlvbiBvZiBwYXRjaCA0LzQgb2YNCnRoaXMg -c2VyaWVzLg0KDQo+ID4gSGVuY2Ugc3Vycm91bmQgdGhlIC5xdWV1ZWNvbW1hbmQoKSBjYWxsIGZy -b20gdGhlIFNDU0kgZXJyb3IgaGFuZGxlciB3aXRoDQo+ID4gYmxrX3N0YXJ0X3dhaXRfaWZfcXVp -ZXNjZWQoKSAvIGJsa19maW5pc2hfd2FpdF9pZl9xdWllc2NlZCgpLg0KPiA+IA0KPiA+IE5vdGU6 -IGNvbnZlcnRpbmcgdGhlIC5xdWV1ZWNvbW1hbmQoKSBjYWxsIGluIHNjc2lfc2VuZF9laF9jbW5k -KCkgaW50bw0KPiA+IGNvZGUgdGhhdCBjYWxscyBibGtfZ2V0X3JlcXVlc3QoKSwgZS5nLiBzY3Np -X2V4ZWN1dGVfcmVxKCksIGlzIG5vdCBhbg0KPiA+IG9wdGlvbiBzaW5jZSBzY3NpX3NlbmRfZWhf -Y21uZCgpIGNhbiBiZSBjYWxsZWQgaWYgYWxsIHJlcXVlc3RzIGFyZQ0KPiA+IGFsbG9jYXRlZCBh -bmQgaWYgbm8gcmVxdWVzdHMgd2lsbCBtYWtlIHByb2dyZXNzIHdpdGhvdXQgYWJvcnRpbmcgYW55 -DQo+ID4gb2YgdGhlc2UgcmVxdWVzdHMuDQo+IA0KPiBJZiB3ZSBuZWVkIHRvIHByZXZlbnQgdGhl -IC5xdWV1ZWNvbW1hbmQoKSBpbiBzY3NpX3NlbmRfZWhfY21uZCgpLCB3aGF0DQo+IGRvIHlvdSB0 -aGluayBvZiB0aGUgYXBwcm9hY2ggYnkgcmVxdWV1aW5nIHRoZSBFSCBjb21tYW5kIHZpYQ0KPiBz -Y3NpX21xX3JlcXVldWVfY21kKCkvc2NzaV9yZXF1ZXVlX2NtZCgpPyBBbmQgdGhlIEVIIHJlcXVl -c3Qgd2lsbCBiZQ0KPiBkaXNwYXRjaGVkIGZpbmFsbHkgd2hlbiB0aGUgcXVldWUgYmVjb21lcyB1 -bnF1aWVzY2VkIG9yIHRoZSBTVE9QUEVEDQo+IGlzIGNsZWFyZWQuDQoNCkNhbGxpbmcgc2NzaV9t -cV9yZXF1ZXVlX2NtZCgpIHdvdWxkIHRyaWdnZXIgc2NzaV9tcV91bmluaXRfY21kKCksDQpibGtf -bXFfcHV0X2RyaXZlcl90YWcoKSwgYmxrX21xX2dldF9kcml2ZXJfdGFnKCkgYW5kIHNjc2lfbXFf -cHJlcF9mbigpLg0KVGhhdCBjb3VsZCBjYXVzZSBzY3NpX2VoX3NjbWRfYWRkKCkgdG8gYmUgY2Fs -bGVkIG11bHRpcGxlIHRpbWVzIGZvciB0aGUNCnNhbWUgU0NTSSBjb21tYW5kLiBIb3dldmVyLCB0 -aGF0IHdvdWxkIGJyZWFrIG9uZSBvZiB0aGUgYXNzdW1wdGlvbnMNCnNjc2lfZWhfc2NtZF9hZGQo -KSBpcyBiYXNlZCBvbiwgbmFtZWx5IHRoYXQgdGhhdCBmdW5jdGlvbiBnZXRzIGNhbGxlZA0Kb25s -eSBvbmNlIHBlciBTQ1NJIGNvbW1hbmQgdGhhdCBpcyBpbiBwcm9ncmVzcy4NCg0KQmFydC4g +On Thu, 2018-01-11 at 10:23 +0800, Ming Lei wrote: +> > not sufficient to prevent .queuecommand() calls from scsi_send_eh_cmnd(). +> +> Given it is error handling, do we need to prevent the .queuecommand() call +> in scsi_send_eh_cmnd()? Could you share us what the actual issue +> observed is from user view? + +Please have a look at the kernel bug report in the description of patch 4/4 of +this series. + +> > Hence surround the .queuecommand() call from the SCSI error handler with +> > blk_start_wait_if_quiesced() / blk_finish_wait_if_quiesced(). +> > +> > Note: converting the .queuecommand() call in scsi_send_eh_cmnd() into +> > code that calls blk_get_request(), e.g. scsi_execute_req(), is not an +> > option since scsi_send_eh_cmnd() can be called if all requests are +> > allocated and if no requests will make progress without aborting any +> > of these requests. +> +> If we need to prevent the .queuecommand() in scsi_send_eh_cmnd(), what +> do you think of the approach by requeuing the EH command via +> scsi_mq_requeue_cmd()/scsi_requeue_cmd()? And the EH request will be +> dispatched finally when the queue becomes unquiesced or the STOPPED +> is cleared. + +Calling scsi_mq_requeue_cmd() would trigger scsi_mq_uninit_cmd(), +blk_mq_put_driver_tag(), blk_mq_get_driver_tag() and scsi_mq_prep_fn(). +That could cause scsi_eh_scmd_add() to be called multiple times for the +same SCSI command. However, that would break one of the assumptions +scsi_eh_scmd_add() is based on, namely that that function gets called +only once per SCSI command that is in progress. + +Bart. N§²æìr¸yúèØb²X¬¶Ç§vØ^)Þº{.nÇ+·¥{±Ù{ayº\x1dÊÚë,j\a¢f£¢·h»öì\x17/oSc¾Ú³9uÀ¦æåÈ&jw¨®\x03(éÝ¢j"ú\x1a¶^[m§ÿïêäz¹Þàþf£¢·h§~m diff --git a/a/content_digest b/N1/content_digest index 814298a..ab2f73e 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,49 +1,55 @@ "ref\020180110181817.25166-1-bart.vanassche@wdc.com\0" "ref\020180110181817.25166-4-bart.vanassche@wdc.com\0" "ref\020180111022341.GA7290@ming.t460p\0" - "From\0Bart Van Assche <Bart.VanAssche@wdc.com>\0" + "ref\020180111022341.GA7290-1Cy0MwPVgsaKEAUSAb389g@public.gmane.org\0" + "From\0Bart Van Assche <Bart.VanAssche-Sjgp3cTcYWE@public.gmane.org>\0" "Subject\0Re: [PATCH v2 3/4] scsi: Avoid that .queuecommand() gets called for a quiesced SCSI device\0" "Date\0Fri, 12 Jan 2018 22:45:57 +0000\0" - "To\0ming.lei@redhat.com <ming.lei@redhat.com>\0" - "Cc\0linux-block@vger.kernel.org <linux-block@vger.kernel.org>" - jthumshirn@suse.de <jthumshirn@suse.de> - linux-rdma@vger.kernel.org <linux-rdma@vger.kernel.org> - jgg@mellanox.com <jgg@mellanox.com> - hch@lst.de <hch@lst.de> - martin.petersen@oracle.com <martin.petersen@oracle.com> - axboe@kernel.dk <axboe@kernel.dk> - linux-scsi@vger.kernel.org <linux-scsi@vger.kernel.org> - hare@suse.com <hare@suse.com> - " dledford@redhat.com <dledford@redhat.com>\0" + "To\0ming.lei-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org <ming.lei-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>\0" + "Cc\0linux-block-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <linux-block-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>" + jthumshirn-l3A5Bk7waGM@public.gmane.org <jthumshirn-l3A5Bk7waGM@public.gmane.org> + linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> + jgg-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org <jgg-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> + hch-jcswGhMUV9g@public.gmane.org <hch-jcswGhMUV9g@public.gmane.org> + martin.petersen-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org <martin.petersen-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> + axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org <axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org> + linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org <linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> + hare-IBi9RG/b67k@public.gmane.org <hare-IBi9RG/b67k@public.gmane.org> + " dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>\0" "\00:1\0" "b\0" - "T24gVGh1LCAyMDE4LTAxLTExIGF0IDEwOjIzICswODAwLCBNaW5nIExlaSB3cm90ZToNCj4gPiBu\n" - "b3Qgc3VmZmljaWVudCB0byBwcmV2ZW50IC5xdWV1ZWNvbW1hbmQoKSBjYWxscyBmcm9tIHNjc2lf\n" - "c2VuZF9laF9jbW5kKCkuDQo+IA0KPiBHaXZlbiBpdCBpcyBlcnJvciBoYW5kbGluZywgZG8gd2Ug\n" - "bmVlZCB0byBwcmV2ZW50IHRoZSAucXVldWVjb21tYW5kKCkgY2FsbA0KPiBpbiBzY3NpX3NlbmRf\n" - "ZWhfY21uZCgpPyBDb3VsZCB5b3Ugc2hhcmUgdXMgd2hhdCB0aGUgYWN0dWFsIGlzc3VlDQo+IG9i\n" - "c2VydmVkIGlzIGZyb20gdXNlciB2aWV3Pw0KDQpQbGVhc2UgaGF2ZSBhIGxvb2sgYXQgdGhlIGtl\n" - "cm5lbCBidWcgcmVwb3J0IGluIHRoZSBkZXNjcmlwdGlvbiBvZiBwYXRjaCA0LzQgb2YNCnRoaXMg\n" - "c2VyaWVzLg0KDQo+ID4gSGVuY2Ugc3Vycm91bmQgdGhlIC5xdWV1ZWNvbW1hbmQoKSBjYWxsIGZy\n" - "b20gdGhlIFNDU0kgZXJyb3IgaGFuZGxlciB3aXRoDQo+ID4gYmxrX3N0YXJ0X3dhaXRfaWZfcXVp\n" - "ZXNjZWQoKSAvIGJsa19maW5pc2hfd2FpdF9pZl9xdWllc2NlZCgpLg0KPiA+IA0KPiA+IE5vdGU6\n" - "IGNvbnZlcnRpbmcgdGhlIC5xdWV1ZWNvbW1hbmQoKSBjYWxsIGluIHNjc2lfc2VuZF9laF9jbW5k\n" - "KCkgaW50bw0KPiA+IGNvZGUgdGhhdCBjYWxscyBibGtfZ2V0X3JlcXVlc3QoKSwgZS5nLiBzY3Np\n" - "X2V4ZWN1dGVfcmVxKCksIGlzIG5vdCBhbg0KPiA+IG9wdGlvbiBzaW5jZSBzY3NpX3NlbmRfZWhf\n" - "Y21uZCgpIGNhbiBiZSBjYWxsZWQgaWYgYWxsIHJlcXVlc3RzIGFyZQ0KPiA+IGFsbG9jYXRlZCBh\n" - "bmQgaWYgbm8gcmVxdWVzdHMgd2lsbCBtYWtlIHByb2dyZXNzIHdpdGhvdXQgYWJvcnRpbmcgYW55\n" - "DQo+ID4gb2YgdGhlc2UgcmVxdWVzdHMuDQo+IA0KPiBJZiB3ZSBuZWVkIHRvIHByZXZlbnQgdGhl\n" - "IC5xdWV1ZWNvbW1hbmQoKSBpbiBzY3NpX3NlbmRfZWhfY21uZCgpLCB3aGF0DQo+IGRvIHlvdSB0\n" - "aGluayBvZiB0aGUgYXBwcm9hY2ggYnkgcmVxdWV1aW5nIHRoZSBFSCBjb21tYW5kIHZpYQ0KPiBz\n" - "Y3NpX21xX3JlcXVldWVfY21kKCkvc2NzaV9yZXF1ZXVlX2NtZCgpPyBBbmQgdGhlIEVIIHJlcXVl\n" - "c3Qgd2lsbCBiZQ0KPiBkaXNwYXRjaGVkIGZpbmFsbHkgd2hlbiB0aGUgcXVldWUgYmVjb21lcyB1\n" - "bnF1aWVzY2VkIG9yIHRoZSBTVE9QUEVEDQo+IGlzIGNsZWFyZWQuDQoNCkNhbGxpbmcgc2NzaV9t\n" - "cV9yZXF1ZXVlX2NtZCgpIHdvdWxkIHRyaWdnZXIgc2NzaV9tcV91bmluaXRfY21kKCksDQpibGtf\n" - "bXFfcHV0X2RyaXZlcl90YWcoKSwgYmxrX21xX2dldF9kcml2ZXJfdGFnKCkgYW5kIHNjc2lfbXFf\n" - "cHJlcF9mbigpLg0KVGhhdCBjb3VsZCBjYXVzZSBzY3NpX2VoX3NjbWRfYWRkKCkgdG8gYmUgY2Fs\n" - "bGVkIG11bHRpcGxlIHRpbWVzIGZvciB0aGUNCnNhbWUgU0NTSSBjb21tYW5kLiBIb3dldmVyLCB0\n" - "aGF0IHdvdWxkIGJyZWFrIG9uZSBvZiB0aGUgYXNzdW1wdGlvbnMNCnNjc2lfZWhfc2NtZF9hZGQo\n" - "KSBpcyBiYXNlZCBvbiwgbmFtZWx5IHRoYXQgdGhhdCBmdW5jdGlvbiBnZXRzIGNhbGxlZA0Kb25s\n" - eSBvbmNlIHBlciBTQ1NJIGNvbW1hbmQgdGhhdCBpcyBpbiBwcm9ncmVzcy4NCg0KQmFydC4g + "On Thu, 2018-01-11 at 10:23 +0800, Ming Lei wrote:\n" + "> > not sufficient to prevent .queuecommand() calls from scsi_send_eh_cmnd().\n" + "> \n" + "> Given it is error handling, do we need to prevent the .queuecommand() call\n" + "> in scsi_send_eh_cmnd()? Could you share us what the actual issue\n" + "> observed is from user view?\n" + "\n" + "Please have a look at the kernel bug report in the description of patch 4/4 of\n" + "this series.\n" + "\n" + "> > Hence surround the .queuecommand() call from the SCSI error handler with\n" + "> > blk_start_wait_if_quiesced() / blk_finish_wait_if_quiesced().\n" + "> > \n" + "> > Note: converting the .queuecommand() call in scsi_send_eh_cmnd() into\n" + "> > code that calls blk_get_request(), e.g. scsi_execute_req(), is not an\n" + "> > option since scsi_send_eh_cmnd() can be called if all requests are\n" + "> > allocated and if no requests will make progress without aborting any\n" + "> > of these requests.\n" + "> \n" + "> If we need to prevent the .queuecommand() in scsi_send_eh_cmnd(), what\n" + "> do you think of the approach by requeuing the EH command via\n" + "> scsi_mq_requeue_cmd()/scsi_requeue_cmd()? And the EH request will be\n" + "> dispatched finally when the queue becomes unquiesced or the STOPPED\n" + "> is cleared.\n" + "\n" + "Calling scsi_mq_requeue_cmd() would trigger scsi_mq_uninit_cmd(),\n" + "blk_mq_put_driver_tag(), blk_mq_get_driver_tag() and scsi_mq_prep_fn().\n" + "That could cause scsi_eh_scmd_add() to be called multiple times for the\n" + "same SCSI command. However, that would break one of the assumptions\n" + "scsi_eh_scmd_add() is based on, namely that that function gets called\n" + "only once per SCSI command that is in progress.\n" + "\n" + "Bart. N\302\213\302\247\302\262\303\246\303\254r\302\270\302\233y\303\272\303\250\302\232\303\230b\302\262X\302\254\302\266\303\207\302\247v\303\230^\302\226)\303\236\302\272{.n\303\207+\302\211\302\267\302\245\302\212{\302\261\302\255\303\231\302\232\302\212{ay\302\272\035\303\212\302\207\303\232\302\231\303\253,j\a\302\255\302\242f\302\243\302\242\302\267h\302\232\302\213\302\273\303\266\303\254\027/oSc\302\276\302\231\303\232\302\2639\302\230u\303\200\302\246\303\246\303\245\302\211\303\210&jw\302\250\302\256\003(\302\255\303\251\302\232\302\216\302\212\303\235\302\242j\"\302\235\303\272\032\302\266\033m\302\247\303\277\303\257\302\201\303\252\303\244z\302\271\303\236\302\226\302\212\303\240\303\276f\302\243\302\242\302\267h\302\232\302\210\302\247~\302\210m\302\232" -d22687d4ce17f371e18499c51094669be9268163683b2524044bec8d63dbc36d +f9f96267ab943ea11df2049c7404ba2cbe22d9d885ff9081bb6251dd58b0bef1
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.