* [PATCH] ksmbd-tools: add smbd max io size parameter
@ 2022-05-16 7:42 Namjae Jeon
0 siblings, 0 replies; only message in thread
From: Namjae Jeon @ 2022-05-16 7:42 UTC (permalink / raw)
To: linux-cifs; +Cc: smfrench, hyc.lee, senozhatsky, Namjae Jeon
Add 'smbd max io size' parameter in ksmbd configuration to adjust
smbd-direct max read/write size.
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
---
Documentation/configuration.txt | 2 ++
include/ksmbdtools.h | 1 +
include/linux/ksmbd_server.h | 3 ++-
lib/config_parser.c | 5 +++++
mountd/ipc.c | 1 +
5 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/Documentation/configuration.txt b/Documentation/configuration.txt
index 9580bf1..47d5f9b 100644
--- a/Documentation/configuration.txt
+++ b/Documentation/configuration.txt
@@ -112,6 +112,8 @@ Define ksmbd configuration parameters list.
- smb2 max credits (default: 8192)
This option controls the maximum number of outstanding
simultaneous SMB2 operations.
+ - smbd io size (default: 8MB)
+ This option controls the maximum read/write size of smb-direct.
* Supported [share] level parameters list:
diff --git a/include/ksmbdtools.h b/include/ksmbdtools.h
index c51673e..a46bdbc 100644
--- a/include/ksmbdtools.h
+++ b/include/ksmbdtools.h
@@ -53,6 +53,7 @@ struct smbconf_global {
unsigned int smb2_max_write;
unsigned int smb2_max_trans;
unsigned int smb2_max_credits;
+ unsigned int smbd_max_io_size;
unsigned int share_fake_fscaps;
unsigned int gen_subauth[3];
char *krb5_keytab_file;
diff --git a/include/linux/ksmbd_server.h b/include/linux/ksmbd_server.h
index 78ae6e7..6705dac 100644
--- a/include/linux/ksmbd_server.h
+++ b/include/linux/ksmbd_server.h
@@ -47,7 +47,8 @@ struct ksmbd_startup_request {
__u32 share_fake_fscaps;
__u32 sub_auth[3];
__u32 smb2_max_credits;
- __u32 reserved[128]; /* Reserved room */
+ __u32 smbd_max_io_size; /* smbd read write size */
+ __u32 reserved[127]; /* Reserved room */
__u32 ifc_list_sz;
__s8 ____payload[];
};
diff --git a/lib/config_parser.c b/lib/config_parser.c
index 9ce730c..e9d0a7e 100644
--- a/lib/config_parser.c
+++ b/lib/config_parser.c
@@ -555,6 +555,11 @@ static gboolean global_group_kv(gpointer _k, gpointer _v, gpointer user_data)
return TRUE;
}
+ if (!cp_key_cmp(_k, "smbd max io size")) {
+ global_conf.smbd_max_io_size = memparse(_v);
+ return TRUE;
+ }
+
/* At this point, this is an option that must be applied to all shares */
return FALSE;
}
diff --git a/mountd/ipc.c b/mountd/ipc.c
index eded431..015268d 100644
--- a/mountd/ipc.c
+++ b/mountd/ipc.c
@@ -171,6 +171,7 @@ static int ipc_ksmbd_starting_up(void)
ev->smb2_max_read = global_conf.smb2_max_read;
ev->smb2_max_write = global_conf.smb2_max_write;
ev->smb2_max_trans = global_conf.smb2_max_trans;
+ ev->smbd_max_io_size = global_conf.smbd_max_io_size;
ev->share_fake_fscaps = global_conf.share_fake_fscaps;
memcpy(ev->sub_auth, global_conf.gen_subauth, sizeof(ev->sub_auth));
ev->smb2_max_credits = global_conf.smb2_max_credits;
--
2.25.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2022-05-16 7:42 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-16 7:42 [PATCH] ksmbd-tools: add smbd max io size parameter Namjae Jeon
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.