summaryrefslogtreecommitdiff
path: root/include/linux/drbd_limits.h
diff options
context:
space:
mode:
authorLars Ellenberg <lars.ellenberg@linbit.com>2013-03-19 18:16:59 +0100
committerJens Axboe <axboe@kernel.dk>2013-03-22 22:18:09 -0600
commit5bbcf5e6abe97485748b51ea0713cc3012b4a8f0 (patch)
tree577851f75cfe5de3138c8c1c387883cf47f24005 /include/linux/drbd_limits.h
parent45ad07b3ac1e3062188fb760fe71cafb4a100215 (diff)
downloadlwn-5bbcf5e6abe97485748b51ea0713cc3012b4a8f0.tar.gz
lwn-5bbcf5e6abe97485748b51ea0713cc3012b4a8f0.zip
drbd: adjust upper limit for activity log extents
Now that the on-disk activity-log ring buffer size is adjustable, the maximum active set can become larger, and is now limited by the use of 16bit "labels". This increases the maximum working set from 6433 to 65534 extents, each of which covers an area of 4MiB. Which means that if you use the maximum, you'd have to resync more than 250 GiB after an unclean Primary shutdown. With capable backend storage and replication links, this is entirely feasible. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include/linux/drbd_limits.h')
-rw-r--r--include/linux/drbd_limits.h11
1 files changed, 5 insertions, 6 deletions
diff --git a/include/linux/drbd_limits.h b/include/linux/drbd_limits.h
index 1fa19c5f5e64..1fedf2b17cc8 100644
--- a/include/linux/drbd_limits.h
+++ b/include/linux/drbd_limits.h
@@ -126,13 +126,12 @@
#define DRBD_RESYNC_RATE_DEF 250
#define DRBD_RESYNC_RATE_SCALE 'k' /* kilobytes */
- /* less than 7 would hit performance unnecessarily.
- * 919 slots context information per transaction,
- * 32k activity log, 4k transaction size,
- * one transaction in flight:
- * 919 * 7 = 6433 */
+ /* less than 7 would hit performance unnecessarily. */
#define DRBD_AL_EXTENTS_MIN 7
-#define DRBD_AL_EXTENTS_MAX 6433
+ /* we use u16 as "slot number", (u16)~0 is "FREE".
+ * If you use >= 292 kB on-disk ring buffer,
+ * this is the maximum you can use: */
+#define DRBD_AL_EXTENTS_MAX 0xfffe
#define DRBD_AL_EXTENTS_DEF 1237
#define DRBD_AL_EXTENTS_SCALE '1'