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

diff --git a/a/1.txt b/N1/1.txt
index 5b59994..4f0f9bf 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,20 +1,32 @@
-T24gTW9uLCAyMDE4LTAyLTA1IGF0IDIzOjIwICswODAwLCBNaW5nIExlaSB3cm90ZToNCj4gZGlm
-ZiAtLWdpdCBhL2Jsb2NrL2Jsay1tcS1zY2hlZC5jIGIvYmxvY2svYmxrLW1xLXNjaGVkLmMNCj4g
-aW5kZXggNTVjMGE3NDViNDI3Li4zODViYmVjNzM4MDQgMTAwNjQ0DQo+IC0tLSBhL2Jsb2NrL2Js
-ay1tcS1zY2hlZC5jDQo+ICsrKyBiL2Jsb2NrL2Jsay1tcS1zY2hlZC5jDQo+IEBAIC04MSw2ICs4
-MSwxNyBAQCBzdGF0aWMgYm9vbCBibGtfbXFfc2NoZWRfcmVzdGFydF9oY3R4KHN0cnVjdCBibGtf
-bXFfaHdfY3R4ICpoY3R4KQ0KPiAgCX0gZWxzZQ0KPiAgCQljbGVhcl9iaXQoQkxLX01RX1NfU0NI
-RURfUkVTVEFSVCwgJmhjdHgtPnN0YXRlKTsNCj4gIA0KPiArCS8qIG5lZWQgdG8gcmVzdGFydCBh
-bGwgaHcgcXVldWVzIGZvciBnbG9iYWwgdGFncyAqLw0KPiArCWlmIChoY3R4LT5mbGFncyAmIEJM
-S19NUV9GX0dMT0JBTF9UQUdTKSB7DQo+ICsJCXN0cnVjdCBibGtfbXFfaHdfY3R4ICpoY3R4MjsN
-Cj4gKwkJaW50IGk7DQo+ICsNCj4gKwkJcXVldWVfZm9yX2VhY2hfaHdfY3R4KGhjdHgtPnF1ZXVl
-LCBoY3R4MiwgaSkNCj4gKwkJCWlmIChibGtfbXFfcnVuX2h3X3F1ZXVlKGhjdHgyLCB0cnVlKSkN
-Cj4gKwkJCQlyZXR1cm4gdHJ1ZTsNCj4gKwkJcmV0dXJuIGZhbHNlOw0KPiArCX0NCj4gKw0KPiAg
-CXJldHVybiBibGtfbXFfcnVuX2h3X3F1ZXVlKGhjdHgsIHRydWUpOw0KPiAgfQ0KDQpUaGlzIG5l
-dyBsb29wIGxvb2tzIG1pc3BsYWNlZCB0byBtZS4gSWYgYm90aCB0aGUgQkxLX01RX0ZfR0xPQkFM
-X1RBR1MgYW5kIHRoZQ0KQkxLX01RX0ZfVEFHX1NIQVJFRCBmbGFncyBhcmUgc2V0IHRoZW4gdGhl
-IG91dGVyIGxvb3AgaW4gYmxrX21xX3NjaGVkX3Jlc3RhcnQoKQ0KYW5kIHRoZSBpbm5lciBsb29w
-IGluIGJsa19tcV9zY2hlZF9yZXN0YXJ0X2hjdHgoKSB3aWxsIGNhdXNlIG1vcmUgY2FsbHMgb2YN
-CmJsa19tcV9ydW5faHdfcXVldWUoKSB0aGFuIG5lY2Vzc2FyeS4gSGF2ZSB5b3UgY29uc2lkZXJl
-ZCB0byBtZXJnZSB0aGUgYWJvdmUNCmxvb3AgaW50byBibGtfbXFfc2NoZWRfcmVzdGFydCgpPw0K
-DQpUaGFua3MsDQoNCkJhcnQuDQoNCg0K
+On Mon, 2018-02-05 at 23:20 +0800, Ming Lei wrote:
+> diff --git a/block/blk-mq-sched.c b/block/blk-mq-sched.c
+> index 55c0a745b427..385bbec73804 100644
+> --- a/block/blk-mq-sched.c
+> +++ b/block/blk-mq-sched.c
+> @@ -81,6 +81,17 @@ static bool blk_mq_sched_restart_hctx(struct blk_mq_hw_ctx *hctx)
+>  	} else
+>  		clear_bit(BLK_MQ_S_SCHED_RESTART, &hctx->state);
+>  
+> +	/* need to restart all hw queues for global tags */
+> +	if (hctx->flags & BLK_MQ_F_GLOBAL_TAGS) {
+> +		struct blk_mq_hw_ctx *hctx2;
+> +		int i;
+> +
+> +		queue_for_each_hw_ctx(hctx->queue, hctx2, i)
+> +			if (blk_mq_run_hw_queue(hctx2, true))
+> +				return true;
+> +		return false;
+> +	}
+> +
+>  	return blk_mq_run_hw_queue(hctx, true);
+>  }
+
+This new loop looks misplaced to me. If both the BLK_MQ_F_GLOBAL_TAGS and the
+BLK_MQ_F_TAG_SHARED flags are set then the outer loop in blk_mq_sched_restart()
+and the inner loop in blk_mq_sched_restart_hctx() will cause more calls of
+blk_mq_run_hw_queue() than necessary. Have you considered to merge the above
+loop into blk_mq_sched_restart()?
+
+Thanks,
+
+Bart.
diff --git a/a/content_digest b/N1/content_digest
index d057c92..9825f8a 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -22,25 +22,37 @@
  " peter.rivera@broadcom.com <peter.rivera@broadcom.com>\0"
  "\00:1\0"
  "b\0"
