From: Oliver Neukum <oliver@neukum.org>
To: Steve French <smfltc@us.ibm.com>
Cc: Chris Friesen <cfriesen@nortelnetworks.com>,
linux-kernel@vger.kernel.org
Subject: Re: upcalls from kernel code to user space daemons
Date: Tue, 15 Jun 2004 11:06:23 +0200 [thread overview]
Message-ID: <200406151106.31253.oliver@neukum.org> (raw)
In-Reply-To: <1087253679.10367.41.camel@stevef95.austin.ibm.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Am Dienstag, 15. Juni 2004 00:54 schrieb Steve French:
> On Mon, 2004-06-14 at 16:40, Oliver Neukum wrote:
> > > > 1) getHostByName: when the kernel cifs code detects a server crashes
> > > > and fails reconnecting the socket and the kernel code wants to see if
> > > > the hostname now has a new ip address.
> >
> > Is that possible at all? It looks like that might deadlock in the page
> > out code path.
> >
>
> Yes - since an upcall (indirectly) to a different process while in write
> could cause writepage to write out memory to a mount - which could hang
> if on an already dead tcp session, this (reconnection - failover to new
> ip address if the server ip address changes after failure) may be too
> risky to do in the context of writepage, but there may be a way to keep
> refusing to do writepage while in the midst of this harder form of mount
> reconnection - which isn't likely to be any worse than not
> reconnecting. Fortunately, most tcp reconnection cases are much
> simpler.
Well, unless you want to mlock() all libraries connected with name
resolution or code dns in kernel, you'll have to either fail the io, which
is bad, or use a fallback that is local. I suggest that you write the block
in question to a local disk (swap space?) and fire of a user space helper
asynchronously. That helper then could reestablish the connection.
Regards
Oliver
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFAzrwUbuJ1a+1Sn8oRAv2kAJ444nIrog/fnOPqlxTCAjAnaHtDUQCePe15
cGBjATSxNNRhCHGplhV703o=
=kjJe
-----END PGP SIGNATURE-----
next prev parent reply other threads:[~2004-06-15 9:06 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-06-14 18:07 Steve French
2004-06-14 18:30 ` Chris Friesen
2004-06-14 21:40 ` Oliver Neukum
2004-06-14 21:57 ` Chris Friesen
2004-06-14 22:08 ` Bernd Petrovitsch
2004-06-14 22:22 ` Chris Friesen
2004-06-14 22:54 ` Tim Hockin
2004-06-14 23:10 ` Randy.Dunlap
2004-06-14 22:54 ` Steve French
2004-06-15 9:06 ` Oliver Neukum [this message]
2004-06-18 23:08 ` H. Peter Anvin
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=200406151106.31253.oliver@neukum.org \
--to=oliver@neukum.org \
--cc=cfriesen@nortelnetworks.com \
--cc=linux-kernel@vger.kernel.org \
--cc=smfltc@us.ibm.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
all inboxes | Powered by JetHome®