mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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-----

  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®