linux-cifs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Shyam Prasad N <nspmangalore@gmail.com>
To: "Steve French" <smfrench@gmail.com>,
	"Aurélien Aptel" <aaptel@suse.com>,
	CIFS <linux-cifs@vger.kernel.org>,
	sribhat.msa@outlook.com, "rohiths msft" <rohiths.msft@gmail.com>
Subject: Multichannel patches
Date: Wed, 2 Jun 2021 18:13:26 +0530	[thread overview]
Message-ID: <CANT5p=oMLZei+OhXZ-8Hr2NCx=pRYWF1zQ0vRQ5D_NkvLGwJDg@mail.gmail.com> (raw)

Made a bunch of fixes in mchan reconnect scenarios with these patches.
The reconnect codepath did not play well with mchan. Making it work
involved several changes described in the commits.

https://github.com/sprasad-microsoft/smb-kernel-client/commit/03059a751fa7315ecd44ad61342200d20ab3f0cb.patch
A trivial ref-counting fix in session find codepath.

https://github.com/sprasad-microsoft/smb-kernel-client/commit/2615c7300f93a7ae2d9350da25ed117492f8edbf.patch
Fixes in reconnect codepath, involving changes to introduce a
per-channel bitmask for a session, instead of a boolean, and to
reconnect the session only when we have all channels marked for
reconnect. This makes sessions more resilient in mchan scenarios.

https://github.com/sprasad-microsoft/smb-kernel-client/commit/5bcce1741beea482e770f1c25f4ff285a1505ca4.patch
Fix to get rid of the serialization of requests during channel
binding. This involved passing the channel server pointer to all
negotiate and session setup related functions. This has increased the
diff size, otherwise the changes are quite minimal.

https://github.com/sprasad-microsoft/smb-kernel-client/pull/4

P.S. There is a logic in cifs_reconnect to switch between the targets
for the server. I don't think these changes will break the DFS
scenario. The code will likely take effect only for when the primary
channel reconnects (as DFS server entries are cached with super block
as the key). Perhaps more changes will be needed there to also switch
between the targets for individual channels (maybe use superblock +
channel num as the key for caching entries?). Folks with better
knowledge than me with this code may want to check on this?

@Steve French It'll be good to let a few cycles of buildbot to run
with this code, before submitting to upstream. I have run a bunch of
tests with this. However, more soak time will be safer.

-- 
Regards,
Shyam

             reply	other threads:[~2021-06-02 12:44 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-02 12:43 Shyam Prasad N [this message]
2021-06-02 15:57 ` Multichannel patches Aurélien Aptel
2021-06-02 18:55   ` Steve French
2021-06-02 16:45 ` Paulo Alcantara
2021-06-04  9:13   ` Shyam Prasad N
2021-06-04 15:10     ` Steve French
2021-06-04 15:25     ` Paulo Alcantara
2021-06-05 14:08       ` Shyam Prasad N
2021-06-05 17:43         ` Steve French
2021-06-05 17:57           ` Steve French
2021-06-08  9:54             ` Shyam Prasad N

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CANT5p=oMLZei+OhXZ-8Hr2NCx=pRYWF1zQ0vRQ5D_NkvLGwJDg@mail.gmail.com' \
    --to=nspmangalore@gmail.com \
    --cc=aaptel@suse.com \
    --cc=linux-cifs@vger.kernel.org \
    --cc=rohiths.msft@gmail.com \
    --cc=smfrench@gmail.com \
    --cc=sribhat.msa@outlook.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).