All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <1504498405.10804.10.camel@wdc.com>

diff --git a/a/1.txt b/N1/1.txt
index 6e7e3b6..61ca832 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,22 +1,23 @@
-T24gU2F0LCAyMDE3LTA5LTAyIGF0IDIxOjEyICswODAwLCBNaW5nIExlaSB3cm90ZToNCj4gUGxl
-YXNlIGxldCB1cyBrbm93IGlmIFYzIGFkZHJlc3NlcyB5b3VyIHByZXZpb3VzIGNvbmNlcm4gYWJv
-dXQgY2FsbGluZw0KPiBibGtfcXVldWVfZW50ZXJfbGl2ZSgpIGR1cmluZyBwcmVlbXB0IGZyZWV6
-aW5nLg0KDQpEbyB5b3UgdW5kZXJzdGFuZCBob3cgcmVxdWVzdCBxdWV1ZSBjbGVhbnVwIHdvcmtz
-PyBUaGUgYWxnb3JpdGhtIHVzZWQgZm9yDQpyZXF1ZXN0IHF1ZXVlIGNsZWFudXAgaXMgYXMgZm9s
-bG93czoNCiogU2V0IHRoZSBEWUlORyBmbGFnLiBUaGlzIGZsYWcgbWFrZXMgYWxsIGxhdGVyIGJs
-a19nZXRfcmVxdWVzdCgpIGNhbGxzDQogIGZhaWwuDQoqIFdhaXQgdW50aWwgYWxsIHBlbmRpbmcg
-cmVxdWVzdHMgaGF2ZSBmaW5pc2hlZC4NCiogU2V0IHRoZSBERUFEIGZsYWcuIEZvciB0aGUgdHJh
-ZGl0aW9uYWwgYmxvY2sgbGF5ZXIsIHRoaXMgZmxhZyBjYXVzZXMNCiAgYmxrX3J1bl9xdWV1ZSgp
-IG5vdCB0byBjYWxsIC5yZXF1ZXN0X2ZuKCkgYW55bW9yZS4gRm9yIGJsay1tcSBpdCBpcw0KICBn
-dWFyYW50ZWVkIGluIGFub3RoZXIgd2F5IHRoYXQgLnF1ZXVlX3JxKCkgd29uJ3QgYmUgY2FsbGVk
-IGFueW1vcmUgYWZ0ZXINCiAgdGhpcyBmbGFnIGhhcyBiZWVuIHNldC4NCg0KQWxsb3dpbmcgYmxr
-X2dldF9yZXF1ZXN0KCkgdG8gc3VjY2VlZCBhZnRlciB0aGUgRFlJTkcgZmxhZyBoYXMgYmVlbiBz
-ZXQgaXMNCmNvbXBsZXRlbHkgd3JvbmcgYmVjYXVzZSB0aGF0IGNvdWxkIHJlc3VsdCBpbiBhIHJl
-cXVlc3QgYmVpbmcgcXVldWVkIGFmdGVyDQp0aGUgREVBRCBmbGFnIGhhcyBiZWVuIHNldCwgcmVz
-dWx0aW5nIGluIGVpdGhlciBhIGhhbmdpbmcgcmVxdWVzdCBvciBhIGtlcm5lbA0KY3Jhc2guIFRo
-aXMgaXMgd2h5IGl0J3MgY29tcGxldGVseSB3cm9uZyB0byBhZGQgYSBibGtfcXVldWVfZW50ZXJf
-bGl2ZSgpIGNhbGwNCmluIGJsa19vbGRfZ2V0X3JlcXVlc3QoKSBvciBibGtfbXFfYWxsb2NfcmVx
-dWVzdCgpLiBIZW5jZSBteSBOQUsgZm9yIGFueQ0KcGF0Y2ggdGhhdCBhZGRzIGEgYmxrX3F1ZXVl
-X2VudGVyX2xpdmUoKSBjYWxsIHRvIGFueSBmdW5jdGlvbiBjYWxsZWQgZnJvbQ0KYmxrX2dldF9y
-ZXF1ZXN0KCkuIFRoYXQgaW5jbHVkZXMgdGhlIHBhdGNoIGF0IHRoZSBzdGFydCBvZiB0aGlzIGUt
-bWFpbCB0aHJlYWQuDQoNCkJhcnQu
+On Sat, 2017-09-02 at 21:12 +0800, Ming Lei wrote:
+> Please let us know if V3 addresses your previous concern about calling
+> blk_queue_enter_live() during preempt freezing.
+
+Do you understand how request queue cleanup works? The algorithm used for
+request queue cleanup is as follows:
+* Set the DYING flag. This flag makes all later blk_get_request() calls
+  fail.
+* Wait until all pending requests have finished.
+* Set the DEAD flag. For the traditional block layer, this flag causes
+  blk_run_queue() not to call .request_fn() anymore. For blk-mq it is
+  guaranteed in another way that .queue_rq() won't be called anymore after
+  this flag has been set.
+
+Allowing blk_get_request() to succeed after the DYING flag has been set is
+completely wrong because that could result in a request being queued after
+the DEAD flag has been set, resulting in either a hanging request or a kernel
+crash. This is why it's completely wrong to add a blk_queue_enter_live() call
+in blk_old_get_request() or blk_mq_alloc_request(). Hence my NAK for any
+patch that adds a blk_queue_enter_live() call to any function called from
+blk_get_request(). That includes the patch at the start of this e-mail thread.
+
+Bart.
diff --git a/a/content_digest b/N1/content_digest
index f4646ac..c487c26 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -17,27 +17,28 @@
  " oleksandr@natalenko.name <oleksandr@natalenko.name>\0"
  "\00:1\0"
  "b\0"
