Message ID | CAH2r5ms4mQOtLavJNk09aHhKGKsf6XEEtxMFMGR0EgkZ4xtf-g@mail.gmail.com |
---|---|
State | New |
Headers | show |
Series | CONFIG_CIFS_STATS should always be enabled | expand |
Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com> On Tue, Jul 31, 2018 at 4:27 PM, Steve French <smfrench@gmail.com> wrote: > From b0c7de68d96ef236b090092124998dad25d8a14d Mon Sep 17 00:00:00 2001 > From: Steve French <stfrench@microsoft.com> > Date: Tue, 31 Jul 2018 01:21:37 -0500 > Subject: [PATCH] cifs: simple stats should always be enabled > > CONFIG_CIFS_STATS should always be enabled as Pavel and others > noted. Simple statistics are not a significant performance hit, > and removing the ifdef simplifies the code slightly. > > Signed-off-by: Steve French <stfrench@microsoft.com> > --- > fs/cifs/Kconfig | 9 +-------- > fs/cifs/cifs_debug.c | 6 ------ > fs/cifs/cifsglob.h | 10 ---------- > fs/cifs/misc.c | 2 -- > fs/cifs/smb1ops.c | 4 ---- > fs/cifs/smb2ops.c | 4 ---- > fs/cifs/smb2pdu.c | 2 -- > 7 files changed, 1 insertion(+), 36 deletions(-) > > diff --git a/fs/cifs/Kconfig b/fs/cifs/Kconfig > index 63d0d852998a..35c83fe7dba0 100644 > --- a/fs/cifs/Kconfig > +++ b/fs/cifs/Kconfig > @@ -49,16 +49,9 @@ config CIFS > > If you need to mount to Samba, Azure, Macs or Windows from this > machine, say Y. > > -config CIFS_STATS > - bool "CIFS statistics" > - depends on CIFS > - help > - Enabling this option will cause statistics for each server share > - mounted by the cifs client to be displayed in /proc/fs/cifs/Stats > - > config CIFS_STATS2 > bool "Extended statistics" > - depends on CIFS_STATS > + depends on CIFS > help > Enabling this option will allow more detailed statistics on SMB > request timing to be displayed in /proc/fs/cifs/DebugData and also > diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c > index cb516c950438..3270d9b74603 100644 > --- a/fs/cifs/cifs_debug.c > +++ b/fs/cifs/cifs_debug.c > @@ -365,7 +365,6 @@ static int cifs_debug_data_proc_show(struct seq_file *m, > void *v) > return 0; > } > > -#ifdef CONFIG_CIFS_STATS > static ssize_t cifs_stats_proc_write(struct file *file, > const char __user *buffer, size_t count, loff_t *ppos) > { > @@ -481,7 +480,6 @@ static const struct file_operations cifs_stats_proc_fops > = { > .release = single_release, > .write = cifs_stats_proc_write, > }; > -#endif /* STATS */ > > #ifdef CONFIG_CIFS_SMB_DIRECT > #define PROC_FILE_DEFINE(name) \ > @@ -539,9 +537,7 @@ cifs_proc_init(void) > proc_create_single("DebugData", 0, proc_fs_cifs, > cifs_debug_data_proc_show); > > -#ifdef CONFIG_CIFS_STATS > proc_create("Stats", 0644, proc_fs_cifs, &cifs_stats_proc_fops); > -#endif /* STATS */ > proc_create("cifsFYI", 0644, proc_fs_cifs, &cifsFYI_proc_fops); > proc_create("traceSMB", 0644, proc_fs_cifs, &traceSMB_proc_fops); > proc_create("LinuxExtensionsEnabled", 0644, proc_fs_cifs, > @@ -579,9 +575,7 @@ cifs_proc_clean(void) > remove_proc_entry("DebugData", proc_fs_cifs); > remove_proc_entry("cifsFYI", proc_fs_cifs); > remove_proc_entry("traceSMB", proc_fs_cifs); > -#ifdef CONFIG_CIFS_STATS > remove_proc_entry("Stats", proc_fs_cifs); > -#endif > remove_proc_entry("SecurityFlags", proc_fs_cifs); > remove_proc_entry("LinuxExtensionsEnabled", proc_fs_cifs); > remove_proc_entry("LookupCacheEnabled", proc_fs_cifs); > diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h > index 0e6fd5fa4eb6..4a3a737134ea 100644 > --- a/fs/cifs/cifsglob.h > +++ b/fs/cifs/cifsglob.h > @@ -931,7 +931,6 @@ struct cifs_tcon { > __u32 tid; /* The 4 byte tree id */ > __u16 Flags; /* optional support bits */ > enum statusEnum tidStatus; > -#ifdef CONFIG_CIFS_STATS > atomic_t num_smbs_sent; > union { > struct { > @@ -965,7 +964,6 @@ struct cifs_tcon { > __u64 bytes_read; > __u64 bytes_written; > spinlock_t stat_lock; /* protects the two fields above */ > -#endif /* CONFIG_CIFS_STATS */ > FILE_SYSTEM_DEVICE_INFO fsDevInfo; > FILE_SYSTEM_ATTRIBUTE_INFO fsAttrInfo; /* ok if fs name truncated */ > FILE_SYSTEM_UNIX_INFO fsUnixInfo; > @@ -1331,7 +1329,6 @@ convert_delimiter(char *path, char delim) > *pos = delim; > } > > -#ifdef CONFIG_CIFS_STATS > #define cifs_stats_inc atomic_inc > > static inline void cifs_stats_bytes_written(struct cifs_tcon *tcon, > @@ -1351,13 +1348,6 @@ static inline void cifs_stats_bytes_read(struct > cifs_tcon *tcon, > tcon->bytes_read += bytes; > spin_unlock(&tcon->stat_lock); > } > -#else > - > -#define cifs_stats_inc(field) do {} while (0) > -#define cifs_stats_bytes_written(tcon, bytes) do {} while (0) > -#define cifs_stats_bytes_read(tcon, bytes) do {} while (0) > - > -#endif > > > /* > diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c > index 53e8362cbc4a..dacb2c05674c 100644 > --- a/fs/cifs/misc.c > +++ b/fs/cifs/misc.c > @@ -122,9 +122,7 @@ tconInfoAlloc(void) > mutex_init(&ret_buf->crfid.fid_mutex); > ret_buf->crfid.fid = kzalloc(sizeof(struct cifs_fid), > GFP_KERNEL); > -#ifdef CONFIG_CIFS_STATS > spin_lock_init(&ret_buf->stat_lock); > -#endif > } > return ret_buf; > } > diff --git a/fs/cifs/smb1ops.c b/fs/cifs/smb1ops.c > index 646dcd149de1..378151e09e91 100644 > --- a/fs/cifs/smb1ops.c > +++ b/fs/cifs/smb1ops.c > @@ -624,7 +624,6 @@ cifs_query_file_info(const unsigned int xid, struct > cifs_tcon *tcon, > static void > cifs_clear_stats(struct cifs_tcon *tcon) > { > -#ifdef CONFIG_CIFS_STATS > atomic_set(&tcon->stats.cifs_stats.num_writes, 0); > atomic_set(&tcon->stats.cifs_stats.num_reads, 0); > atomic_set(&tcon->stats.cifs_stats.num_flushes, 0); > @@ -646,13 +645,11 @@ cifs_clear_stats(struct cifs_tcon *tcon) > atomic_set(&tcon->stats.cifs_stats.num_locks, 0); > atomic_set(&tcon->stats.cifs_stats.num_acl_get, 0); > atomic_set(&tcon->stats.cifs_stats.num_acl_set, 0); > -#endif > } > > static void > cifs_print_stats(struct seq_file *m, struct cifs_tcon *tcon) > { > -#ifdef CONFIG_CIFS_STATS > seq_printf(m, " Oplocks breaks: %d", > atomic_read(&tcon->stats.cifs_stats.num_oplock_brks)); > seq_printf(m, "\nReads: %d Bytes: %llu", > @@ -684,7 +681,6 @@ cifs_print_stats(struct seq_file *m, struct cifs_tcon > *tcon) > atomic_read(&tcon->stats.cifs_stats.num_ffirst), > atomic_read(&tcon->stats.cifs_stats.num_fnext), > atomic_read(&tcon->stats.cifs_stats.num_fclose)); > -#endif > } > > static void > diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c > index 8929426ddaa6..831249001384 100644 > --- a/fs/cifs/smb2ops.c > +++ b/fs/cifs/smb2ops.c > @@ -900,13 +900,11 @@ smb2_can_echo(struct TCP_Server_Info *server) > static void > smb2_clear_stats(struct cifs_tcon *tcon) > { > -#ifdef CONFIG_CIFS_STATS > int i; > for (i = 0; i < NUMBER_OF_SMB2_COMMANDS; i++) { > atomic_set(&tcon->stats.smb2_stats.smb2_com_sent[i], 0); > atomic_set(&tcon->stats.smb2_stats.smb2_com_failed[i], 0); > } > -#endif > } > > static void > @@ -945,7 +943,6 @@ smb2_dump_share_caps(struct seq_file *m, struct > cifs_tcon *tcon) > static void > smb2_print_stats(struct seq_file *m, struct cifs_tcon *tcon) > { > -#ifdef CONFIG_CIFS_STATS > atomic_t *sent = tcon->stats.smb2_stats.smb2_com_sent; > atomic_t *failed = tcon->stats.smb2_stats.smb2_com_failed; > > @@ -995,7 +992,6 @@ smb2_print_stats(struct seq_file *m, struct cifs_tcon > *tcon) > seq_printf(m, "\nOplockBreaks: %d sent %d failed", > atomic_read(&sent[SMB2_OPLOCK_BREAK_HE]), > atomic_read(&failed[SMB2_OPLOCK_BREAK_HE])); > -#endif > } > > static void > diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c > index 0b4d7ebb812d..7c0b30321d9a 100644 > --- a/fs/cifs/smb2pdu.c > +++ b/fs/cifs/smb2pdu.c > @@ -360,10 +360,8 @@ smb2_plain_req_init(__le16 smb2_command, struct > cifs_tcon *tcon, > total_len); > > if (tcon != NULL) { > -#ifdef CONFIG_CIFS_STATS > uint16_t com_code = le16_to_cpu(smb2_command); > cifs_stats_inc(&tcon->stats.smb2_stats.smb2_com_sent[com_code]); > -#endif > cifs_stats_inc(&tcon->num_smbs_sent); > } > > -- > 2.17.1 > > > -- > Thanks, > > Steve -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
TG9va3MgZ29vZC4NCg0KUmV2aWV3ZWQtYnk6IFBhdmVsIFNoaWxvdnNreSA8cHNoaWxvdkBtaWNy b3NvZnQuY29tPg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogcm9ubmllIHNh aGxiZXJnIDxyb25uaWVzYWhsYmVyZ0BnbWFpbC5jb20+IA0KU2VudDogVHVlc2RheSwgSnVseSAz MSwgMjAxOCAxMjowMCBBTQ0KVG86IFN0ZXZlIEZyZW5jaCA8c21mcmVuY2hAZ21haWwuY29tPg0K Q2M6IENJRlMgPGxpbnV4LWNpZnNAdmdlci5rZXJuZWwub3JnPjsgUGF2ZWwgU2hpbG92c2tpeSA8 cHNoaWxvdkBtaWNyb3NvZnQuY29tPg0KU3ViamVjdDogUmU6IFtQQVRDSF0gQ09ORklHX0NJRlNf U1RBVFMgc2hvdWxkIGFsd2F5cyBiZSBlbmFibGVkDQoNClJldmlld2VkLWJ5OiBSb25uaWUgU2Fo bGJlcmcgPGxzYWhsYmVyQHJlZGhhdC5jb20+DQoNCk9uIFR1ZSwgSnVsIDMxLCAyMDE4IGF0IDQ6 MjcgUE0sIFN0ZXZlIEZyZW5jaCA8c21mcmVuY2hAZ21haWwuY29tPiB3cm90ZToNCj4gRnJvbSBi MGM3ZGU2OGQ5NmVmMjM2YjA5MDA5MjEyNDk5OGRhZDI1ZDhhMTRkIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQ0KPiBGcm9tOiBTdGV2ZSBGcmVuY2ggPHN0ZnJlbmNoQG1pY3Jvc29mdC5jb20+DQo+ IERhdGU6IFR1ZSwgMzEgSnVsIDIwMTggMDE6MjE6MzcgLTA1MDANCj4gU3ViamVjdDogW1BBVENI XSBjaWZzOiBzaW1wbGUgc3RhdHMgc2hvdWxkIGFsd2F5cyBiZSBlbmFibGVkDQo+DQo+IENPTkZJ R19DSUZTX1NUQVRTIHNob3VsZCBhbHdheXMgYmUgZW5hYmxlZCBhcyBQYXZlbCBhbmQgb3RoZXJz IG5vdGVkLiAgDQo+IFNpbXBsZSBzdGF0aXN0aWNzIGFyZSBub3QgYSBzaWduaWZpY2FudCBwZXJm b3JtYW5jZSBoaXQsIGFuZCByZW1vdmluZyANCj4gdGhlIGlmZGVmIHNpbXBsaWZpZXMgdGhlIGNv ZGUgc2xpZ2h0bHkuDQo+DQo+IFNpZ25lZC1vZmYtYnk6IFN0ZXZlIEZyZW5jaCA8c3RmcmVuY2hA bWljcm9zb2Z0LmNvbT4NCj4gLS0tDQo+ICBmcy9jaWZzL0tjb25maWcgICAgICB8ICA5ICstLS0t LS0tLQ0KPiAgZnMvY2lmcy9jaWZzX2RlYnVnLmMgfCAgNiAtLS0tLS0NCj4gIGZzL2NpZnMvY2lm c2dsb2IuaCAgIHwgMTAgLS0tLS0tLS0tLQ0KPiAgZnMvY2lmcy9taXNjLmMgICAgICAgfCAgMiAt LQ0KPiAgZnMvY2lmcy9zbWIxb3BzLmMgICAgfCAgNCAtLS0tDQo+ICBmcy9jaWZzL3NtYjJvcHMu YyAgICB8ICA0IC0tLS0NCj4gIGZzL2NpZnMvc21iMnBkdS5jICAgIHwgIDIgLS0NCj4gIDcgZmls ZXMgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDM2IGRlbGV0aW9ucygtKQ0KPg0KPiBkaWZmIC0t Z2l0IGEvZnMvY2lmcy9LY29uZmlnIGIvZnMvY2lmcy9LY29uZmlnIGluZGV4IA0KPiA2M2QwZDg1 Mjk5OGEuLjM1YzgzZmU3ZGJhMCAxMDA2NDQNCj4gLS0tIGEvZnMvY2lmcy9LY29uZmlnDQo+ICsr KyBiL2ZzL2NpZnMvS2NvbmZpZw0KPiBAQCAtNDksMTYgKzQ5LDkgQEAgY29uZmlnIENJRlMNCj4N Cj4gICAgICAgIElmIHlvdSBuZWVkIHRvIG1vdW50IHRvIFNhbWJhLCBBenVyZSwgTWFjcyBvciBX aW5kb3dzIGZyb20gdGhpcyANCj4gbWFjaGluZSwgc2F5IFkuDQo+DQo+IC1jb25maWcgQ0lGU19T VEFUUw0KPiAtICAgICAgICBib29sICJDSUZTIHN0YXRpc3RpY3MiDQo+IC0gICAgICAgIGRlcGVu ZHMgb24gQ0lGUw0KPiAtICAgICAgICBoZWxwDQo+IC0gICAgICAgICAgRW5hYmxpbmcgdGhpcyBv cHRpb24gd2lsbCBjYXVzZSBzdGF0aXN0aWNzIGZvciBlYWNoIHNlcnZlciBzaGFyZQ0KPiAtICAg ICAgbW91bnRlZCBieSB0aGUgY2lmcyBjbGllbnQgdG8gYmUgZGlzcGxheWVkIGluIC9wcm9jL2Zz L2NpZnMvU3RhdHMNCj4gLQ0KPiAgY29uZmlnIENJRlNfU1RBVFMyDQo+ICAgICAgYm9vbCAiRXh0 ZW5kZWQgc3RhdGlzdGljcyINCj4gLSAgICBkZXBlbmRzIG9uIENJRlNfU1RBVFMNCj4gKyAgICBk ZXBlbmRzIG9uIENJRlMNCj4gICAgICBoZWxwDQo+ICAgICAgICBFbmFibGluZyB0aGlzIG9wdGlv biB3aWxsIGFsbG93IG1vcmUgZGV0YWlsZWQgc3RhdGlzdGljcyBvbiBTTUINCj4gICAgICAgIHJl cXVlc3QgdGltaW5nIHRvIGJlIGRpc3BsYXllZCBpbiAvcHJvYy9mcy9jaWZzL0RlYnVnRGF0YSBh bmQgDQo+IGFsc28gZGlmZiAtLWdpdCBhL2ZzL2NpZnMvY2lmc19kZWJ1Zy5jIGIvZnMvY2lmcy9j aWZzX2RlYnVnLmMgaW5kZXggDQo+IGNiNTE2Yzk1MDQzOC4uMzI3MGQ5Yjc0NjAzIDEwMDY0NA0K PiAtLS0gYS9mcy9jaWZzL2NpZnNfZGVidWcuYw0KPiArKysgYi9mcy9jaWZzL2NpZnNfZGVidWcu Yw0KPiBAQCAtMzY1LDcgKzM2NSw2IEBAIHN0YXRpYyBpbnQgY2lmc19kZWJ1Z19kYXRhX3Byb2Nf c2hvdyhzdHJ1Y3QgDQo+IHNlcV9maWxlICptLCB2b2lkICp2KQ0KPiAgICAgIHJldHVybiAwOw0K PiAgfQ0KPg0KPiAtI2lmZGVmIENPTkZJR19DSUZTX1NUQVRTDQo+ICBzdGF0aWMgc3NpemVfdCBj aWZzX3N0YXRzX3Byb2Nfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsDQo+ICAgICAgICAgIGNvbnN0 IGNoYXIgX191c2VyICpidWZmZXIsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKSAgeyBAQCAN Cj4gLTQ4MSw3ICs0ODAsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAN Cj4gY2lmc19zdGF0c19wcm9jX2ZvcHMgPSB7DQo+ICAgICAgLnJlbGVhc2UgICAgPSBzaW5nbGVf cmVsZWFzZSwNCj4gICAgICAud3JpdGUgICAgICAgID0gY2lmc19zdGF0c19wcm9jX3dyaXRlLA0K PiAgfTsNCj4gLSNlbmRpZiAvKiBTVEFUUyAqLw0KPg0KPiAgI2lmZGVmIENPTkZJR19DSUZTX1NN Ql9ESVJFQ1QNCj4gICNkZWZpbmUgUFJPQ19GSUxFX0RFRklORShuYW1lKSBcDQo+IEBAIC01Mzks OSArNTM3LDcgQEAgY2lmc19wcm9jX2luaXQodm9pZCkNCj4gICAgICBwcm9jX2NyZWF0ZV9zaW5n bGUoIkRlYnVnRGF0YSIsIDAsIHByb2NfZnNfY2lmcywNCj4gICAgICAgICAgICAgIGNpZnNfZGVi dWdfZGF0YV9wcm9jX3Nob3cpOw0KPg0KPiAtI2lmZGVmIENPTkZJR19DSUZTX1NUQVRTDQo+ICAg ICAgcHJvY19jcmVhdGUoIlN0YXRzIiwgMDY0NCwgcHJvY19mc19jaWZzLCAmY2lmc19zdGF0c19w cm9jX2ZvcHMpOyANCj4gLSNlbmRpZiAvKiBTVEFUUyAqLw0KPiAgICAgIHByb2NfY3JlYXRlKCJj aWZzRllJIiwgMDY0NCwgcHJvY19mc19jaWZzLCAmY2lmc0ZZSV9wcm9jX2ZvcHMpOw0KPiAgICAg IHByb2NfY3JlYXRlKCJ0cmFjZVNNQiIsIDA2NDQsIHByb2NfZnNfY2lmcywgJnRyYWNlU01CX3By b2NfZm9wcyk7DQo+ICAgICAgcHJvY19jcmVhdGUoIkxpbnV4RXh0ZW5zaW9uc0VuYWJsZWQiLCAw NjQ0LCBwcm9jX2ZzX2NpZnMsIEBAIA0KPiAtNTc5LDkgKzU3NSw3IEBAIGNpZnNfcHJvY19jbGVh bih2b2lkKQ0KPiAgICAgIHJlbW92ZV9wcm9jX2VudHJ5KCJEZWJ1Z0RhdGEiLCBwcm9jX2ZzX2Np ZnMpOw0KPiAgICAgIHJlbW92ZV9wcm9jX2VudHJ5KCJjaWZzRllJIiwgcHJvY19mc19jaWZzKTsN Cj4gICAgICByZW1vdmVfcHJvY19lbnRyeSgidHJhY2VTTUIiLCBwcm9jX2ZzX2NpZnMpOyAtI2lm ZGVmIA0KPiBDT05GSUdfQ0lGU19TVEFUUw0KPiAgICAgIHJlbW92ZV9wcm9jX2VudHJ5KCJTdGF0 cyIsIHByb2NfZnNfY2lmcyk7IC0jZW5kaWYNCj4gICAgICByZW1vdmVfcHJvY19lbnRyeSgiU2Vj dXJpdHlGbGFncyIsIHByb2NfZnNfY2lmcyk7DQo+ICAgICAgcmVtb3ZlX3Byb2NfZW50cnkoIkxp bnV4RXh0ZW5zaW9uc0VuYWJsZWQiLCBwcm9jX2ZzX2NpZnMpOw0KPiAgICAgIHJlbW92ZV9wcm9j X2VudHJ5KCJMb29rdXBDYWNoZUVuYWJsZWQiLCBwcm9jX2ZzX2NpZnMpOyBkaWZmIC0tZ2l0IA0K PiBhL2ZzL2NpZnMvY2lmc2dsb2IuaCBiL2ZzL2NpZnMvY2lmc2dsb2IuaCBpbmRleCANCj4gMGU2 ZmQ1ZmE0ZWI2Li40YTNhNzM3MTM0ZWEgMTAwNjQ0DQo+IC0tLSBhL2ZzL2NpZnMvY2lmc2dsb2Iu aA0KPiArKysgYi9mcy9jaWZzL2NpZnNnbG9iLmgNCj4gQEAgLTkzMSw3ICs5MzEsNiBAQCBzdHJ1 Y3QgY2lmc190Y29uIHsNCj4gICAgICBfX3UzMiB0aWQ7ICAgICAgICAvKiBUaGUgNCBieXRlIHRy ZWUgaWQgKi8NCj4gICAgICBfX3UxNiBGbGFnczsgICAgICAgIC8qIG9wdGlvbmFsIHN1cHBvcnQg Yml0cyAqLw0KPiAgICAgIGVudW0gc3RhdHVzRW51bSB0aWRTdGF0dXM7DQo+IC0jaWZkZWYgQ09O RklHX0NJRlNfU1RBVFMNCj4gICAgICBhdG9taWNfdCBudW1fc21ic19zZW50Ow0KPiAgICAgIHVu aW9uIHsNCj4gICAgICAgICAgc3RydWN0IHsNCj4gQEAgLTk2NSw3ICs5NjQsNiBAQCBzdHJ1Y3Qg Y2lmc190Y29uIHsNCj4gICAgICBfX3U2NCAgICBieXRlc19yZWFkOw0KPiAgICAgIF9fdTY0ICAg IGJ5dGVzX3dyaXR0ZW47DQo+ICAgICAgc3BpbmxvY2tfdCBzdGF0X2xvY2s7ICAvKiBwcm90ZWN0 cyB0aGUgdHdvIGZpZWxkcyBhYm92ZSAqLyANCj4gLSNlbmRpZiAvKiBDT05GSUdfQ0lGU19TVEFU UyAqLw0KPiAgICAgIEZJTEVfU1lTVEVNX0RFVklDRV9JTkZPIGZzRGV2SW5mbzsNCj4gICAgICBG SUxFX1NZU1RFTV9BVFRSSUJVVEVfSU5GTyBmc0F0dHJJbmZvOyAvKiBvayBpZiBmcyBuYW1lIHRy dW5jYXRlZCAqLw0KPiAgICAgIEZJTEVfU1lTVEVNX1VOSVhfSU5GTyBmc1VuaXhJbmZvOyBAQCAt MTMzMSw3ICsxMzI5LDYgQEAgDQo+IGNvbnZlcnRfZGVsaW1pdGVyKGNoYXIgKnBhdGgsIGNoYXIg ZGVsaW0pDQo+ICAgICAgICAgICpwb3MgPSBkZWxpbTsNCj4gIH0NCj4NCj4gLSNpZmRlZiBDT05G SUdfQ0lGU19TVEFUUw0KPiAgI2RlZmluZSBjaWZzX3N0YXRzX2luYyBhdG9taWNfaW5jDQo+DQo+ ICBzdGF0aWMgaW5saW5lIHZvaWQgY2lmc19zdGF0c19ieXRlc193cml0dGVuKHN0cnVjdCBjaWZz X3Rjb24gKnRjb24sIA0KPiBAQCAtMTM1MSwxMyArMTM0OCw2IEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCBjaWZzX3N0YXRzX2J5dGVzX3JlYWQoc3RydWN0IA0KPiBjaWZzX3Rjb24gKnRjb24sDQo+ICAg ICAgdGNvbi0+Ynl0ZXNfcmVhZCArPSBieXRlczsNCj4gICAgICBzcGluX3VubG9jaygmdGNvbi0+ c3RhdF9sb2NrKTsNCj4gIH0NCj4gLSNlbHNlDQo+IC0NCj4gLSNkZWZpbmUgIGNpZnNfc3RhdHNf aW5jKGZpZWxkKSBkbyB7fSB3aGlsZSAoMCkgLSNkZWZpbmUgIA0KPiBjaWZzX3N0YXRzX2J5dGVz X3dyaXR0ZW4odGNvbiwgYnl0ZXMpIGRvIHt9IHdoaWxlICgwKSAtI2RlZmluZSAgDQo+IGNpZnNf c3RhdHNfYnl0ZXNfcmVhZCh0Y29uLCBieXRlcykgZG8ge30gd2hpbGUgKDApDQo+IC0NCj4gLSNl bmRpZg0KPg0KPg0KPiAgLyoNCj4gZGlmZiAtLWdpdCBhL2ZzL2NpZnMvbWlzYy5jIGIvZnMvY2lm cy9taXNjLmMgaW5kZXggDQo+IDUzZTgzNjJjYmM0YS4uZGFjYjJjMDU2NzRjIDEwMDY0NA0KPiAt LS0gYS9mcy9jaWZzL21pc2MuYw0KPiArKysgYi9mcy9jaWZzL21pc2MuYw0KPiBAQCAtMTIyLDkg KzEyMiw3IEBAIHRjb25JbmZvQWxsb2Modm9pZCkNCj4gICAgICAgICAgbXV0ZXhfaW5pdCgmcmV0 X2J1Zi0+Y3JmaWQuZmlkX211dGV4KTsNCj4gICAgICAgICAgcmV0X2J1Zi0+Y3JmaWQuZmlkID0g a3phbGxvYyhzaXplb2Yoc3RydWN0IGNpZnNfZmlkKSwNCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICBHRlBfS0VSTkVMKTsgLSNpZmRlZiBDT05GSUdfQ0lGU19TVEFUUw0KPiAgICAgICAgICBz cGluX2xvY2tfaW5pdCgmcmV0X2J1Zi0+c3RhdF9sb2NrKTsNCj4gLSNlbmRpZg0KPiAgICAgIH0N Cj4gICAgICByZXR1cm4gcmV0X2J1ZjsNCj4gIH0NCj4gZGlmZiAtLWdpdCBhL2ZzL2NpZnMvc21i MW9wcy5jIGIvZnMvY2lmcy9zbWIxb3BzLmMgaW5kZXggDQo+IDY0NmRjZDE0OWRlMS4uMzc4MTUx ZTA5ZTkxIDEwMDY0NA0KPiAtLS0gYS9mcy9jaWZzL3NtYjFvcHMuYw0KPiArKysgYi9mcy9jaWZz L3NtYjFvcHMuYw0KPiBAQCAtNjI0LDcgKzYyNCw2IEBAIGNpZnNfcXVlcnlfZmlsZV9pbmZvKGNv bnN0IHVuc2lnbmVkIGludCB4aWQsIA0KPiBzdHJ1Y3QgY2lmc190Y29uICp0Y29uLCAgc3RhdGlj IHZvaWQgIGNpZnNfY2xlYXJfc3RhdHMoc3RydWN0IA0KPiBjaWZzX3Rjb24gKnRjb24pICB7IC0j aWZkZWYgQ09ORklHX0NJRlNfU1RBVFMNCj4gICAgICBhdG9taWNfc2V0KCZ0Y29uLT5zdGF0cy5j aWZzX3N0YXRzLm51bV93cml0ZXMsIDApOw0KPiAgICAgIGF0b21pY19zZXQoJnRjb24tPnN0YXRz LmNpZnNfc3RhdHMubnVtX3JlYWRzLCAwKTsNCj4gICAgICBhdG9taWNfc2V0KCZ0Y29uLT5zdGF0 cy5jaWZzX3N0YXRzLm51bV9mbHVzaGVzLCAwKTsgQEAgLTY0NiwxMyANCj4gKzY0NSwxMSBAQCBj aWZzX2NsZWFyX3N0YXRzKHN0cnVjdCBjaWZzX3Rjb24gKnRjb24pDQo+ICAgICAgYXRvbWljX3Nl dCgmdGNvbi0+c3RhdHMuY2lmc19zdGF0cy5udW1fbG9ja3MsIDApOw0KPiAgICAgIGF0b21pY19z ZXQoJnRjb24tPnN0YXRzLmNpZnNfc3RhdHMubnVtX2FjbF9nZXQsIDApOw0KPiAgICAgIGF0b21p Y19zZXQoJnRjb24tPnN0YXRzLmNpZnNfc3RhdHMubnVtX2FjbF9zZXQsIDApOyAtI2VuZGlmICB9 DQo+DQo+ICBzdGF0aWMgdm9pZA0KPiAgY2lmc19wcmludF9zdGF0cyhzdHJ1Y3Qgc2VxX2ZpbGUg Km0sIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24pICB7IA0KPiAtI2lmZGVmIENPTkZJR19DSUZTX1NU QVRTDQo+ICAgICAgc2VxX3ByaW50ZihtLCAiIE9wbG9ja3MgYnJlYWtzOiAlZCIsDQo+ICAgICAg ICAgICAgIGF0b21pY19yZWFkKCZ0Y29uLT5zdGF0cy5jaWZzX3N0YXRzLm51bV9vcGxvY2tfYnJr cykpOw0KPiAgICAgIHNlcV9wcmludGYobSwgIlxuUmVhZHM6ICAlZCBCeXRlczogJWxsdSIsIEBA IC02ODQsNyArNjgxLDYgQEAgDQo+IGNpZnNfcHJpbnRfc3RhdHMoc3RydWN0IHNlcV9maWxlICpt LCBzdHJ1Y3QgY2lmc190Y29uDQo+ICp0Y29uKQ0KPiAgICAgICAgICAgICBhdG9taWNfcmVhZCgm dGNvbi0+c3RhdHMuY2lmc19zdGF0cy5udW1fZmZpcnN0KSwNCj4gICAgICAgICAgICAgYXRvbWlj X3JlYWQoJnRjb24tPnN0YXRzLmNpZnNfc3RhdHMubnVtX2ZuZXh0KSwNCj4gICAgICAgICAgICAg YXRvbWljX3JlYWQoJnRjb24tPnN0YXRzLmNpZnNfc3RhdHMubnVtX2ZjbG9zZSkpOw0KPiAtI2Vu ZGlmDQo+ICB9DQo+DQo+ICBzdGF0aWMgdm9pZA0KPiBkaWZmIC0tZ2l0IGEvZnMvY2lmcy9zbWIy b3BzLmMgYi9mcy9jaWZzL3NtYjJvcHMuYyBpbmRleCANCj4gODkyOTQyNmRkYWE2Li44MzEyNDkw MDEzODQgMTAwNjQ0DQo+IC0tLSBhL2ZzL2NpZnMvc21iMm9wcy5jDQo+ICsrKyBiL2ZzL2NpZnMv c21iMm9wcy5jDQo+IEBAIC05MDAsMTMgKzkwMCwxMSBAQCBzbWIyX2Nhbl9lY2hvKHN0cnVjdCBU Q1BfU2VydmVyX0luZm8gKnNlcnZlcikgIA0KPiBzdGF0aWMgdm9pZCAgc21iMl9jbGVhcl9zdGF0 cyhzdHJ1Y3QgY2lmc190Y29uICp0Y29uKSAgeyAtI2lmZGVmIA0KPiBDT05GSUdfQ0lGU19TVEFU Uw0KPiAgICAgIGludCBpOw0KPiAgICAgIGZvciAoaSA9IDA7IGkgPCBOVU1CRVJfT0ZfU01CMl9D T01NQU5EUzsgaSsrKSB7DQo+ICAgICAgICAgIGF0b21pY19zZXQoJnRjb24tPnN0YXRzLnNtYjJf c3RhdHMuc21iMl9jb21fc2VudFtpXSwgMCk7DQo+ICAgICAgICAgIGF0b21pY19zZXQoJnRjb24t PnN0YXRzLnNtYjJfc3RhdHMuc21iMl9jb21fZmFpbGVkW2ldLCAwKTsNCj4gICAgICB9DQo+IC0j ZW5kaWYNCj4gIH0NCj4NCj4gIHN0YXRpYyB2b2lkDQo+IEBAIC05NDUsNyArOTQzLDYgQEAgc21i Ml9kdW1wX3NoYXJlX2NhcHMoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgDQo+IGNpZnNfdGNv biAqdGNvbikgIHN0YXRpYyB2b2lkICBzbWIyX3ByaW50X3N0YXRzKHN0cnVjdCBzZXFfZmlsZSAq bSwgDQo+IHN0cnVjdCBjaWZzX3Rjb24gKnRjb24pICB7IC0jaWZkZWYgQ09ORklHX0NJRlNfU1RB VFMNCj4gICAgICBhdG9taWNfdCAqc2VudCA9IHRjb24tPnN0YXRzLnNtYjJfc3RhdHMuc21iMl9j b21fc2VudDsNCj4gICAgICBhdG9taWNfdCAqZmFpbGVkID0gdGNvbi0+c3RhdHMuc21iMl9zdGF0 cy5zbWIyX2NvbV9mYWlsZWQ7DQo+DQo+IEBAIC05OTUsNyArOTkyLDYgQEAgc21iMl9wcmludF9z dGF0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCANCj4gY2lmc190Y29uDQo+ICp0Y29uKQ0K PiAgICAgIHNlcV9wcmludGYobSwgIlxuT3Bsb2NrQnJlYWtzOiAlZCBzZW50ICVkIGZhaWxlZCIs DQo+ICAgICAgICAgICAgIGF0b21pY19yZWFkKCZzZW50W1NNQjJfT1BMT0NLX0JSRUFLX0hFXSks DQo+ICAgICAgICAgICAgIGF0b21pY19yZWFkKCZmYWlsZWRbU01CMl9PUExPQ0tfQlJFQUtfSEVd KSk7DQo+IC0jZW5kaWYNCj4gIH0NCj4NCj4gIHN0YXRpYyB2b2lkDQo+IGRpZmYgLS1naXQgYS9m cy9jaWZzL3NtYjJwZHUuYyBiL2ZzL2NpZnMvc21iMnBkdS5jIGluZGV4IA0KPiAwYjRkN2ViYjgx MmQuLjdjMGIzMDMyMWQ5YSAxMDA2NDQNCj4gLS0tIGEvZnMvY2lmcy9zbWIycGR1LmMNCj4gKysr IGIvZnMvY2lmcy9zbWIycGR1LmMNCj4gQEAgLTM2MCwxMCArMzYwLDggQEAgc21iMl9wbGFpbl9y ZXFfaW5pdChfX2xlMTYgc21iMl9jb21tYW5kLCBzdHJ1Y3QgDQo+IGNpZnNfdGNvbiAqdGNvbiwN Cj4gICAgICAgICAgICAgICAgIHRvdGFsX2xlbik7DQo+DQo+ICAgICAgaWYgKHRjb24gIT0gTlVM TCkgew0KPiAtI2lmZGVmIENPTkZJR19DSUZTX1NUQVRTDQo+ICAgICAgICAgIHVpbnQxNl90IGNv bV9jb2RlID0gbGUxNl90b19jcHUoc21iMl9jb21tYW5kKTsNCj4gICAgICAgICAgDQo+IGNpZnNf c3RhdHNfaW5jKCZ0Y29uLT5zdGF0cy5zbWIyX3N0YXRzLnNtYjJfY29tX3NlbnRbY29tX2NvZGVd KTsNCj4gLSNlbmRpZg0KPiAgICAgICAgICBjaWZzX3N0YXRzX2luYygmdGNvbi0+bnVtX3NtYnNf c2VudCk7DQo+ICAgICAgfQ0KPg0KPiAtLQ0KPiAyLjE3LjENCj4NCj4NCj4gLS0NCj4gVGhhbmtz LA0KPg0KPiBTdGV2ZQ0K -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From b0c7de68d96ef236b090092124998dad25d8a14d Mon Sep 17 00:00:00 2001 From: Steve French <stfrench@microsoft.com> Date: Tue, 31 Jul 2018 01:21:37 -0500 Subject: [PATCH] cifs: simple stats should always be enabled CONFIG_CIFS_STATS should always be enabled as Pavel and others noted. Simple statistics are not a significant performance hit, and removing the ifdef simplifies the code slightly. Signed-off-by: Steve French <stfrench@microsoft.com> --- fs/cifs/Kconfig | 9 +-------- fs/cifs/cifs_debug.c | 6 ------ fs/cifs/cifsglob.h | 10 ---------- fs/cifs/misc.c | 2 -- fs/cifs/smb1ops.c | 4 ---- fs/cifs/smb2ops.c | 4 ---- fs/cifs/smb2pdu.c | 2 -- 7 files changed, 1 insertion(+), 36 deletions(-) diff --git a/fs/cifs/Kconfig b/fs/cifs/Kconfig index 63d0d852998a..35c83fe7dba0 100644 --- a/fs/cifs/Kconfig +++ b/fs/cifs/Kconfig @@ -49,16 +49,9 @@ config CIFS If you need to mount to Samba, Azure, Macs or Windows from this machine, say Y. -config CIFS_STATS - bool "CIFS statistics" - depends on CIFS - help - Enabling this option will cause statistics for each server share - mounted by the cifs client to be displayed in /proc/fs/cifs/Stats - config CIFS_STATS2 bool "Extended statistics" - depends on CIFS_STATS + depends on CIFS help Enabling this option will allow more detailed statistics on SMB request timing to be displayed in /proc/fs/cifs/DebugData and also diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c index cb516c950438..3270d9b74603 100644 --- a/fs/cifs/cifs_debug.c +++ b/fs/cifs/cifs_debug.c @@ -365,7 +365,6 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v) return 0; } -#ifdef CONFIG_CIFS_STATS static ssize_t cifs_stats_proc_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) { @@ -481,7 +480,6 @@ static const struct file_operations cifs_stats_proc_fops = { .release = single_release, .write = cifs_stats_proc_write, }; -#endif /* STATS */ #ifdef CONFIG_CIFS_SMB_DIRECT #define PROC_FILE_DEFINE(name) \ @@ -539,9 +537,7 @@ cifs_proc_init(void) proc_create_single("DebugData", 0, proc_fs_cifs, cifs_debug_data_proc_show); -#ifdef CONFIG_CIFS_STATS proc_create("Stats", 0644, proc_fs_cifs, &cifs_stats_proc_fops); -#endif /* STATS */ proc_create("cifsFYI", 0644, proc_fs_cifs, &cifsFYI_proc_fops); proc_create("traceSMB", 0644, proc_fs_cifs, &traceSMB_proc_fops); proc_create("LinuxExtensionsEnabled", 0644, proc_fs_cifs, @@ -579,9 +575,7 @@ cifs_proc_clean(void) remove_proc_entry("DebugData", proc_fs_cifs); remove_proc_entry("cifsFYI", proc_fs_cifs); remove_proc_entry("traceSMB", proc_fs_cifs); -#ifdef CONFIG_CIFS_STATS remove_proc_entry("Stats", proc_fs_cifs); -#endif remove_proc_entry("SecurityFlags", proc_fs_cifs); remove_proc_entry("LinuxExtensionsEnabled", proc_fs_cifs); remove_proc_entry("LookupCacheEnabled", proc_fs_cifs); diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h index 0e6fd5fa4eb6..4a3a737134ea 100644 --- a/fs/cifs/cifsglob.h +++ b/fs/cifs/cifsglob.h @@ -931,7 +931,6 @@ struct cifs_tcon { __u32 tid; /* The 4 byte tree id */ __u16 Flags; /* optional support bits */ enum statusEnum tidStatus; -#ifdef CONFIG_CIFS_STATS atomic_t num_smbs_sent; union { struct { @@ -965,7 +964,6 @@ struct cifs_tcon { __u64 bytes_read; __u64 bytes_written; spinlock_t stat_lock; /* protects the two fields above */ -#endif /* CONFIG_CIFS_STATS */ FILE_SYSTEM_DEVICE_INFO fsDevInfo; FILE_SYSTEM_ATTRIBUTE_INFO fsAttrInfo; /* ok if fs name truncated */ FILE_SYSTEM_UNIX_INFO fsUnixInfo; @@ -1331,7 +1329,6 @@ convert_delimiter(char *path, char delim) *pos = delim; } -#ifdef CONFIG_CIFS_STATS #define cifs_stats_inc atomic_inc static inline void cifs_stats_bytes_written(struct cifs_tcon *tcon, @@ -1351,13 +1348,6 @@ static inline void cifs_stats_bytes_read(struct cifs_tcon *tcon, tcon->bytes_read += bytes; spin_unlock(&tcon->stat_lock); } -#else - -#define cifs_stats_inc(field) do {} while (0) -#define cifs_stats_bytes_written(tcon, bytes) do {} while (0) -#define cifs_stats_bytes_read(tcon, bytes) do {} while (0) - -#endif /* diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c index 53e8362cbc4a..dacb2c05674c 100644 --- a/fs/cifs/misc.c +++ b/fs/cifs/misc.c @@ -122,9 +122,7 @@ tconInfoAlloc(void) mutex_init(&ret_buf->crfid.fid_mutex); ret_buf->crfid.fid = kzalloc(sizeof(struct cifs_fid), GFP_KERNEL); -#ifdef CONFIG_CIFS_STATS spin_lock_init(&ret_buf->stat_lock); -#endif } return ret_buf; } diff --git a/fs/cifs/smb1ops.c b/fs/cifs/smb1ops.c index 646dcd149de1..378151e09e91 100644 --- a/fs/cifs/smb1ops.c +++ b/fs/cifs/smb1ops.c @@ -624,7 +624,6 @@ cifs_query_file_info(const unsigned int xid, struct cifs_tcon *tcon, static void cifs_clear_stats(struct cifs_tcon *tcon) { -#ifdef CONFIG_CIFS_STATS atomic_set(&tcon->stats.cifs_stats.num_writes, 0); atomic_set(&tcon->stats.cifs_stats.num_reads, 0); atomic_set(&tcon->stats.cifs_stats.num_flushes, 0); @@ -646,13 +645,11 @@ cifs_clear_stats(struct cifs_tcon *tcon) atomic_set(&tcon->stats.cifs_stats.num_locks, 0); atomic_set(&tcon->stats.cifs_stats.num_acl_get, 0); atomic_set(&tcon->stats.cifs_stats.num_acl_set, 0); -#endif } static void cifs_print_stats(struct seq_file *m, struct cifs_tcon *tcon) { -#ifdef CONFIG_CIFS_STATS seq_printf(m, " Oplocks breaks: %d", atomic_read(&tcon->stats.cifs_stats.num_oplock_brks)); seq_printf(m, "\nReads: %d Bytes: %llu", @@ -684,7 +681,6 @@ cifs_print_stats(struct seq_file *m, struct cifs_tcon *tcon) atomic_read(&tcon->stats.cifs_stats.num_ffirst), atomic_read(&tcon->stats.cifs_stats.num_fnext), atomic_read(&tcon->stats.cifs_stats.num_fclose)); -#endif } static void diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c index 8929426ddaa6..831249001384 100644 --- a/fs/cifs/smb2ops.c +++ b/fs/cifs/smb2ops.c @@ -900,13 +900,11 @@ smb2_can_echo(struct TCP_Server_Info *server) static void smb2_clear_stats(struct cifs_tcon *tcon) { -#ifdef CONFIG_CIFS_STATS int i; for (i = 0; i < NUMBER_OF_SMB2_COMMANDS; i++) { atomic_set(&tcon->stats.smb2_stats.smb2_com_sent[i], 0); atomic_set(&tcon->stats.smb2_stats.smb2_com_failed[i], 0); } -#endif } static void @@ -945,7 +943,6 @@ smb2_dump_share_caps(struct seq_file *m, struct cifs_tcon *tcon) static void smb2_print_stats(struct seq_file *m, struct cifs_tcon *tcon) { -#ifdef CONFIG_CIFS_STATS atomic_t *sent = tcon->stats.smb2_stats.smb2_com_sent; atomic_t *failed = tcon->stats.smb2_stats.smb2_com_failed; @@ -995,7 +992,6 @@ smb2_print_stats(struct seq_file *m, struct cifs_tcon *tcon) seq_printf(m, "\nOplockBreaks: %d sent %d failed", atomic_read(&sent[SMB2_OPLOCK_BREAK_HE]), atomic_read(&failed[SMB2_OPLOCK_BREAK_HE])); -#endif } static void diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c index 0b4d7ebb812d..7c0b30321d9a 100644 --- a/fs/cifs/smb2pdu.c +++ b/fs/cifs/smb2pdu.c @@ -360,10 +360,8 @@ smb2_plain_req_init(__le16 smb2_command, struct cifs_tcon *tcon, total_len); if (tcon != NULL) { -#ifdef CONFIG_CIFS_STATS uint16_t com_code = le16_to_cpu(smb2_command); cifs_stats_inc(&tcon->stats.smb2_stats.smb2_com_sent[com_code]); -#endif cifs_stats_inc(&tcon->num_smbs_sent); } -- 2.17.1