- "T24gTW9uLCAyMDE4LTAyLTA1IGF0IDIzOjIwICswODAwLCBNaW5nIExlaSB3cm90ZToNCj4gZGlm\n"
- "ZiAtLWdpdCBhL2Jsb2NrL2Jsay1tcS1zY2hlZC5jIGIvYmxvY2svYmxrLW1xLXNjaGVkLmMNCj4g\n"
- "aW5kZXggNTVjMGE3NDViNDI3Li4zODViYmVjNzM4MDQgMTAwNjQ0DQo+IC0tLSBhL2Jsb2NrL2Js\n"
- "ay1tcS1zY2hlZC5jDQo+ICsrKyBiL2Jsb2NrL2Jsay1tcS1zY2hlZC5jDQo+IEBAIC04MSw2ICs4\n"
- "MSwxNyBAQCBzdGF0aWMgYm9vbCBibGtfbXFfc2NoZWRfcmVzdGFydF9oY3R4KHN0cnVjdCBibGtf\n"
- "bXFfaHdfY3R4ICpoY3R4KQ0KPiAgCX0gZWxzZQ0KPiAgCQljbGVhcl9iaXQoQkxLX01RX1NfU0NI\n"
- "RURfUkVTVEFSVCwgJmhjdHgtPnN0YXRlKTsNCj4gIA0KPiArCS8qIG5lZWQgdG8gcmVzdGFydCBh\n"
- "bGwgaHcgcXVldWVzIGZvciBnbG9iYWwgdGFncyAqLw0KPiArCWlmIChoY3R4LT5mbGFncyAmIEJM\n"
- "S19NUV9GX0dMT0JBTF9UQUdTKSB7DQo+ICsJCXN0cnVjdCBibGtfbXFfaHdfY3R4ICpoY3R4MjsN\n"
- "Cj4gKwkJaW50IGk7DQo+ICsNCj4gKwkJcXVldWVfZm9yX2VhY2hfaHdfY3R4KGhjdHgtPnF1ZXVl\n"
- "LCBoY3R4MiwgaSkNCj4gKwkJCWlmIChibGtfbXFfcnVuX2h3X3F1ZXVlKGhjdHgyLCB0cnVlKSkN\n"
- "Cj4gKwkJCQlyZXR1cm4gdHJ1ZTsNCj4gKwkJcmV0dXJuIGZhbHNlOw0KPiArCX0NCj4gKw0KPiAg\n"
- "CXJldHVybiBibGtfbXFfcnVuX2h3X3F1ZXVlKGhjdHgsIHRydWUpOw0KPiAgfQ0KDQpUaGlzIG5l\n"
- "dyBsb29wIGxvb2tzIG1pc3BsYWNlZCB0byBtZS4gSWYgYm90aCB0aGUgQkxLX01RX0ZfR0xPQkFM\n"
- "X1RBR1MgYW5kIHRoZQ0KQkxLX01RX0ZfVEFHX1NIQVJFRCBmbGFncyBhcmUgc2V0IHRoZW4gdGhl\n"
- "IG91dGVyIGxvb3AgaW4gYmxrX21xX3NjaGVkX3Jlc3RhcnQoKQ0KYW5kIHRoZSBpbm5lciBsb29w\n"
- "IGluIGJsa19tcV9zY2hlZF9yZXN0YXJ0X2hjdHgoKSB3aWxsIGNhdXNlIG1vcmUgY2FsbHMgb2YN\n"
- "CmJsa19tcV9ydW5faHdfcXVldWUoKSB0aGFuIG5lY2Vzc2FyeS4gSGF2ZSB5b3UgY29uc2lkZXJl\n"
- "ZCB0byBtZXJnZSB0aGUgYWJvdmUNCmxvb3AgaW50byBibGtfbXFfc2NoZWRfcmVzdGFydCgpPw0K\n"
- DQpUaGFua3MsDQoNCkJhcnQuDQoNCg0K
+ "On Mon, 2018-02-05 at 23:20 +0800, Ming Lei wrote:\n"
+ "> diff --git a/block/blk-mq-sched.c b/block/blk-mq-sched.c\n"
+ "> index 55c0a745b427..385bbec73804 100644\n"
+ "> --- a/block/blk-mq-sched.c\n"
+ "> +++ b/block/blk-mq-sched.c\n"
+ "> @@ -81,6 +81,17 @@ static bool blk_mq_sched_restart_hctx(struct blk_mq_hw_ctx *hctx)\n"
+ ">  \t} else\n"
+ ">  \t\tclear_bit(BLK_MQ_S_SCHED_RESTART, &hctx->state);\n"
+ ">  \n"
+ "> +\t/* need to restart all hw queues for global tags */\n"
+ "> +\tif (hctx->flags & BLK_MQ_F_GLOBAL_TAGS) {\n"
+ "> +\t\tstruct blk_mq_hw_ctx *hctx2;\n"
+ "> +\t\tint i;\n"
+ "> +\n"
+ "> +\t\tqueue_for_each_hw_ctx(hctx->queue, hctx2, i)\n"
+ "> +\t\t\tif (blk_mq_run_hw_queue(hctx2, true))\n"
+ "> +\t\t\t\treturn true;\n"
+ "> +\t\treturn false;\n"
+ "> +\t}\n"
+ "> +\n"
+ ">  \treturn blk_mq_run_hw_queue(hctx, true);\n"
+ ">  }\n"
+ "\n"
+ "This new loop looks misplaced to me. If both the BLK_MQ_F_GLOBAL_TAGS and the\n"
+ "BLK_MQ_F_TAG_SHARED flags are set then the outer loop in blk_mq_sched_restart()\n"
+ "and the inner loop in blk_mq_sched_restart_hctx() will cause more calls of\n"
+ "blk_mq_run_hw_queue() than necessary. Have you considered to merge the above\n"
+ "loop into blk_mq_sched_restart()?\n"
+ "\n"
+ "Thanks,\n"
+ "\n"
+ Bart.
 
-25c3feed2d349707beaae120987aaa8c15c5591d3b6c49254f8cb87fb0a431ad
+420406f663511e7e64234e8f782248bcbf8346b77a47720bf90638ad44869c71

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.