- "T24gU2F0LCAyMDE3LTA5LTAyIGF0IDIxOjEyICswODAwLCBNaW5nIExlaSB3cm90ZToNCj4gUGxl\n"
- "YXNlIGxldCB1cyBrbm93IGlmIFYzIGFkZHJlc3NlcyB5b3VyIHByZXZpb3VzIGNvbmNlcm4gYWJv\n"
- "dXQgY2FsbGluZw0KPiBibGtfcXVldWVfZW50ZXJfbGl2ZSgpIGR1cmluZyBwcmVlbXB0IGZyZWV6\n"
- "aW5nLg0KDQpEbyB5b3UgdW5kZXJzdGFuZCBob3cgcmVxdWVzdCBxdWV1ZSBjbGVhbnVwIHdvcmtz\n"
- "PyBUaGUgYWxnb3JpdGhtIHVzZWQgZm9yDQpyZXF1ZXN0IHF1ZXVlIGNsZWFudXAgaXMgYXMgZm9s\n"
- "bG93czoNCiogU2V0IHRoZSBEWUlORyBmbGFnLiBUaGlzIGZsYWcgbWFrZXMgYWxsIGxhdGVyIGJs\n"
- "a19nZXRfcmVxdWVzdCgpIGNhbGxzDQogIGZhaWwuDQoqIFdhaXQgdW50aWwgYWxsIHBlbmRpbmcg\n"
- "cmVxdWVzdHMgaGF2ZSBmaW5pc2hlZC4NCiogU2V0IHRoZSBERUFEIGZsYWcuIEZvciB0aGUgdHJh\n"
- "ZGl0aW9uYWwgYmxvY2sgbGF5ZXIsIHRoaXMgZmxhZyBjYXVzZXMNCiAgYmxrX3J1bl9xdWV1ZSgp\n"
- "IG5vdCB0byBjYWxsIC5yZXF1ZXN0X2ZuKCkgYW55bW9yZS4gRm9yIGJsay1tcSBpdCBpcw0KICBn\n"
- "dWFyYW50ZWVkIGluIGFub3RoZXIgd2F5IHRoYXQgLnF1ZXVlX3JxKCkgd29uJ3QgYmUgY2FsbGVk\n"
- "IGFueW1vcmUgYWZ0ZXINCiAgdGhpcyBmbGFnIGhhcyBiZWVuIHNldC4NCg0KQWxsb3dpbmcgYmxr\n"
- "X2dldF9yZXF1ZXN0KCkgdG8gc3VjY2VlZCBhZnRlciB0aGUgRFlJTkcgZmxhZyBoYXMgYmVlbiBz\n"
- "ZXQgaXMNCmNvbXBsZXRlbHkgd3JvbmcgYmVjYXVzZSB0aGF0IGNvdWxkIHJlc3VsdCBpbiBhIHJl\n"
- "cXVlc3QgYmVpbmcgcXVldWVkIGFmdGVyDQp0aGUgREVBRCBmbGFnIGhhcyBiZWVuIHNldCwgcmVz\n"
- "dWx0aW5nIGluIGVpdGhlciBhIGhhbmdpbmcgcmVxdWVzdCBvciBhIGtlcm5lbA0KY3Jhc2guIFRo\n"
- "aXMgaXMgd2h5IGl0J3MgY29tcGxldGVseSB3cm9uZyB0byBhZGQgYSBibGtfcXVldWVfZW50ZXJf\n"
- "bGl2ZSgpIGNhbGwNCmluIGJsa19vbGRfZ2V0X3JlcXVlc3QoKSBvciBibGtfbXFfYWxsb2NfcmVx\n"
- "dWVzdCgpLiBIZW5jZSBteSBOQUsgZm9yIGFueQ0KcGF0Y2ggdGhhdCBhZGRzIGEgYmxrX3F1ZXVl\n"
- "X2VudGVyX2xpdmUoKSBjYWxsIHRvIGFueSBmdW5jdGlvbiBjYWxsZWQgZnJvbQ0KYmxrX2dldF9y\n"
- "ZXF1ZXN0KCkuIFRoYXQgaW5jbHVkZXMgdGhlIHBhdGNoIGF0IHRoZSBzdGFydCBvZiB0aGlzIGUt\n"
- bWFpbCB0aHJlYWQuDQoNCkJhcnQu
+ "On Sat, 2017-09-02 at 21:12 +0800, Ming Lei wrote:\n"
+ "> Please let us know if V3 addresses your previous concern about calling\n"
+ "> blk_queue_enter_live() during preempt freezing.\n"
+ "\n"
+ "Do you understand how request queue cleanup works? The algorithm used for\n"
+ "request queue cleanup is as follows:\n"
+ "* Set the DYING flag. This flag makes all later blk_get_request() calls\n"
+ "  fail.\n"
+ "* Wait until all pending requests have finished.\n"
+ "* Set the DEAD flag. For the traditional block layer, this flag causes\n"
+ "  blk_run_queue() not to call .request_fn() anymore. For blk-mq it is\n"
+ "  guaranteed in another way that .queue_rq() won't be called anymore after\n"
+ "  this flag has been set.\n"
+ "\n"
+ "Allowing blk_get_request() to succeed after the DYING flag has been set is\n"
+ "completely wrong because that could result in a request being queued after\n"
+ "the DEAD flag has been set, resulting in either a hanging request or a kernel\n"
+ "crash. This is why it's completely wrong to add a blk_queue_enter_live() call\n"
+ "in blk_old_get_request() or blk_mq_alloc_request(). Hence my NAK for any\n"
+ "patch that adds a blk_queue_enter_live() call to any function called from\n"
+ "blk_get_request(). That includes the patch at the start of this e-mail thread.\n"
+ "\n"
+ Bart.
 
-9b4c05a779e00aef42c5fe42f9c83a829b512aba42e7785801714676b1f64d87
+ca0f44514eed8eddcd519a087a97adbc9cb648b0e93e3cc4758cda480cd40dd6

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.