40 lines
1.3 KiB
Diff
40 lines
1.3 KiB
Diff
|
|
From 400ffe97d5db1a3a06de77851d44813ff48ebb9a Mon Sep 17 00:00:00 2001
|
||
|
|
From: root <root@localhost.localdomain>
|
||
|
|
Date: Wed, 13 Mar 2019 11:27:13 +0800
|
||
|
|
Subject: [PATCH 02/17] bcache: reduce MAX_IO to 256
|
||
|
|
|
||
|
|
This is the number of concurrent async io requests that
|
||
|
|
the scan layer will submit to the bcache layer. There
|
||
|
|
will be an open fd for each of these, so it is best to
|
||
|
|
keep this well below the default limit for max open files
|
||
|
|
(1024), otherwise lvm may get EMFILE from open(2) when
|
||
|
|
there are around 1024 devices to scan on the system.
|
||
|
|
---
|
||
|
|
lib/device/bcache.c | 10 +++++++++-
|
||
|
|
1 file changed, 9 insertions(+), 1 deletion(-)
|
||
|
|
|
||
|
|
diff --git a/lib/device/bcache.c b/lib/device/bcache.c
|
||
|
|
index b1f7d2a..531d83b 100644
|
||
|
|
--- a/lib/device/bcache.c
|
||
|
|
+++ b/lib/device/bcache.c
|
||
|
|
@@ -196,7 +196,15 @@ static bool _async_issue(struct io_engine *ioe, enum dir d, int fd,
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
|
||
|
|
-#define MAX_IO 1024
|
||
|
|
+/*
|
||
|
|
+ * MAX_IO is returned to the layer above via bcache_max_prefetches() which
|
||
|
|
+ * tells the caller how many devices to submit io for concurrently. There will
|
||
|
|
+ * be an open file descriptor for each of these, so keep it low enough to avoid
|
||
|
|
+ * reaching the default max open file limit (1024) when there are over 1024
|
||
|
|
+ * devices being scanned.
|
||
|
|
+ */
|
||
|
|
+
|
||
|
|
+#define MAX_IO 256
|
||
|
|
#define MAX_EVENT 64
|
||
|
|
|
||
|
|
static bool _async_wait(struct io_engine *ioe, io_complete_fn fn)
|
||
|
|
--
|
||
|
|
2.19.1
|
||
|
|
|