From 95c18341fe4da8ad35cefce589df6035a36e97b9 Mon Sep 17 00:00:00 2001 From: scjody Date: Tue, 29 May 2007 17:16:55 +0000 Subject: [PATCH] Branch b1_6 Don't run filter_grant_sanity_check for more than 100 exports to improve scaling for large numbers of clients. b=10291 i=wangdi i=adilger --- lustre/ChangeLog | 6 ++++++ lustre/obdfilter/filter.c | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 4d242ea..92fd632 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -21,6 +21,12 @@ Description: Transient SCSI error results in persistent IO issue Details : iobuf->dr_error is not reinitialized to 0 between two uses. +Severity : minor +Bugzilla : 12364 +Description: poor connect scaling with increasing client count +Details : Don't run filter_grant_sanity_check for more than 100 exports + to improve scaling for large numbers of clients. + Severity : normal Frequency : SLES10 only Bugzilla : 12538 diff --git a/lustre/obdfilter/filter.c b/lustre/obdfilter/filter.c index ddbf886..0ea2ea7 100644 --- a/lustre/obdfilter/filter.c +++ b/lustre/obdfilter/filter.c @@ -2093,6 +2093,11 @@ static void filter_grant_sanity_check(struct obd_device *obd, const char *func) if (list_empty(&obd->obd_exports)) return; + /* We don't want to do this for large machines that do lots of + mounts or unmounts. It burns... */ + if (obd->obd_num_exports > 100) + return; + spin_lock(&obd->obd_osfs_lock); spin_lock(&obd->obd_dev_lock); list_for_each_entry(exp, &obd->obd_exports, exp_obd_chain) { -- 1.8.3.1